第四章 网络层(上)
一、网络层功能
网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
功能一:路由选择与分组转发
功能二:异构网络互联
功能三:拥塞控制
附:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
解决措施:开环控制(静态)、闭环控制(动态)
二、IP数据报格式
1、TCP/IP协议栈
2、IP数据报格式
版本: 占4位,指协议IP的版本,IPv4 / IPv6
首部长度: 单位是4B,最小为5。IP数据报的数据部分永远在4字节的整数倍开始。
区分服务DS(Differentiated Services): 指示期望获得哪种类型的服务。
总长度: 首部+数据,单位是1B。总长度字段为16位,数据报的最大长度为216-1=65535字节(现实中极少遇到,总长度不能超过数据链路层规定的MTU)。
生存时间TTL(Time to Live): IP分组的保质期。经过一个路由器-1,变成0则丢弃。
协议: 数据部分的协议。
| 协议名 | ICMP | IGMP | TCP | EGP | IGP | UDP | IPv6 | ESP |
|–|–|–|–|–|–|–|–|–|–|
| 字段值 | 1 | 2 | 6 | 8 | 9 | 17 | 41 | 50 |
首部检验和: 只检验数据报的首部,不包括数据部分。
源IP地址: 32位。发送IP数据报的主机的IP地址。
目的IP地址: 32位。接收IP数据报的主机的IP地址。
可选字段: 0~40B ,用来支持排错、测量以及安全等措施。
填充: 全0,把首部补成4B的整数倍。
三、IP数据报分片
1、最大传送单元MTU
MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
若所传的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
2、IP数据报格式
标识: 同一数据报的分片使用同一标识。
标志: 占3位,只有2位有意义
- 中间位DF(Don’t Fragment):
DF=1,禁止分片
DF=0,允许分片 - 最低位MF (More Fragment) :
MF=1,后面“还有分片”
MF=0,代表最后一片/没分片
片偏移: 指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。(除了最后一个分片,每个分片长度一定是8B的整数倍。)
附: 总长度单位是1B。片偏移单位是8B。首部长度单位是4B。
3、IP数据报分片例题
【例】一个数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。
解:因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。图4-21给出分片后得出的结果。
下表是数据报首部与分片有关的字段中的数值,其中标识字段的值是任意给定的。具有相同标识的数据报片在目的站就可无误地重装成原来的数据报。
四、IPv4地址
1、IP编址的历史阶段
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)
2、分类的IP地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。
IP地址::={<网络号>,<主机号>}
IP地址中包含网络号就表明,不连网的主机就没有IP地址。
IP地址指明了连接到某个网络上的一个主机(或路由器)。
3、特殊IP地址
4、私有IP地址
五、网络地址转换(NAT)
网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
六、子网划分与子网掩码
1、子网划分
分类的IP地址的弱点:
①IP地址空间的利用率有时很低。
②两级IP地址不够灵活。
2、子网掩码
3、子网掩码习题
【例1】已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址。
如果子网掩码是255.255.224.0,求网络地址。
【例2】某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是( D )。
A.180.80.76.0 B.180.80.76.255 C.180.80.77.255 D.180.80.79.255
解:由子网掩码255.255.252.0(11111111.11111111.11111100.00000000)可知网络号为连续的1,主机号为连续的0,有10位;同时由IP地址可以推出网络号为16位,所以子网号为6位,主机号为10位。
题目要发送广播分组,所以求的是广播地址,广播地址的主机号是全为1的,所以主机180.80.77.55所在的广播地址就是 180.80.010011(11.11111111),括号里面的是主机号,即180.80.79.255
4、使用子网时分组的转发
七、无分类编址CIDR
1、无分类编址CIDR
无分类域间路由选择CIDR:
- 消除了传统的A类,B类和C类地址以及划分子网的概念。
- 融合子网地址与子网掩码,方便子网划分。
CIDR记法:IP地址后加上“/”,然后写上网络前缀(可以任意长度)的位数。 e.g. 128.14.32.0/20
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
2、构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短(所有网络地址取交集)。
3、最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
八、ARP协议
1、发送数据的过程
2、ARP协议
-
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP协议:完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题) -
ARP协议使用过程: 检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。
-
ARP协议4种典型情况:
①、主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
②、主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
③、路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
④、路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
九、DHCP协议
1、主机获得IP地址的方式
- 静态配置:
IP地址、子网掩码、默认网关 - 动态配置:
2、DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
①主机广播DHCP发现报文:试图找到网络中的服务器,服务器获得一个IP地址。
②DHCP服务器广播DHCP提供报文:服务器拟分配给主机一个IP地址及相关配置,先到先得。
③主机广播DHCP请求报文:主机向服务器请求提供IP地址。
④DHCP服务器广播DHCP确认报文:正式将IP地址分配给主机。
十、ICMP协议
1、TCP/IP协议栈
2、网际控制报文协议ICMP
3、ICMP差错报告报文
十一、IPv6
1、IPv6数据报格式
2、IPv6和IPv4
1.IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
3.IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,
大大提高了路由器的处理效率。
4.IPv6支持即插即用(即自动配置),不需要DHCP协议。
5.IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
6.IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
7.ICMPv6:附加报文类型“分组过大”。
8. IPv6支持资源的预分配, 支持实时视像等要求,保证一定的带宽和时延的应用。
9.IPv6取消了协议字段,改成下一个首部字段。
10.IPv6取消了总长度字段,改用有效载荷长度字段。
11.IPv6取消了服务类型字段。
3、IPv6地址表示形式
一般形式冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
4、IPv6基本地址类型
单播
多播
任播
一对一通信
一对多通信
可做源地址+目的地址
可做目的地址
一对多中的一个通信 可做目的地址
5、IPv6向IPv4过渡的策略
双栈协议 双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设
备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路
由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6
网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时
处理这两个协议地址的功能。
隧道技术 通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)
可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道
发送。