第四章 网络层
1.网络层提供的两种服务
1)面向连接的通信方式:虚电路服务
虚电路服务的表示只是一个逻辑上的连接,和之前物理层的电路交换所建立的实际连接
不同。
2)无连接的通信方式:数据报服务
2.国际协议IP
(1) 国际协议IP
IP协议是TCP/IP协议中两个最主要的协议之一,并有四个协议配套使用:
1)ARP:地址解析协议
2)RARP:逆地址解析协议
3)ICMP:网际控制报文协议
4)IGMP:网际组管理协议
(2)虚拟互联网络
中间设备:
1)物理层:转发器
2)数据链路层:网桥
3)网络层中继系统:路由器
4)网络层以上:网关
转发器和网桥并不算称为网络互联,它们只是把网络扩大了,仍然只是一个网络
使用IP协议的虚拟互联网络可以简称IP网
(3)分类的IP地址
IP地址是每个主机唯一的32位的标识符,每一类都有两个固定长度的字段组成,一
个字段是网络号net-id,标志主机所连接的网络,另一个是主机号host-id,标志主机
(32位 = 4字节)
点分十进制法:
IP地址32位,每个字节(8位)之间插入一个空格,并转化为十进制数:
10000000 00001011 00000011 00011111 = 128.11.3.31
常见的IP地址:
(4)IP地址的特点
1)IP地址是一种分等级的地址结构
2)IP地址是标志一个主机和一条链路的接口,当一个主机同时连接到两个网络上时,
必须有两个IP地址,且net-id必须不同。
3)用转发器或者网桥连接起来的多个局域网仍为一个网络,故这些局域网net-id相同
4)所有分配到net-id的网络,无论是范围很大还是很小,都是平等的。
5)路由器总是具有两个或者两个以上的IP地址,每个接口对应一个
(5)ARP和RARP
1)ARP:IP地址转化成物理地址
不管网络层使用什么协议,实际网络的链路上传送数据帧时,都要用到MAC地址
·每个主机里面都设有一个ARP高速缓存,里面有所在的局域网上的各种主机和路
由器的IP地址到硬件地址的映射表。
·当A想向本局域网上的某个主机B发送IP数据报时,就会现在其ARP高速缓存中查
看有无主机B的IP地址,如果有就查对应的硬件地址,再写进MAC帧,然后通过局
域网把该帧发往对应的硬件地址。
·ARP解决的是同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
如果所找的主机和源主机并不在一个局域网的话,那么就需要通过ARP找到一个位
位于当前局域网的路由器,然后让这个路由器把分组转发给下一个网络。
使用ARP 的四种典型情况:
(1) 发送方是主机,要把IP 数据报发送到同一个网络上的另一台主机。这时H
发送 ARP 请求分组,找到目的主机的MAC地址。
(2) 发送方是主机,要把 IP 数据报发送到另一个网络上的一台主机。这时H,发
送 ARP 请求分组,找到网络上的一个路由器 R」的MAC地址。剩下的工作由
路由器 R」来完成。R」要做的事情是下面的(3)或(4)。
(3)发送方是路由器(如Ri),要把IP 数据报转发到与 R,连接在同一个网络N2
上的主机(如Hg)。这时R」发送 ARP 请求分组(在N2上广播),找到目的
主机的MAC地址。
(4)发送方是路由器(如 Ri),要把IP 数据报转发到网络 N3上的一台主机。
不是连接在同一个网络上的。这时 R」发送 ARP 请求分组(在N2上广播),
找到连接在N2上的1个路由器的MAC地址。剩下的工作由路由器R2来完成。
2)RARP:物理地址转化成IP地址
(6)IP数据报的格式
具体的信息不叙述了
(1)版本占4位,指协议IP的版本。通信双方使用的协议IP的版本必须一致。这里讨论的协议IP版本号为4(即IPv4。)关千IPv6(即版本6的协议IP)
(2)首部长度占 4位,可表示的最 大十进制数值是15。请注意,首部长度字段所表示数的单位是32位字长( 1个 32位字长是4字节) 。因为 IP首部的固定部分是20字 节,因此首部长度字段的最小值是5(即二进制表示的首部长度是0101)。而当首部长度字段为最 大值1111时(即 十进制的15),就表 明首部 长度达到最大值15个32位字长,即 60字 节。
(3)区分服务占8位,用 来获得更好的服务。这个字段在旧标准中叫作服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services) 。只 有在 使用 区分服务时,这个字段才起作用(见8 .4.4节)。在一般 的情况下都不使 用这 个字段[RFC2474, RFC 3 168, RFC 3260]。
(4)总长度总长度指首部和 数据之和的长 度, 单位为字节。总长度字段为16位,因此数 据报的 最大长度为i6-l = 65535字节。然 而实 际上传送这样长的数据报在 现实中是极少遇到的。我们知道 ,在 IP层下面的每一种数据链路层 协议都规定 了一个数据帧 中的 数据字段的最 大长度,这 称为 最大传送单元 MTU(Maximum Transfer Unit)。当一个 IP数据报封装成链路层的帧 时, 此数据报的总长 度(即首部加上数 据部 分)一定 不能超过下面的数据链路层所规 定的MTU值。例如,最常用的以太 网就 规定 其MTU值是1500字 节。
(5)标识(identification)占 16位。IP软件在存储器中维 持一个计数器,每产生一个数 据报 ,计数 器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接 服务 ,数据报不 存在按序接收的问题。 当数据报 由于长度超过 网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报 片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正 确地重装成为原来的数据报。
(6)标志(flag)占3位,但目前只有两位有意义。
• 标志字段中的最低 位记为MF(More Fragment)。M F=l即表示后面”还有分片”的数据报。MF= O表示 这已是若干数据报 片中的最后一个。
• 标志字段中间的一位 记为 DF(Don't Fragment),意 思是“不能分片”。只有当D F= 0时才允许分片。
(7)片偏移占13位。片偏移指 出: 较长的分组在 分片 后, 某片在原分 组中的相对位置。也就是说,相对千用户数据字段的起 点,该 片从 何处开始。片偏移以8个字节为 偏移单位。这就是说,除最后一个 数据 报片外,其 他每个分 片的 长度一定是8字 节(64 位)的整数倍。
(7)IP层转发分组的流程
在路由表中,对每一条路由,最主要的是目的网络地址和下一跳地址
特定主机路由:为特定目的的主机指明一个路由
默认路由:减少路由表所占用的空间和搜索路由表所用的时间
IP数据报的首部之中并没有地方指明下一跳路由器的IP地址
流程:
1)从IP数据报的首部提取目的主机的IP地址D,得出目的网络地址为N
2)如果N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付
3)如果路由表中有目的地址D的特定主机路由,则把数据报传送给路由表中所指
明的下一跳路由器,否则继续
4)若路由表中有到达N的路由,则把数据报传送给路由表指明的下一跳路由器
5)若路由表中有一个默认路由,则把数据报传给默认路由
直接交付->特定主机路由->下一跳->默认路由
3.划分子网和构造超网
1)划分子网
二级IP地址->三级IP地址:划分子网
划分子网是一个单位内部的事情,对外仍然表现为没有划分子网的网络
思想:从主机号借用若干个单位作为子网号,主机号就少了若干位
但是划分子网本质上只是把IP地址的主机号再划分,并不改变IP地址原来的网络号ID
2)子网掩码
从IP数据报的首部有时并不能判断源主机或者目的主机所连接的网络是否进行了子网划分
IP地址与子网掩码进行相与运算【分析可得,对应A、B、C类的网络号相与数值不变】
子网掩码是一个网络或者子网的重要属性之一,所以当路由器和相邻路由器进行交换信息的
时候就一定要把所在的网络(或子网)的子网掩码告诉它。
·子网掩码就是网络号为,主机号为0.
但是由于子网掩码的加入,而IP数据报的首部里面并没有对应的地方存储子网掩码,所以要
优化原来的的发送流程:
(1)从收到的分组的首部提取目的IP地址D
(2)先用各网络的子网掩码与D逐位相与,看是否和相应的网络地址匹配,若匹配,直接交
付,如果不行,那就间接交付
(3)如果路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器
(4)对路由表中的每一行子网掩码和D逐位相与,如果匹配,则传给该行指明的路由器
(5)若路由表有默认路由,则将分组传送给路由表中所指明的默认路由器。
目的网络地址:是由目的IP地址和子网掩码相与运算的结果,路由器中通常会有存储表
3)CIDR无分类编址
(1)CIDR消除传统的ABC分类和划分子网的概念,使用各种长度的网络前缀
(2)IP地址 : 【<网络前缀>,<主机号>】
(3)斜线记法「又称CIDR记法」:在IP地址后加上一个斜线,然后写上网络前缀占的位数
(4)CIDR地址块:网络前缀都相同的连续的IP地址组成了CIDR地址块
例子:128.14.32.0/20表明前20位网络前缀,12位主机号,所以地址块有2的12次方个地址
(5)CIDR也使用掩码【不叫子网掩码】
(6)CIDR也有别的记法:VS 斜线记法
1)可以把点分十进制中的低位的连续的0省略:10.0.0.0/10 = 10/10
2)网络前缀的后面加一个*:00001010 00*表示*之前的是网络前缀,*表示IP地址
(7)路由聚合:一个CIDR地址块通常可以表示很多地址,这种地址的聚合称为路由聚合,
路由聚合也称为构成超网。
网络前缀越短:其地址块所包含的地址数就越多。
(8)最长前缀匹配:
使用CIDR时,路由表中的每个项目会有“网络前缀”和“下一跳地址”,在查找路由表时
会得到不止一个结果匹配,所以采用最长前缀匹配。【原理:网络前缀越长,地址块越
小,路由信息越具体】
路由表给了你网络前缀匹配信息也就相当于把子网掩码给你了,网络号为1,主机号为0
4.ICMP网际控制报文协议
ICMP报文并不算作IP协议加的首部的信息内容,而是作为数据部分的内容:
1)分类:
(1)ICMP差错报文:
终点不可达:无法交付数据报,向源点发送终点不可达报文
源点抑制:路由器或主机由于拥塞而丢弃数据报,使源点减小发送数据
时间超过:生存时间为0的数据报,终点在预定时间内不能收到全部数据报片
参数问题:首部字段不正确
改变路由:
(2)ICMP询问报文
回送请求和回答报文、时间戳请求和回答报文:
2)使用:PING命令
5.因特网的路由选选择协议