2022.08.15
版本(1字节):IPv4是4
首部长度(1字节)
区分服务
总长度(4字节)
标识(16bits)
它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为IP是无连接服务)。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。
标志(3bits):[保留, DF, MF]
妙计——🍨巴旦木:B(保留),D(DF),M(MF)
片偏移(13bits):
生存时间TTL(8bits):跳数,转发一次减一个一。TTL=0时丢弃。
协议(8bits)
所有IP协议号总结:
首部校验和(16bits):只验证首部
源IP地址(32bits)
目的IP地址(32bits)
例题:一个IPv4分组到达一个结点时,其首部信息(以十六进制表示)为:0x4500 0054 0003 5850 2006 FFF0 7C4E 0302 B40E 0F02
。请回答:
1)分组的源IP地址和目的IP地址各是什么(点分十进制表示法)?
【答案】
第一行-"版首区总":版本(1B)+首部长度(1B)+区分服务(2B)+总长度(4B)
第二行-分片相关:标识(4B)+标志(3bits)+片偏移(剩余部分)
第三行:生存时间(2B)+协议(2B)+首部校验和(4B)
第四行:源IP地址
第五行:目的IP地址
2)该分组数据部分的长度是多少?
【答案】
0x4[5]00 [0054] 0003 5850 2006 FFF0 7C4E 0302 B40E 0F02
注意这里,54并不是真正的54😭,0x54->5*16+4-5*4(首4)=64B
3)该分组是否已经分片?如果有分片,那么偏移量是多少?
【答案】不能分片
案例:4000B(20B+3980B)的IP数据报,要发送到MTU=1500B的链路上:
原:
[20+3980]{标识:777, MF=0, DF=0},将3980分成1480+1480+1020
分片后:
[20+1480]{标识:777, MF=1, DF=0, 片偏移=0}
[20+1480]{标识:777, MF=1, DF=0, 片偏移=185}, 1480/8=185
[20+1020]{标识:777, MF=0, DF=0, 片偏移=370}
【2018】假设主机192.168.1.1向主机192.168.1.208发送一个总长度为1500B的IP分组,IP分组的头部长度为20B,路由器在通过接口F1转发该IP分组时进行了分片。若分片时尽可能分为最大片,则一个最大IP分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?
注意!!!!!!分片数据部分需要是8字节的整数倍
封装数据的最大字节数776字节,分成两个片,片偏移是0和97
下列对P分组的分片和重组的描述中,正确的是(B)。
A.IP分组可以被源主机分片,并在中间路由器进行重组
B.IP分组可以被路径中的路由器分片,并在目的主机进行重组
C.IP分组可以被路径中的路由器分片,并在中间路由器上进行重组
D.IP分组可以被路径中的路由器分片,并在最后一跳的路由器上进行重组
如果到达的分组的片偏移值为100,分组首部中的首部长度字段值为5,总长度字段值为100,那么数据部分第一个字节的编号是多少?能够确定数据部分最后一个字节的编号吗?
答案:800和879!编号是从零开始的😭
A,B,C类的网络号分别为1,2,3字节!(包括前边的“0”,“10”,“110”)
A:1-126
B:128-191
C:192-223
D:240-255
含义 | 网络号 | 主机号 | 作为源地址 | 作为目的地址 |
---|---|---|---|---|
网络号 | ||||
本网络 | 全0 | x | ||
某网络 | 特定值 | |||
还回测试 | 127 | |||
整个网络 | 全1 | x | ||
主机号 | ||||
网络地址/本主机 | 全0 | |||
网络内主机地址 | 特定值 | |||
网络内所有主机 | 全1 | |||
组合 | ||||
i. 本网络本主机 (DHCP,主机没接入网络, 主机号全0) ii. 路由表中表示默认路由 (整个Internet网络) | 全0 | 全0 | √ | x |
本网络的特定主机 | 全0 | 特定值 | √ | x |
本网络内广播 | 全0 | 全1 | x | x |
某网络 | 特定值 | 全0 | x | √ |
某网络某主机 | 特定值 | 特定值 | √ | √ |
某网络内广播 | 特定值 | 全1 | x | √ |
全1 | 全0 | x | ||
全1 | 特定值 | x | ||
受限广播地址, 整个TCP/IP内广播 但因为路由器不转发, 所以等同于本网络广播 | 全1 | 全1 | x |
参考链接:
例题:一台主机有两个IP地址,一个地址是192.168.11.25,另一个地址可能是()。
A.192.168.11.0
B.192.168.11.26
C.192.168.13.25
D.192.168.11.24
如果一台主机有两个或两个以上的IP地址,那么说明这台主机属于两个或两个以上的逻辑网络。值得注意的是,在同一时刻一个合法的IP地址只能分配给一台主机,否则就会引起P地址突。IP地址192.168.11.25属于C类IP地址,所以A、B、D同属于一个逻辑网络,只有C的网络号不同,表明它在不同的逻辑网络。
访问因特网的每台主机都需要分配IP地址(假定采用默认子网掩码),下列可以分配给主机的IP地址是()。
A.192.46.10.0
B.110.47.10.0
C.127.10.10.17
D.211.60.256.21
A是C类地址,掩码为255.255.255.0,由此得知A地址的主机号为全0(未使用CIDR),因此不能作为主机地址。C是为回环测试保留的地址。D是语法错误的地址,不允许有256。B为A类地址,其网络号是110,主机号是47.10.0。
WAN端 | LAN端 |
---|---|
138.76.29.7:5001 | 192.168.0.2:2233 |
138.76.29.7:5060 | 192.168.0.3:1234 |
.. | .. |
三类私有IP地址, 专用互联网/本地互联网
假定一个NAT路由器的公网地址为205.56.79.35,并且有如下表项:
转换端口 | 源IP地址 | 源端口 |
---|---|---|
2056 | 192.168.32.56 | 21 |
2057 | 192.168.32.56 | 20 |
1892 | 192.168.46.26 | 80 |
2256 | 192.168.55.106 | 80 |
它收到一个源IP地址为192.168.32.56、源端口为80的分组,其动作是()。
A.转换地址,将源IP变为205.56.79.35,端口变为2056,然后发送到公网
B.添加一个新的条目,转换P地址及端口然后发送到公网
C.不转发,丢弃该分组
D.直接将分组转发到公网
【答案:C】NAT的表项需要管理员添加,这样才能控制一个内网到外网的网络连接。题目中主机发送的分组在NAT表项中找不到(端口80从源端口而非转换端口找),所以服务器不转发该分组。
【2020】 (9分)某校园网有两个局域网,通过路由器R1、R2和R3互联后接入Internet,S1和S2为以太网交换机。局域网采用静态IP地址配置,路由器部分接口以及各主机的IP地址如下图所示。
若H2主动访问Web服务器时,将HTTP请求报文封装到IP数据报P中发送,则H2发送P的源IP地址和目的IP地址分别是什么?经过R3转发后,IP的源IP地址和目的IP地址分别是什么?经过R2转发后,IP的源IP地址和目的IP地址分别是什么?
192.168.1.2
203.10.2.6
203.10.2.6
注意⚠️!第三问答案并没有改变源IP!
我的理解:NAT就是里边可以看见外边,外边看不见里边,从而达到隐藏身份
IP地址={网络号,子网号,主机号}
IP地址和子网掩码与运算得到网络号
【2019统考真题】若将101.200.16.0/20划分为5个子网,则可能的最小子网的可分配IP地址数是()。
A.126
B.254
C.510
D.1022
【2016统考真题】如下图所示,假设H1与H2的默认网关和子网掩码均分别配置为192.168.3.1和255.255.255.128,H3和H4的默认网关和子网掩码均分别配置为192.168.3.254和255.255.255.128,则下列现象中可能发生的是()。
A.H1不能与H2进行正常IP通信
B.H2与H4均不能访问Internet
C.H1不能与H3进行正常IP通信
D.H3不能与H4进行正常IP通信
答案:C。因为子网掩码都是255.255.255.128,所以主机号是最后7位。可以看到H2的ip是192.168.3.3,和H4的ip是192.168.3.252,不属于一个子网。H2、H1与H3、H4通过交换机连接,交换机不能连通不同子网。
【2016统考真题】在题35图(上一题)中,假设连接R1、R2和R3之间的点对点链路使用地址201.1.3.x/30,当H3访问Web服务器S时,R2转发出去的封装HTTP请求报文的IP分组是源IP地址和目的IP地址,它们分别是()。
A.192.168.3.251,130.18.10.1
B.192.168.3.251,201.1.3.9
C.201.1.3.8,130.18.10.1
D.201.1.3.10,130.18.10.1
答案:D。因为R1、R2和R3之间的点对点链路使用地址201.1.3.x/30,主机号为后两位。R1下边写了一个“201.31.3.9”,可以得到子网号,201.31.3.8/30,对应的主机号只有,201.31.3.9/30,201.31.3.10/30两个。
现有一公司需要创建内部网络,该公司包括工程技术部、市场部、财务部和办公室4个部门,每个部门有20~30台计算机。试问:
1)若要将几个部门从网络上分开,如果分配给该公司使用的地址为一个C类地址,网络地址为192.168.161.0,那么如何划分网络?可以将几个部门分开?
2)确定各部门的网络地址和子网掩码,并写出分配给每个部门网络中的主机IP地址范围。
答案:注意,子网号和主机号不能全0全1
序号 | 网络 |
---|---|
0 | 192.168.161.32 |
1 | 192.168.161.64 |
2 | 192.168.161.96 |
3 | 192.168.161.128 |
【2009】47. (9分)某网络拓扑如下图所示,路由器R1通过接口E1、E2分别连接局域网1、局域网2,通过接口L0连接路由器R2,并通过路由器R2连接域名服务器与互联网。R1的L0接口的IP地址是202.118.2.1,R2的L0接口的IP地址是202.118.2.2,L1接口的IP地址是130.11.120.1,E0接口的IP地址是202.118.3.1,域名服务器的IP地址是202.118.3.2。
R1和R2的路由表结构为
1)将IP地址空间202.118.1.0/24划分为2个子网分别分配给局域网1、局域网2,每个局域网需分配的IP地址数不少于120个。请给出子网划分结果,说明理由或给出必要的计算过程。
【答案】:120+2=122->2^7, 202.118.1.0/25, 202.118.1.128/25
2)请给出R1的路由表,使其明确包括到局域网1的路由、局域网2的路由、域名服务器的主机路由和互联网的路由。
【答案】
目的网络IP | 子网掩码 | 下一跳IP地址 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.128 | - | E1 |
202.118.1.128 | 255.255.255.128 | - | E2 |
202.118.3.2 | 255.255.255.255 | 202.118.2.2 | L0 |
0.0.0.0 | 0.0.0.0 | 202.118.2.2 | L0 |
注意⚠️:最后一行是默认路由!!
3)请采用路由聚合技术,给出R2到局域网1和局域网2的路由。
【答案】
目的网络IP | 子网掩码 | 下一跳IP地址 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.128 | 202.118.2.1 | L0 |
【2018统考真题】某公司的网络如下图所示。IP地址空间192.168.1.0/24均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了IP地址,销售部子网的MTU=1500B,技术部子网的MTU=800B。
回答下列问题:
销售部子网的广播地址是什么?技术部子网的子网地址是什么?若每台主机仅分配一个IP地址,则技术部子网还可以连接多少台主机?
【答案】
IP地址={网络前缀,主机号}
斜线记法:128.14.32.5/20,代表前边20位是网络号。
网络前缀相同的连续IP地址组成“CIDR地址块”,一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合/构成超网。
CIDR查找路由表的方法:为了更加有效地查找最长前缀匹配,通常将无分类编址的路由表存放在一种层次式数据结构中,然后自上而下地按层次进行查找。这里最常用的数据结构就是二叉线索。
转发表包含:{目的网络,下一条地址}
采用CIDR编址时,如果一个分组在转发表中可以找到多个匹配的前缀,那么应当选择前缀最长的一个作为匹配的前缀,称为最长前缀匹配。网络前缀越长,其地址块就越小,因而路由就越精准。为了更快地查找转发表,可以按照前缀的长短,将前缀最长的排在第1行,按前缀长度的降序排列。这样,从第1行最长的开始查找,只要检索到匹配的,就不必再继续查找。
两种特殊的路由:
1)主机路由:对特定目的主机的IP地址专门指明一个路由,以方便网络管理员控制和测试网络。若特定主机的IP地址是a.b.c.d,则转发表中对应项的目的网络是a.b.c.d/32。/32表示的子网掩码没有意义,但这个特殊的前缀可以用在转发表中。
2)默认路由:用特殊前缀0.0.0.0/0表示默认路由,全0掩码和任何目的地址进行按位与运算,结果必然为全0,即必然和转发表中的0.0.0.0/0相匹配。只要目的网络是其他网络(不在转发表中),就一律选择默认路由。
路由器执行的分组转发算法如下:
【最长前最匹配例题】路由器R0的路由表见下表。若进入路由器R0的分组的目的地址为132.19.237.5,该分组应该被转发到( )下一条路由器。
目的网络 | 下一跳 |
---|---|
132.0.0.0/8 | R1 |
132.19.0.0/11 | R2 |
132.10.232.0/22 | R3 |
0.0.0.0/0 | R4 |
【答案】R2
ARP | DHCP | ICMP | |
---|---|---|---|
层 | 网络层 | 应用层 | 网络层 |
封装于 | 以太网帧 | UDP | IP |
Address Resolution Protocol
过程:无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议(Address ResolutionProtocol,.ARP)。每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP来动态维护此ARP表。
ARP工作在网络层,其工作原理如下:主机A欲向本局域网上的某台主机B发送IP数据报时,先在其ARP高速缓存中查看有无主机B的IP地址。
主机B收到该ARP请求后,向主机A发出ARP响应分组(单播发送),分组中包含主机B的IP与MAC地址的映射关系,主机A收到ARP响应分组后就将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。
ARP由于“看到了”IP地址,所以它工作在网络层
NAT路由器由于“看到了”端口,所以它工作在传输层。
注意:ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
【例题】下列情况需要启动 ARP 请求的是()。 A. 主机需要接收信息,但ARP表中没有源IP地址与MAC 地址的映射关系 B. 主机需要接收信息,但ARP表中已有源IP地址与 MAC 地址的映射关系 C. 主机需要发送信息,但ARP表中没有目的IP地址与 MAC 地址的映射关系 D. 主要需要发送信息,但ARP表中已有目的IP地址与 MAC 地址的映射关系
【答案】:C
【例题】ARP 的工作过程中,ARP请求是()发送,ARP 响应是()发送。 A.单播 B.组播 C.广播
【答案】:C、A
【例题】主机发送IP 数据报给主机 B,途中经过了5个路由器。请问在此过程中总共使用了()次ARP. A. 5 B. 6 C. 10 D. 11
【答案】:主机先使用 ARP 来查询本网络路由器的地址,然后每个路由器使用 ARP 来寻找下一跳路由的地址,总共使用了 4 次ARP从主机A网络的路由器到达主机 B 网络的路由器。然后,主机B网络的路由器使用 ARP 找到主机 B,所以总共使用了 1+4+1=6次 ARP.-> B
DHCP服务器和DHCP客户端的交换过程如下:
报文 | 源IP | 目的IP | client ip | your client ip | next server ip | relay agent ip |
---|---|---|---|---|---|---|
DHCP发现 | 0.0.0.0 | 255.255.255.255 | - | - | - | - |
DHCP提供 | 服务器IP | 255.255.255.255 | - | 分配的IP | 服务器IP | - |
DHCP请求 | 0.0.0.0 | 255.255.255.255 | - | - | - | - |
DHCP确认 | 服务器IP | 255.255.255.255 | - | 分配的IP | 服务器IP | - |
请回答下列问题。
1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是什么?主机2使用DHCP协议获取IP地址的过程中,发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是什么?
【答案】
2)若主机2的ARP表为空,则该主机访问Internet时,发出的第一个以太网帧的目的MAC地址是什么?封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是什么?
【答案】
FF:FF:FF:FF:FF:FF
00:a1:a1:a1:a1:a1
3)若主机1的子网掩码和默认网关分别配置为255.255.255.0和111.123.15.2,则该主机是否能访问WWW服务器?是否能访问Internet?请说明理由。
【答案】
可以访问WWW服务器,不可以访问Internet
主机1能访问WWW服务器,但不能访问Internet。由于主机1的子网掩码配置正确而默认网关IP地址被错误地配置为111.123.15.2(正确IP地址是111.123.15.1),所以主机1可以访问在同一个子网内的WWW服务器,但当主机1访问Internet时,主机1发出的IP分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。
简介:为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP)来让主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP是IP层协议。
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:
不应发送ICMP差错报告报文的几种情况如下:
ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文,最常用的是前两类。
ICMP的两个常见应用是分组网间探测PING(用来测试两台主机之间的连通性)和Traceroute(UNIX中的名字,在Windows中是Tracert,可以用来跟踪分组经过的路由)。其中PING使用了ICMP回送请求和回答报文, Traceroute(Tracert)使用了ICMP时间超过报文。注意:PING工作在应用层,它直接使用网络层的ICMP, 而未使用传输层的TCP或UDP。Traceroute/Tracert工作在网络层。