前言
参考王道书。 后续会进一步整理,包括添加笔记内容,标明参考资料。
更新中。。。
跳过目录
习题:【网络层协议】
习题:【IP数据报首部字段】、【IP数据报首部标志字段】
总长度单位:1B 片偏移单位:8B 首部长度单位:4B
记忆技巧:1种(总)8片的首饰(4)
习题:【IP数据报首部关于长度的字段】
链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
如果所传送的数据报长度超过某链路的MTU值,则需要分片
一个IP数据报在传输过程中可能被分片,也可能不被分片。
习题:【IP数据报分片】、【分组长度MTU】
指出较长分组分片后,某片在原分组中的相对位置。
以8B为单位
如:片偏移为 00……01,表示该分片是原来数据报中第8字节开始的位置的分片
除了最后一个分片,每个分片长度一定是8B的整数倍。例:传输链路需要分片为长度不超过1420B的数据报片。 分片:1400B、1400B、1000B(1420B中前20B用于首部字段)
片偏移量:0 片偏移量:1400B / 8B = 175(再转二进制) 片偏移量:2800B / 8B = 350(再转二进制) 总长度标识MFDF片偏移原始数据报382012345000数据报片1142012345100数据报片214201234510175数据报片310201234500350全世界唯一的32位(4B)标识符,标识路由器主机的接口。
IP地址组成:
{<网络号>, <主机号>}
二进制表示:11011111 00000001 00000001 00000001
点分十进制: 223.1.1.1
网桥不能分割广播域弱点:
IP地址间的利用率有时很低。习题:【单播地址】
网络类别最大可用网络数第一个可用的网络号最后一个可用的网络号每个网络中的最大主机数A27 - 2(0、127)1126224 - 2(1 ~ 255.255.254)B214 - 1(128.0)128.1191.255216 - 2(1 ~ 255.254)C221 - 1(192.0.0)192.0.1223.255.25528 - 2(1 ~ 254)网络号范围:
1 ~ 126,共126个(27 - 2)
全0:表示本网络127(01111111):用于环回测试主机号范围:
0.0.1 ~ 255.255.254,共 224 - 2 个。
全0:网络地址,表示一个网络全1:广播地址,对特定网络上的所有主机进行广播网络号范围:
128.1 ~ 191.255,共 214 - 1 个 128.0 不可指派主机号范围:
0.1 ~ 255.254,共 216 - 2 个。
全0:表示本网络全1:广播地址,对特定网络上的所有主机进行广播网络号范围:
192.0.1 ~ 223.255.255,共 221 - 1 个 192.0.0 不可指派主机号范围:
1 ~ 254,共 28 - 2 个。
全0:表示本网络全1:广播地址,对特定网络上的所有主机进行广播路由器对目的地址是私有IP地址的数据报一律不进行转发。
地址类别地址范围网段个数A类10.x.x.x1B类172.16.0.0 ~ 172.31.255.25516C类192.168.0.0 ~ 92.168.255.255256 网段个数:能分配多少个网络号网络地址转换(Network Address Translation,NAT)是指通过将专用网络地址(如Intranet)转换为公用地址(如Internet),从而对外隐藏内部管理的IP地址。
它使得整个专用网只需要一个全球 IP地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。
同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT转换表中存放着 { 本地IP地址 : 端口 } 到 { 全球IP地址 : 端口 } 的映射。
通过 { IP地址 : 端口 } 这样的映射方式,可让多个私有IP地址映射到同一个全球IP地址。
例:宿舍共享宽带上网。
假设某个宿舍办理了2Mb/s的宽带,那么这个宿舍就获得了一个全球IP地址(如138.76.29.7),而宿舍内4台主机使用私有地址(如192.168.0.0网段)。宿舍的网关路由器应该开启NAT功能,并且某时刻路由器上的NAT转换表如下。
当路由器从 LAN 端口收到源 IP 及源端口号为 192.168.0.2:2233 的数据报时,就将其映射成138.76.29.7:5001,然后从WAN端口发送到因特网上。
当路由器从WAN端口收到目的IP及目的端口号为138.76.29.7:5060 的数据报时,就将其映射成 192.168.0.3:1234,然后从LAN端口发送给相应的本地主机。
这样,只需要一个全球地址,就可以让多台主机同时访问因特网。
注意:
普通路由器在转发IP数据报时,不改变其源IP地址和目的IP地址。而NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)。普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号{<网络号>, <主机号>}
{<网络号>, <子网号>, <主机号>}
从两级IP地址中的主机号划分出子网号。
某单位划分子网后,对外仍表现为一个网络,即,本单位外的网络看不见本单位内子网的划分。
子网号能否全0全1要看情况主机号不能全0、全1了告诉主机或路由器对一个A类、B类、C类网络进行了子网划分,使用子网掩码来表达对原网络中主机号的借位。
网络号:全1子网号:全1主机号:全0子网掩码与IP地址逐位相与,就得到子网网络地址。
子网的网络地址 例:已知IP地址是141.14.72.24
子网掩码是255.255.192.0,求网络地址。子网掩码是255.255.224.0,求网络地址。解析: 只需要计算第3个十进制数 1) 转换为二进制:
// IP地址 01001000 // 子网掩码 11000000 // 按位与 01000000转换为十进制得:141.14.64.0 2) 转换为二进制:
//IP地址 01001000 // 子网掩码 11100000 //按位与 01000000转换为十进制得:141.14.64.0
注:
这两问中主机号长度并不一样。第1问中后14位为主机号,第2问中后13位为主机号。例2:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,若该主机向其所在子网发送广播分组,则目的地址可以是( )
A. 180.80.76.0 B. 180.80.76.255 C. 180.80.77.255 D. 180.80.79.255
答案:D 解析: 只需要计算第3个十进制数 1) 转换为二进制:
// IP地址 01001101 // 子网掩码 11111100 // 按位与 01001100广播地址:主机位全1 180.80.79.255
路由表中:
目的网络地址目的网络子网掩码下一跳地址路由器转发分组的算法:
提取目的IP地址 从收到的分组的首部提取目的IP地址,记为D。是否直接交付 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付;否则间接交付,执行步骤3。特定主机路由 若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器;否则,执行步骤4。检测路由表中有无路经 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址)中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行步骤5。默认路由 0.0.0.0 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行步骤6。报告转发分组出错CIDR记法:IP地址后加上/,然后写上网络前缀位数(可以任意长度)。
例:128.14.32.0/20融合子网地址与子网掩码,方便子网划分。
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块"。
128.14.35.7/20是某CIDR地址块中的一个地址
二进制: 10000000 00001110 00100011 00000111
最小地址:10000000 00001110 00100000 00000000 128.14.32.0
最大地址:10000000 00001110 00101111 111111111 128.14.47.255
地址块:128.14.32.0/20
地址掩码:111111111 11111111 11110000 00000000 255.255.240.0
例:192.199.170.82/27
分析:前27位为网络前缀,一共 25 = 32 个IP地址
二进制: 01010010
最小地址:01000000 192.199.170.64
最大地址:01011111 192.199.170.95
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:缩短网络前缀
路由器转发表
网络前缀下一跳地址合并网络1、网络2:206.1.128.0/16
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。
前缀越长,地址块越小,路由越具体。
例1:路由器R0的路由表见下表,若进入路由器R0的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器 ( )。
A. R1 B. R2 C. R3 D. R4
目的网络下一跳地址132.0.0.0/8R1132.0.0.0/11R2132.19.232.0/22R30.0.0.0/0R4答案:B
例2:某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是( )。
A. 32,8 В. 32,6 C. 8,32 D. 8,30
答案:B
习题:【最长前缀匹配】
IP地址:
IP地址是网络层使用的地址,它是分层次等级的。在网络层及网络层之上使用IP地址IP地址放在IP数据报的首部MAC地址:
MAC地址是数据链路层使用的地址(如MAC地址),它是平面式的。MAC地址放在MAC帧的首部通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址。
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP地址到MAC地址的映射,这就是地址解析协议(Address Resolution Protocol,ARP)。
每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP协议来动态维护此ARP表。
1号主机与3号主机通信 1号主机与5号主机通信
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为 FF-FF-FF-FF-FF-FF 帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。
目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10 - 20min更新一次)
例:主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?
答案:6次
主机如何获得IP地址?
静态配置 IP地址子网掩码默认网关 动态配置 DHCP协议动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
为了提高 IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)来让主机或路由器报告差错和异常情况
支持主机或路由器:
差错(或异常)报告网络探询发送特定ICMP报文
ICMP差错报文ICMP询问报文截取收到的IP数据报的首部和数据字段前8字节
当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
无法交付当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据反送达放慢。
拥塞丢数据当路由器收到生存时间 TTL = 0 的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。
当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
首部字段有问题路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
值得更好的路由习题:【分组长度超过MTU】
主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
测试目的站是否可达以及了解其相关状态。请某个主机或路由器回答当前的日期和时间。
用来进行时钟同步和测量时间。测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
1、Intermet的网络层含有4个重要的协议,分别为( )。
A. IP,ICMP,ARP,UDP B. TCP,ICMP,UDP,ARP C. IP,ICMP,ARP,RARP D. UDP,IP,ICMP,RARP
知识点:【TCP/IP协议栈】
答案:C 解析: TCP和UDP是传输层协议;IP、ICMP、ARP、RARP(逆地址解析协议)是网络层协议。
2、以下关于IP分组结构的描述中,错误的是( )。
A. IPv4分组头的长度是可变的 B. 协议字段表示IP的版本,值为4表示IPv4 C. 分组头长度字段以4B为单位,总长度字段以字节为单位 D. 生存时间字段值表示一个分组可以经过的最多的跳数
知识点:【IP数据报首部字段】
答案:B 解析: B:协议字段表示使用IP的上层协议,如值为6表示TCP,值为17表示UDP。版本字段表示IP的版本,值为4表示IPv4,值为6表示IPv6。
3、IPv4分组首部中有两个有关长度的字段:首部长度和总长度,其中( )。
A. 首部长度字段和总长度字段都以8bit为计数单位 B. 首部长度字段以8bit为计数单位,总长度字段以32bit为计数单位 C. 首部长度字段以32bit为计数单位,总长度字段以8bit为计数单位 D. 首部长度字段和总长度字段都以32bit为计数单位
知识点:【IP数据报首部关于长度的字段】
答案:C 解析: 首部中有三个关于长度的标记:首部长度、总长度和片偏移,基本单位分别为4B、1B和8B。IP分组的首部长度必须是4B的整数倍,取值范围是5~15(默认值是5)。由于IP分组的首部长度可变,因此首部长度字段必不可少。总长度字段给出IP分组的总长度,单位是字节,包括分组首部和数据部分的长度。数据部分的长度可以从总长度减去分组首部长度计算。
4、IP分组中的检验字段检查范围是( )。
A. 整个IP分组 B. 仅检查分组首部 C. 仅检查数据部分 D. 以上皆检查
知识点:【IP数据报首部检验字段】
答案:B 解析: 首部中有三个关于长度的标记:首部长度、总长度和片偏移,基本单位分别为4B、1B和8B。IP分组的首部长度必须是4B的整数倍,取值范围是5~15(默认值是5)。由于IP分组的首部长度可变,因此首部长度字段必不可少。总长度字段给出IP分组的总长度,单位是字节,包括分组首部和数据部分的长度。数据部分的长度可以从总长度减去分组首部长度计算。
5、如果IPv4的分组太大,会在传输中被分片,那么在( )将对分片后的数据报重组。
A. 中间路由器 B. 下一跳路由器 C. 核心路由器 D. 目的主机
知识点:【分组交换】、【IP数据报分片】
答案:D 解析: 数据报被分片后,每个分片都将独立地传输到目的端主机,期间有可能会经过不同的路径,而最后在目的端主机分组才能被重组。
6、路由器R0的路由表见下表,若进入路由器R0的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器 ( )。
目的网络下一跳地址132.0.0.0/8R1132.0.0.0/11R2132.19.232.0/22R30.0.0.0/0R4A. R1 B. R2 C. R3 D. R4
知识点:【分组交换】、【最长前缀匹配】
答案:B 解析: 目的地址二进制表示:132.00010011 11101101 00000101; A:132.19.237.5的前8位与132.0.0.0/8匹配。 B:132.19.237.5的前11位与132.19.0.0/11匹配。 C:132.19.232.0/22二进制:132.19.232.00000000,前22位与目的地址不匹配。 D:默认路由,只有当前面的所有目的网络都 不能和分组的目的IP地址匹配时才使用。 根据最长前缀匹配原则,B正确。
7、以下关于IP分组分片基本方法的描述中,错误的是 ( )。
A. IP分组长度大于MTU时,就必须对其进行分片 B. DF=1,分组的长度又超过MTU时,则丢弃该分组,不需要向源主机报告 C. 分片的MF值为1表示接收到的分片不是最后一个分片 D. 属于同一原始IP分组的分片具有相同的标识
知识点:【IP数据报首部标志字段】、【IP数据报分片】、【ICMP差错报告报文】
答案:B 解析: 如果分组长度超过MTU,那么当DF=1时,丢弃该分组,并且要用ICMP差错报文向源主机报告。
8、下列地址中,属于单播地址的是( )。
A. 172.31.128.255/18 B. 10.255.255.255 C. 192.168.24.59/30 D. 224.105.5.211
知识点:【分类的IP地址】
答案:A 解析: 10.255.255.255为A类地址,主机号全1,代表网络广播,为广播地址。192.168.24.59/30为CIDR地址,只有后面2位为主机号,而59用二进制表示为0011011,可知主机号全1,代表网络广播为广播地址。224.105.5.211为D类组播地址。
9、访问因特网的每台主机都需要分配IP地址(假定采用默认子网掩码),下列可以分配给主机的IP地址是( )。
A. 192.46.10.0 B. 110.47.10.0 C. 127.10.10.17 D. 211.60.256.21
知识点:【】
答案:B 解析: A:A是C类地址,掩码为255.255.255.0,由此得知A地址的主机号为全0(未使用CIDR),因此不能作为主机地址。 B:可以。B为A类地址,其网络号是110,主机号是47.10.0。(并不是所有最后几位全0的都是网络地址) C:C是为回环测试保留的地址。 D:D是语法错误的地址,不允许有256。
10、不考虑NAT,在Internet中,IP数据报从源结点到目的结点可能需要经过多个网络和路由器。在整个传输过程中,IP数据报头部中的( )。
A. 源地址和目的地址都不会发生变化 B. 源地址有可能发生变化而目的地址不会发生变化 C. 源地址不会发生变化而目的地址有可能发生变化 D. 源地址和目的地址都有可能发生变化
知识点:【】
答案:A 解析: