概述
计算机网络
根据所学大学课程对计算机网络较为全面的记载,考试复习,由于图片在github上,需要转储可能部分出不来,如有缺失可以去我的github项目下的github pages观看文档
1.概述
1.1 互联网组成
边缘部分
服务器不需要知道用户地址,用户需要知道服务器地址(银行不知道每天来的用户会是谁,用户需要知道银行在哪里)
处在互联网边缘的部分就是连接上所有的主机。这些又称为端系统
两种通信方式
①客户服务器方式CS
一种专门用来提供某服务的程序,可 一种专门用来提供某服务的程序,可同时处理多个远地或本客户的请求。
②对等方式P2P
即是客户端又是服务器
核心部分
1.2 主机和路由器
1.3 三种数据交换方式
-
电路交换
- 建立连接
- 通信
- 释放连接
-
分组交换
计算机采用的方式。
- 分组
- 存储
- 转发
-
报文交换
1.4性能传输指标
总延迟
传输时延:从节点发送时间延迟=数据帧长度(bit)/发送速率
传 输 时 延 − > 从 节 点 发 送 时 间 延 迟 = 数 据 帧 长 度 ( b i t ) / 发 送 速 率 传输时延->从节点发送时间延迟=数据帧长度(bit)/发送速率 传输时延−>从节点发送时间延迟=数据帧长度(bit)/发送速率传播时延:电磁波在信道中需要传播一定距离而花费的时间
信 道 长 度 ( 米 ) / 信 号 在 信 道 上 的 传 播 速 率 ( 接 近 光 速 ) 信道长度(米)/信号在信道上的传播速率(接近光速) 信道长度(米)/信号在信道上的传播速率(接近光速)处理时延
排队时延
时 延 带 宽 积 ( 单 位 时 间 内 链 路 上 有 多 少 比 特 ) = 传 播 时 延 ∗ 带 宽 时延带宽积(单位时间内链路上有多少比特)=传播时延*带宽 时延带宽积(单位时间内链路上有多少比特)=传播时延∗带宽
-
信道利用率:用百分之几的时间被利用(有数据通过)
-
网络利用率:全网络信道利用率加权平均值
并非越高越好
1.5 体系结构
2.物理层
通信:进程和进程之间
1.1 数据通信系统模型★
1.2 常用术语
限制码元在信道上的传输速率的因素有以下两个
- 信道能够通过的频率范围
- 信噪比
- 信噪比越大,信息的极限传输速率就越高
例题:电话线率通常带宽3000Hz,信噪比通常为3162(35dB),求最大数据传输速率
=3000xlog2(1+3162)
=3000X11.62
=3486 obps
1.3 三种通信方式
- 单工通信
- 半双工通信
- 双工通信 (必须有两个信道)
1.4 物理层下面的传输媒体
-
双绞线
- 屏蔽双绞线STP
- 无屏蔽双绞线UTP
-
同轴电缆
- 50Ω同轴电缆 ---- LAN/数字传输常用
- 75Ω同轴电缆 ---- 有线电视/模拟传输常用
-
光纤
-
多模光纤
-
单模光纤
光纤优点
-
3.数据链路层
数据链路层模型
数据链路层传送的是帧
链路
是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。又称为“物理链路”。
- 一条链路只是一条通路的一个组成部分
数据链路★
除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。又称为“逻辑链路”。
- 现在最常用的方法是使用适配器(即网卡 )来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
三个基本问题★
封装成帧
透明传输
解决方法:
差错检测
PPP协议★
ppp协议的组成部分
ppp协议应满足的需求
- 简单
- 封装成帧
- 透明性
- 差错检测
- 支持多种网络层协议
- 支持多种
- 检测连接状态
- 设置最大传送单元
- 网络层地址协商
- 数据压缩协商
不需要的功能
- 纠错
- 流量控制
- 序号
- 多点线路
- 半双工或单工链路,只支持全双工
PPP协议的帧格式
是将IP数据报进行PPP信息填入/填充之后再封装上首部和尾部形成数据帧(数据链路层PDU)
零比特填充
字符填充
局域网的数据链路层★
局域网拓扑结构
- DIX Ethernet V2 是世界上第一个局域网产品( 以太网)的规约。
- EEE 802.3 是第一个IEEE 的以太网标准。
数据链路层的两个子层
-
MAC 媒体接入控制子层
-
LLC逻辑链路控制 (一般不考虑)
与接入到传输媒体有关的内容都放在MAC子层,而LLC 子层则与传输媒体无关。
适配器(网卡)
网卡属于物理层和数据链路层
- 网络接口板又称为通信适配器(adapter) 或网络接口卡NIC (Network Interface Card),或“ 网卡”。
- 适配器的重要功能:
- 进行串行/并行转换。
- 对数据进行缓存。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
CSMA/CD
- 先听再发
- 边发边听
- 碰撞停止
- 随机延发
CSMA/CD协议属于数据链路层中的MAC子层
并不能完全解决碰撞问题
- 多点监听
- 载波监听
- 碰撞检测:
- 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2t(往返时延,两倍的端到端传播时延)就可知道发送的数据帧是否遭受了碰撞。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
两个量化参数
- 争用期:10 Mbit/s 以太网(传统以太网)取51.2 s 为争用期的长度。
- 最短有效帧长:对于10 Mbit/s 以太网(传统以太网),在争用期内可发送512 bit,即64 字节。这意味着:以太网在发送数据时,若前64 字节没有发生冲突,则后续的数据就不会发生冲突。如果发生冲突,就一定是在前64字节之内,由于一检测到冲突就立即中止发送,这个时候发送出去的数据一定小于64字节,所以规定凡是小于64字节的帧都是无效帧
使用集线器(hub)的星型拓扑
星型拓扑配上集线器实际上还是总线型的,一个主机以广播试发送出去,别的主机识别不是自己要收的不收,所以实际上还是总线型的
以太网的MAC层
42位MAC地址(6字节),其中前3个字节是IEEE注册机构给网卡制造厂家分配好的,后面6个是厂家自己分配给生产网卡的
- 在局域网中,硬件地址又称为物理地址 ,或MAC 地址。
- 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符——网卡地址。
适配器检查MAC地址
以太网V2的MAC帧格式
数据字段46~1500字节
为了到达比特同步,在物理层传输媒体上实际传送的要比MAC帧还多8个字节
以太网v2中没有长度域,如何来确定帧的长度(帧的结束)?
- 带有10Base-T后面跟着一个TP_IDL波形。可以检测到缺少进一步的曼彻斯特编码数据位。
- 具有100Base-T帧结束于可能不发生在有效载荷数据中(因为其4B/5B编码)的流分隔符结束位模式。
以太网的扩展
- 扩展以太网更常用的方法是在数据链路层进行。
- 早期使用网桥,现在使用以太网交换机。
网桥工作在数据链路层,根据MAC帧的目的地址对收到的的帧进行转发和过滤
4.网络层
虚电路和数据报
在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
• 两种形式:虚电路和数据报
虚电路
数据报
• 互联网的先驱者提出了一种崭新的网络设计思路。
• 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
• 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
• 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。• 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等) 。
虚电路和数据报对比
网络层概述
- 又称为IP层或者网际层
- 主要作用:为分组转发选择合适路由
——分组即IP数据报
- 网络互连主要靠路由器来完成
直接交付和间接交付
网际协议IP及配套协议
• 网际协议IP 是TCP/IP 体系中两个最主要的协议之一。
• 与IP 协议配套使用的还有三个协议:
– 地址解析协议ARP
(Address Resolution Protocol)
– 网际控制报文协议ICMP
(Internet Control Message Protocol)
– 网际组管理协议IGMP
(Internet Group Management Protocol)
中间设备★
虚拟互联网络
此处一般所说的网络互连都是指用路由器进行网络互连和路由选择。
分类的IP地址★
• IP 地址是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的 32 bit的标识符。
• IP 地址现在由互联网名字与数字分配机构ICANN (Internet Corporation for Assigned Names and Numbers)进行分配
举例
判断地址分类
路由器转发分组的步骤
• 先按所要找的 IP 地址中的网络号 net-id把目的网络找到。
• 当分组到达目的网络后,再利用主机号host-id 将数据报直接交付给目的主机。
• 按照整数字节划分 net-id 字段和 host-id字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来。
IP地址的重要特点
• (1) IP 地址是一种分等级的地址结构。分两个等级的好处是:
– 第一,IP 地址管理机构在分配IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP 地址的管理。
– 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。• (2) 实际上IP 地址是标志一个主机(或路由器)和一条链路的接口。
– 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP 地址,其网络号net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。
– 由于一个路由器至少应当连接到两个网络( 这样它才能将IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP 地址。• (3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。
• (4) 所有分配到网络号net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
互联网中的ip地址
路由器总是具有两个或两个以上的IP 地址。路由器的每一个接口都有一个
不同网络号的IP 地址。
IP层转发分组的流程★
路由表的简化
• 假设:有四个A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
• 可以想像,若按目的主机号来制作路由表,每一个路由表就有4 万个项目,即4 万行(每一行对应于一台主机),则所得出的路由表就会过于庞大。
• 但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4 个项目(每一行对应于一个网络),这样就可使路由表大大简化。
路由表的内容
查找路由表
特定主机路由
默认路由
默认路由举例
路由器分组转发算法
关于路由表
IP数据报格式
• 一个IP 数据报由首部和数据两部分组成。
• 首部的前一部分是固定长度,共20 字节,是所有IP 数据报必须具有的。
• 在首部的固定部分的后面是一些可选字段,其长度是可变的。
-
首部的前一部分是固定长度,共 20 字节,是所有IP 数据报必须具有的。
-
可选字段,其长度是可变的
-
版本——占4 位,指IP 协议的版本。目前的IP 协议版本号为4 (即IPv4)。
-
首部长度——占4 位,可表示的最大数值是15 个单位(一个单位为4 字节),
因此IP 的首部长度的最大值是60 字节。 -
区分服务——占8 位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。
-
总长度——占16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535 字节。总长度必须不超过最大传送单元MTU。
-
标识(identification) ——占16 位,它是一个计数器,用来产生IP 数据报的标识。
-
标志(flag) ——占3 位,目前只有前两位有意义。
标志字段的最低位是MF (More Fragment)。
MF =1 表示后面“还有分片”。MF =0 表示最后一个分片。标志字段中间的一位是DF (Don’t Fragment) 。
只有当DF =0 时才允许分片。 -
片偏移——占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以8 个字节为偏移单位。
-
生存时间——占8 位,记为TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。
-
协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的IP 层将数据部分上交给那个处理过程
-
首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用CRC 检验码而采用简单的计算方法——16 位二进制反码求和算法。二进制反码求和算法。
-
源地址和目的地址都各占4 字节
IP数据报分片举例
IP地址和MAC地址★
在分层协议栈中的位置
MAC地址
IP地址
转发中地址发生的变化
地址的获取
IP地址采用应用层的DNS协议获取地址,而MAC地址是采用ARP协议来获取
地址解析协议ARP
IP&MAC地址小结
划分子网★
从两级IP地址到三级IP地址
增加“子网号字段”,使两级的IP地址编程三级的IP地址,这种做法叫做划分子网,划分子网是互联网的正式标准协议
基本思路
• 凡是从其他网络发送给本单位某个主机的IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
• 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。最后就将 IP 数据报直接交付目的主机。
划分子网举例
子网掩码
判断是否进行了子网划分,和判定哪些为网络号
使用子网掩码 (subnet mask) 可以找出 IP 地址中的子网部分
规则:
• 子网掩码长度=32 位
• 某位=1:IP地址中的对应位为网络号或子网号
• 某位=0:IP地址中的对应位为主机号
子网掩码的判定是进行逐位的与运算
默认子网掩码
CIDR无分类编址★
无分类编址方法,它的正式名字是无分类域间路由选择CIDR (Classless Inter-Domain Routing)。
• CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配IPv4 的地址空间。
• CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
• IP 地址从三级编址(使用子网掩码)又回到了两级编址。
无分类的两级编址:
图中24指的是网络号的个数,主机号位数是32-24=8位,也就是说最多可以容纳2^8个主机(不过全0和全1的主机号地址一般不使用)
CIDR地址块
CIDR把网络前缀都相同的连续的IP地址组成"CIDR地址块"
CIDR地址块划分举例:
• 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
• 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching) ,又称为最长匹配或最佳匹配。
• 网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。(举例:比如如果有人要找你,知道你的学校可以找到你,知道你的学校和你的系可以找到你,知道你的学校你的系你的班级也可以找到你,知道的信息越多对应的就是网络前缀越长,地址块越小就表示需要找的范围越小,所以说网络前缀越长的话就越具体,查找的代价就越小)
不同分类下的路由器中路由表信息
ICMP网际控制报文
• 为了更有效地转发IP 数据报和提高交付成功的机会 ,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。
• ICMP 是互联网的标准协议。
• ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
• 但ICMP 不是高层协议(看起来好像是高层协议,因为ICMP 报文是装在IP 数据报中,作为其中的数据部分),而是IP 层的协议。
ICMP报文的格式
- ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
- 差错报告报文共有4种
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
- 询问报文有两种:
- 回答请求和回答报文
- 时间戳请求和回答报文
ICMP差错报告报文的内容
不再发送差错报告报文的情况
• 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
• 对第一个分片的数据报片的所有后续数据报片都不发送ICMP 差错报告报文。
• 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
• 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送ICMP 差错报告报文。
RIP路由选择协议★
• 不存在一种绝对的最佳路由算法。
• 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
• 实际的路由选择算法,应尽可能接近于理想的算法。RIP路由选择协议所实现的最短距离指的是经过的路由器条跳数
自治系统AS
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
两大路由选择协议
• 内部网关协议IGP (Interior Gateway Protocol)
– 在一个自治系统内部使用的路由选择协议。
– 目前这类路由选择协议使用得最多,如RIP 和OSPF 协议。
• 外部网关协议EGP (External Gateway Protocol)
– 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP。
– 在外部网关协议中目前使用最多的是BGP-4。
内部网关协议RIP
• 路由信息协议RIP 是内部网关协议IGP中最先得到广泛使用的协议。
• RIP 是一种分布式的基于距离向量的路由选择协议。
• RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
距离的定义:
• 从一路由器到直接连接的网络的距离定义为1。
• 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。
• RIP 协议中的“距离”也称为“跳数 ”(hop count),因为每经过一个路由器,跳数就加1。• RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
• RIP 允许一条路径最多只能包含 15 个路由器。
• “距离”的最大值为16 时即相当于不可达。可见RIP 只适用于小型互联网。
• RIP 选择一个具有最少路由器的路由( 即最短路由),哪怕还存在另一条高速( 低时延)但路由器较多的路由。
RIP协议的三个要点
实现RIP实际就是实现路由信息的交换
• 仅和相邻路由器交换信息。(向谁发)
• 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。(发什么)
– 交换信息的内容
(目的网络,距离,下一跳)
• 按固定的时间间隔交换路由信息,例如,每隔30 秒。(何时发)
路由表的建立
• 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
• 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
• 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
• RIP 协议的收敛(convergence)过程较快,收敛即在自治系统中所有的结点都得到正确的路由选择信息的过程。
RIP距离向量算法
RIP协议位置
• RIP 协议使用运输层的用户数据报 UDP进行传送(使用UDP 的端口520)。
• 因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。
• 路由器也是一个主机,也是有应用层的,但是在分组转发过程中只达到网络层。
RIP的优缺点
• RIP 协议最大的优点就是实现简单,开销较小。
• RIP 限制了网络的规模,它能使用的最大距离为15(16 表示不可达)。
• RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(坏消息传播慢)。
• 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
RIP好消息传播的快,坏消息传播的慢
IPv6
引进的主要变化
• 更大的地址空间:IPv6 将地址从IPv4 的 32 位 增大到了128 位
• 扩展的地址层次结构
• 灵活的首部格式: IPv6 定义了许多可选的扩展首部
• 改进的选项:IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中
• 允许协议继续扩充。
• 支持即插即用(即自动配置),因此IPv6 不需要使用DHCP
• 支持资源的预分配:IPv6 支持实时视像等要求,保证一定的带宽和时延的应用
• IPv6 首部改为8 字节对齐
IPv6数据报的一般形式
IPv6数据报由两部分组成:
- 基本首部
- 有效载荷:有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extension header),再后面是数据部分。
-
IPv6的基本首部
• IPv6 将首部长度变为固定的40 字节,称为基本首部(base header)。
• 将不必要的功能取消了,首部的字段数减少到只有8 个。
• 取消了首部的检验和字段,加快了路由器处理数据报的速度。
• 在基本首部的后面允许有零个或多个扩展首部。
• 所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)或净负荷。与IPv4数据报首部的对比
IPv6的报文结构
IPv6的基本首部
- 版本(version)—— 4 bit。它指明了协议的版本,对IPv6 该字段总是 6。
- 通信量类(traffic class)—— 8 bit。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
- 流标号(flow label)—— 20 bit。 “流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标号。
- 有效载荷长度(payload length)—— 16 bit。它指明IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
- 下一个首部(next header)—— 8 bit。它相当于 IPv4 的协议字段或可选字段,表示对应的高层协议(无扩展首部时)或者第一个扩展首部的类型(有扩展首部时)。
- 跳数限制(hop limit)—— 8 bit。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减1。
当跳数限制的值为零时,就要将此数据报丢弃。 - 源地址—— 128 bit。是数据报的发送站的 IP 地址。
- 目的地址—— 128 bit。是数据报的接收站的 IP 地址。
IPv6的扩展首部
• IPv6 把原来IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
• 数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
• 这样就大大提高了路由器的处理效率。
在RFC 2460 中定义了六种扩展首部:
- (1) 逐跳选项
- (2) 路由选择
- (3) 分片
- (4) 鉴别
- (5) 封装安全有效载荷
- (6) 目的站选项
每一个扩展首部都由若干个字段组成,它们的长度也各不相同。但所有扩展首部的第一个字段都是8位的“下一个首部”字段。此字段的值指出了在该扩展首部后面的字段是什么。
IPv6的扩展首部示例
冒号十六进制记法
点分十进制记法的后缀
IPv6 地址分类
从IPv4向IPv6过渡
• 向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6 系统能够向后兼容:IPv6 系统必须能够接收和转发IPv4分组,并且能够为IPv4 分组选择路由。
• 两种向IPv6 过渡的策略:
– 使用双协议栈
– 使用隧道技术
双协议栈
• 向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6 系统能够向后兼容:IPv6 系统必须能够接收和转发IPv4分组,并且能够为IPv4 分组选择路由。
• 两种向IPv6 过渡的策略:
– 使用双协议栈
– 使用隧道技术
• 双协议栈(dual stack) 是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有两个协议栈,一个IPv4 和一个IPv6。
• 双协议栈的主机(或路由器)记为IPv6/IPv4 ,表明它同时具有两种IP 地址:一个IPv6 地址和一个IPv4 地址。
• 双协议栈主机在和IPv6 主机通信时是采用IPv6 地址,而和IPv4 主机通信时就采用IPv4地址。
• 根据DNS 返回的地址类型可以确定使用IPv4地址还是IPv6 地址。
隧道技术
• 在 IPv6 数据报要进入IPv4 网络时,把IPv6数据报封装成为IPv4 数据报,整个的IPv6数据报变成了IPv4 数据报的数据部分。
• 当 IPv4 数据报离开IPv4 网络中的隧道时,再把数据部分(即原来的IPv6 数据报)交给主机的IPv6 协议栈。
IP多播
- 基本概念:
• IP 多播(multicast,以前曾译为组播) 已成为互联网的一个热门课题。
• 目的:更好第支持一对多通信。
• 一对多通信:一个源点发送到许多个终点。
– 例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信。
- 多播可大大节约网络资源
• 在互联网上进行多播就叫做IP 多播。
• 互联网范围的多播要靠路由器来实现。
• 能够运行多播协议的路由器称为多播路由器(multicast router)。当然它也可以转发普通的单播IP数据报。
• 从 1992 年起,在互联网上开始试验虚拟的多播主干网MBONE (Multicast Backbone On the InterNEt)。 现在多播主干网已经有了相当大的规模。
多播IP地址
• IP 多播所传送的分组需要使用多播IP 地址。
• 在多播数据报的目的地址写入的是多播组的标识符。
• 多播组的标识符就是IP 地址中的D 类地址( 多播地址)。
• 每一个D 类地址标志一个多播组。
• 多播地址只能用于目的地址,不能用于源地址。
多播数据报
• 多播数据报和一般的IP 数据报的区别就是它使用D 类IP 地址作为目的地址,并且首部中的协议字段值是2,表明使用网际组管理协议IGMP。
• 多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。
• 对多播数据报不产生ICMP 差错报文。因此,若在PING 命令后面键入多播地址,将永远不会收到响应。`
在局域网上进行硬件多播
地址的映射关系
- 由于多播IP 地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
IP多播需要两种协议
• 为了使路由器知道多播组成员的信息,需要利用网际组管理协议IGMP (Internet Group Management Protocol)。
• 连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
IGMP协议
IGMP的使用范围
• IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。
• IGMP 不知道IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
• IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
IGMP与IP
• 和 ICMP 相似,IGMP 使用IP 数据报传递其报文(即IGMP 报文加上IP 首部构成IP 数据报),但它也向IP 提供服务。
• 因此,我们不把IGMP 看成是一个单独的协议,而是属于整个网际协议IP 的一个组成部分。
IGMP工作的两个阶段
• 第一阶段:加入多播组。
– 当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文 ,声明自己要成为该组的成员。
– 本地的多播路由器收到IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。
• 第二阶段:探询组成员变化情况。
– 因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
– 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
– 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
VPN和NAT
IP地址总归不够用,互联网中的IP地址终究会用光,但是机构内部使用的计算机就可以由本机构自行分配其IP地址,由本机自行分配,不需要向互联网管理机构申请。但是如何访问互联网?机构自己分配的地址会和全球地址冲突,这个时候就需要NAT进行转换,利用NAT路由器,NAT路由器自带全球IP地址,也可以带着多个IP地址,带着多少个IP地址决定着机构内同时能有多少个主机可以访问互联网,如果NAT路由器只有一个全球IP地址的话,那么一台主机访问的时候,其他并不能访问互联网,同时,VPN中的主机不能作为互联网上的服务器(只能访问别人,别人不能访问你)
VPN专用IP地址
专用网
• 采用这样的专用IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。
• 因为这些专用地址仅在本机构内部使用。专用IP地址也叫做可重用地址
(reusable address)。
虚拟专用网 VPN
• 采用这样的专用IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。
• 因为这些专用地址仅在本机构内部使用。专用IP地址也叫做可重用地址
(reusable address)。
虚拟专用网 VPN 构建
• 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。
• 一个机构要构建自己的VPN 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN 系统都知道其他场所的地址。
用隧道技术实现虚拟专用网
远程接入VPN
• 远程接入VPN (remote access VPN)可以满足外部流动员工访问公司网络的需求。
• 在外地工作的员工拨号接入互联网,而驻留在员工PC 机中的VPN 软件可在员工的PC机和公司的主机之间建立VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
网络地址转换NAT
• 需要在专用网连接到互联网的路由器上安装NAT 软件。装有NAT 软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。
• 所有使用本地地址的主机在和外界通信时,都要在NAT 路由器上将其本地地址转换成全球IP 地址,才能和互联网连接。
网络地址转换过程
网络地址与端口号转换NAPT
• 为了更加有效地利用NAT 路由器上的全球IP地址,现在常用的NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个NAT 路由器上的全球IP 地址,因而可以同时和互联网上的不同主机进行通信。
• 使用端口号的NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的NAT 就叫做传统的NAT (traditional NAT)。
5.运输层★
5.1运输层概述
运输层的位置
运输层的作用
• 在一台主机中经常有多个应用进程同时分别 和另一台主机中的多个应用进程通信。
• 这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing)。
• 根据应用程序的不同需求,运输层需要有两 种不同的运输协议,即面向连接的 TCP 和无 连接的 UDP 。
基于端口的分用和复用
以UDP举例:
- 在UDP首部前两个字段当中,是源端口和目的端口,从接收端来讲,当接收端从 UDP报文中拆解出两个端口号之后,会根据端口号标识的内容,发送给上一层的应用程序,从而实现了端口的分用
- 复用是分用的相反过程,应用程序把数据交付下来之后,其中的端口号就标明了这是哪一个应用进程
运输层和网络层的区别
网络层是为主机之间提供逻辑通信
运输层为应用进程之间提供端到端的逻辑通信
屏蔽作用
就是运输层向用户(我们使用者)屏蔽了下面网络核心的细节,什么网络拓扑、路由选择协议之类的,使得用户使用起来感觉就是两个运输层实体之间有一条端到端的逻辑通信信道一样。
两种协议
- TCP协议
TCP提供面向连接的服务,但不提供广播或 多播服务,尽管下面的网络是不可靠的(只提 供尽最大努力服务),但这种逻辑通信信道 就相当于一条全双工的可靠信道。
- UDP协议
当运输层采用无连接的 UDP 协议时,这种逻 辑通信信道是一条不可靠信道。
举例:
端口
5.2 UDP协议 ★
用户数据报协议UDP(User Datagram Protocol)
UDP概述
• 协议传送单元叫做 UDP 报文或用户数据报。
• UDP 只在 IP 的数据报服务之上增加了很少一点 的功能:
– 复用和分用的功能
– 差错检测的功能
• 虽然 UDP 用户数据报只能提供不可靠的交付, 但 UDP 在某些方面有其特殊的优点。适用于高 实时性的场合,比如音视频播放。
UDP特点
• UDP 是无连接的,即发送数据之前不需要建立 连接,因此减少了开销和发送数据之前的时延。
• UDP 使用尽最大努力交付,即不保证可靠交付, 同时也不使用拥塞控制。
• UDP 是面向报文的。
• UDP 支持一对一、一对多、多对一和多对多的 交互通信。
• UDP 的首部开销小,只有 8 个字节。
面向报文的UDP
- 发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
- 应用层交给 UDP 多长的报文,UDP 就照样发 送,即一次发送一个报文。
- 接收方 UDP 对 IP 层交上来的 UDP 用户数据 报,在去除首部后就原封不动地交付上层的 应用进程,一次交付一个完整的报文。
- 应用程序必须选择合适大小的报文。
UDP首部格式
5.3 TCP协议★
传输控制协议TCP(Transmission Control Protocol)
TCP特点
• 协议传送单元叫做 TCP 报文段。
• TCP是面向连接的运输层协议。
• 每一条 TCP 连接只能有两个端点(endpoint),每一 条 TCP 连接只能是点对点的(一对一)。
• 提供可靠传输
• TCP 提供全双工通信,收发两端都有缓存。
• 面向字节流。
TCP概念
TCP的连接
5.4 TCP报文格式★
确认号字段也就是ack(小写),只有ACK(大写)为1的时候才起作用,其值为想要的下一个值的序号
5.5 TCP的运输连接管理
TCP 是面向连接的协议。
运输连接三个阶段
-
1.连接建立
需要解决三个问题:
- 要使每一方能够确知对方的存在。
- 要允许双方协商一些参数(如最大报文段 长度,最大窗口大小,服务质量等)。
- 能够对运输实体资源(如缓存大小,连接 表中的项目等)进行分配。
-
2.数据传送
-
3.连接释放
客户服务器方式
• TCP连接的建立采用客户服务器方式。
• 主动发起连接建立的应用进程叫做客户(client)
• 被动等待连接建立的应用进程叫做服务器 (server)。
TCP的连接建立
• TCP 建立连接的过程叫做握手。
• 握手需要在客户和服务器之间交换三个 TCP 报文 段。称之为三报文握手。
建立过程:
三报文握手:
总:
TCP的连接释放
• TCP 连接释放过程比较复杂。
• 数据传输结束后,通信的双方都可释放连接。
• TCP 连接释放过程是四报文握手。
四报文握手
MSL——Maximum Segment Lifetime,最长报文寿命
A 必须等待 2MSL 的时间?
• 第一,为了保证 A 发送的最后一个 ACK 报文段能 够到达 B。
• 第二,再经过时间 2MSL,就可以使本连接持续的 时间内所产生的所有报文段,都从网络中消失。
5.6 可靠传输
TCP的可靠传输
理想中的(怎么可能)
停止等待协议
• “停止等待”就是每发送完一个分组就停止 发送,等待对方的确认。在收到确认后再发 送下一个分组。
• 全双工通信的双方既是发送方也是接收方。
• 为了讨论问题的方便,我们仅考虑 A 发送数 据而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。
无差错情况:
出现差错:
确认丢失和确认迟到:
自动重传请求ARQ
• 使用上述的确认和重传机制,就可以在不可 靠的传输网络上实现可靠的通信。
• 像上述的这种可靠传输协议常称为自动重传 请求 ARQ (Automatic Repeat reQuest)。意思是重传的请求是自动进行的,接收方不需 要请求发送方重传某个出错的分组。
所以采用:
连续ARQ协议
累计确认
可以通过一次确认表示前面的分组都受到了,假如发送了2个10分组,第一个10的收到信息没有传回来,第二个10的传回来了20序号,表示这20个都收到了,不用进行再传了。
Go-back-N回退
回退到错误帧,后面的全部重新传
TCP可靠通信的具体实现
滑动窗口
(红色发送窗口,蓝色接受窗口)
“已经发送并得到对端ACK的”
“已经发送但还未收到对端ACK的”
“未发送但对端允许发送的”
“未发送且对端不允许发送”
以字节为单位
B给出的窗口值表示B还能接受的
发送缓存
接受缓存
注意事项:
接收方发送确认
接收方不需要每次收到一条就发送一条确认(累积确认)
• 接收方可以在合适的时候发送确认,也可以 在自己有数据要发送时把确认信息顺便捎带 上。
• 但请注意两点:
– 第一,接收方不应过分推迟发送确认,否 则会导致发送方不必要的重传,这反而浪 费了网络的资源。
– 第二,捎带确认实际上并不经常发生,因 为大多数应用程序很少同时在两个方向上 发送数据。
超时重传时间的选择
• TCP 每发送一个报文段,就对这个报文段设 置一次计时器。
• 只要计时器设置的重传时间到但还没有收到 确认,就要重传这一报文段。
超时重传时间RTO
5.7 流量控制
利用滑动窗口实现流量控制
• 流量控制 (flow control) 就是让发送方的发送 速率不要太快,既要让接收方来得及接收, 也不要使网络发生拥塞。
• 利用滑动窗口机制可以很方便地在 TCP 连接 上实现流量控制。
举例:
可能发生死锁
持续计时器
5.8 拥塞控制
• 拥塞控制原理
• TCP 拥塞控制
• 主动队列管理
拥塞控制原理
• 拥塞定义:对网络资源的需求大于可用资源, 网络性能变坏。
• 具体原因:链路速度、路由器处理能力、主机 处理能力等。
• 控制目的:防止过多的数据注入到网络中,使 网络中的路由器或链路不致过载。
• 与流量控制区别:控制的发起者不同。
• 控制方法:开环控制和闭环控制。
• 检测指标:上升意味着拥塞的增长。
– 由于缺少缓存空间而被丢弃的分组的百分数;
– 平均队列长度;
– 超时重传的分组数;
– 平均分组时延;
– 分组时延的标准差,等等。
TCP拥塞控制
慢开始
因为每收到一个报文确认,就将拥塞窗口+1,所以是以2的次方数增长(1->2->4->8…)
拥塞避免
拥塞避免为每轮将拥塞窗口数+1(不管接收到几个)直到上限
快重传
慢恢复
主动队列管理
AQM
6.应用层
域名系统DNS
• 互联网上的节点可以用IP地址唯一标识及被访问, 但32位的IP地址对人而言太长、太难记,虽然它方 便机器处理。
• 互联网采用层次结构的命名树作为主机的名字,并 使用分布式的域名系统 DNS。 mail . bjtu . edu . cn
• 域名系统DNS (Domain Name System)是互联网的一 项服务。解决网络上机器命名的一种系统。
• DNS作为域名和IP地址相互映射的一个分布式数据 库,使人们更方便地访问互联网。
• 名字到IP地址的解析是由若干个域名服务器程序完 成的。域名服务器程序在专设的结点上运行,运行 该程序的机器称为域名服务器。
• 互联网采用了层次树状结构的命名方法。
• 任何一个连接在互联网上的主机或路由器,都 有一个唯一的层次结构的名字,即域名。
• 域名的结构由标号序列组成,各标号之间用点 隔开:
… . 三级域名 . 二级域名 . 顶级域名
• 各标号分别代表不同级别的域名。
域名只是个逻辑概念
• 域名只是个逻辑概念,并不代表计算机所在的 物理地点。
• 变长的域名和使用有助记忆的字符串,是为了 便于人来使用。而 IP 地址是定长的 32 位二进 制数字则非常便于机器进行处理。
• 域名中的“点”和点分十进制 IP 地址中的“ 点”并无一一对应的关系。点分十进制 IP 地 址中一定是包含三个“点”,但每一个域名中 “点”的数目则不一定正好是三个。
顶级域名TLD(Top Level Domain)
中文域名:
• 中文域名泛指含有中文字元的域名,可以指:
– 国际化域名(IDN),可含有中文字的域名 ,例如 新华网.中国 等。
– 国际化国家及地区顶级域(IDN ccTLD), 可含有中文字的顶级域,例如.中国、.香港、 .台湾等。
下级域名
互联网的域名空间
根域名不显示,但是是存在的
域名服务器
区的划分
树状结构DNS域名服务器
四类域名服务器
• 根域名服务器
• 顶级域名服务器
• 权限域名服务器
• 本地域名服务器
根域名服务器:
顶级域名服务器
本地域名服务器
域名的解析过程
名字的高速缓存
• 每个域名服务器都维护一个高速缓存,存 放最近用过的名字以及从何处获得名字映 射信息的记录。
• 为保持高速缓存中的内容正确,域名服务 器应为每项内容设置计时器,并处理超过 合理时间的项(例如,每个项目只存放两 天)。
FTP文件传送协议
FTP基本工作原理
主进程的工作步骤
FTP的两个TCP连接
TFTP和NFS:
电子邮件
电子邮件的最主要的组成构件
• 用户代理
• 邮件服务器
• 协议:发送协议和接收协议
用户代理 UA (User Agent)
电子邮件协议
简单邮件传送协议 SMTP
邮件读取协议POP3
邮件读取协议IMAP
电子邮件的组成
• 电子邮件由信封(envelope)和内容(content)两 部分组成。
• 电子邮件的传输程序根据邮件信封上的信息 来传送邮件。用户在从自己的邮箱中读取邮 件时才能见到邮件的内容。
• 在邮件的信封上,最重要的就是收信人的地址。
电子邮件地址的格式
收信人邮箱名@邮箱所在主机的域名
电子邮件发收步骤
基于万维网的电子邮件
WWW万维网
• 万维网以客户-服务器方式工作。
• 浏览器就是在用户计算机上的万维网客户程序。
• 万维网文档所驻留的计算机则运行服务器程序, 因此这个计算机也称为万维网服务器。
• 客户程序向服务器程序发出请求,服务器程序向 客户程序送回客户所要的万维网文档。
• 客户程序主窗口上显示出万维网文档页面 (page)
统一资源定位符 URL
超文本传送协议 HTTP
超文本传送协议 HTTP—响应时间
超文本传送协议 HTTP—报文结构
万维网的文档
-
1.HTML
-
2.XML
-
3.CSS
-
4.动态文档
-
5.活动文档
DHCP动态主机配置协议
• 动态主机配置协议 DHCP 提供了即插 即用连网(plug-and-play networking)的 机制。
• 这种机制允许一台计算机加入新的网 络和获取IP地址而不用手工参与。
上网需要配置的内容
• IP地址
• 子网掩码
• 默认路由器(网关)的IP地址
• DNS服务器的IP地址
DHCP工作方式
v5FfHk3q-1642843701682)]
TFTP和NFS:
[外链图片转存中…(img-tBomMZF0-1642843701683)]
电子邮件
电子邮件的最主要的组成构件
• 用户代理
• 邮件服务器
• 协议:发送协议和接收协议
[外链图片转存中…(img-yBHninyH-1642843701684)]
用户代理 UA (User Agent)
[外链图片转存中…(img-se1llnQe-1642843701685)]
电子邮件协议
[外链图片转存中…(img-uQWY7m0G-1642843701686)]
简单邮件传送协议 SMTP
[外链图片转存中…(img-tsfSUYk7-1642843701688)]
邮件读取协议POP3
[外链图片转存中…(img-z5iobQrp-1642843701689)]
邮件读取协议IMAP
[外链图片转存中…(img-In9L9Ujg-1642843701690)]
电子邮件的组成
• 电子邮件由信封(envelope)和内容(content)两 部分组成。
• 电子邮件的传输程序根据邮件信封上的信息 来传送邮件。用户在从自己的邮箱中读取邮 件时才能见到邮件的内容。
• 在邮件的信封上,最重要的就是收信人的地址。
电子邮件地址的格式
收信人邮箱名@邮箱所在主机的域名
[外链图片转存中…(img-po5am9oA-1642843701694)]
电子邮件发收步骤
[外链图片转存中…(img-J8zzXpKK-1642843701695)]
基于万维网的电子邮件
[外链图片转存中…(img-Ek7Tyvte-1642843701695)]
WWW万维网
[外链图片转存中…(img-I1hJuyIe-1642843701696)]
• 万维网以客户-服务器方式工作。
• 浏览器就是在用户计算机上的万维网客户程序。
• 万维网文档所驻留的计算机则运行服务器程序, 因此这个计算机也称为万维网服务器。
• 客户程序向服务器程序发出请求,服务器程序向 客户程序送回客户所要的万维网文档。
• 客户程序主窗口上显示出万维网文档页面 (page)
统一资源定位符 URL
[外链图片转存中…(img-rLbPWX4x-1642843701697)]
超文本传送协议 HTTP
[外链图片转存中…(img-g3A401jM-1642843701699)]
超文本传送协议 HTTP—响应时间
[外链图片转存中…(img-OAh4xUeg-1642843701699)]
超文本传送协议 HTTP—报文结构
[外链图片转存中…(img-qo6Tx99d-1642843701700)]
万维网的文档
-
1.HTML
-
2.XML
-
3.CSS
-
4.动态文档
[外链图片转存中…(img-CELi91NM-1642843701702)]
-
5.活动文档
[外链图片转存中…(img-JH09BZH2-1642843701703)]
DHCP动态主机配置协议
• 动态主机配置协议 DHCP 提供了即插 即用连网(plug-and-play networking)的 机制。
• 这种机制允许一台计算机加入新的网 络和获取IP地址而不用手工参与。
上网需要配置的内容
• IP地址
• 子网掩码
• 默认路由器(网关)的IP地址
• DNS服务器的IP地址
DHCP工作方式
[外链图片转存中…(img-mpR6IpzI-1642843701705)]
[外链图片转存中…(img-4XKrhCyX-1642843701705)]
最后
以上就是活泼小土豆为你收集整理的计算机网络学习笔记(汇总)计算机网络的全部内容,希望文章能够帮你解决计算机网络学习笔记(汇总)计算机网络所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复