CC BY 4.0 (除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~
概述:
- 每个数据链路层只涉及一个直连网,而网络层协议涉及整个网络
- 网络层协议负责确定把收到的包从哪条路径转发(forwarding)出去,即路由选择(routing)功能。具体传送有数据链路层和物理层负责。
交换技术:
电路交换(Circuit Switching):
通过在网络中连接多条物理电路形成一条通路后传送数据
每条物理电路可以是一条链路(link)或者一条链路通过 FDM 或 TDM 形成的通道(Channel)。
包交换(Paceet Switching):
采用统计多路复用的方法通过网络传送数据包,有虚电路(Virtual Circuit)和数据报(Datagram)两种方式。
采用虚电路方式需要先建立连接然后才可以传送数据。
采用数据报方式不需要建立连接便可以发送数据包。交换机根据数据包的目的地址转发包。
因特网采用数据报交换技术。
虚电路包括:
- 交换式虚电路(Switched Virtual Circuit)
- 永久虚电路(Permanent Virtual Circuit)
- 交换式虚电路每次传送数据前都要建立连接,传送数据后要释放连接
- 永久虚电路由管理员建好后一直保持着,随时可以传送数据
例子:
以下哪种交换技术采用包交换技术且在传送数据之前需要建立连接? A.电路交换 B.数据报 C.永久虚电路 D.交换式虚电路
答案:D
问题:
下图存在 3 条虚电路(red,green,blue) ,它们都是从 A 或者 B 出发的虚电路,请填写它们的虚电路表(虚电路填写次序: red,green,blue)。
- 接口编号用黑色字表示. VCI - Virtual Circuits Identifier</span>
交换机 S1 的虚电路表:
输入接口 | 输入VCI | 输出接口 | 输出VCI |
1 | 2 | 3 | 4 |
1 | 1 | 3 | 2 |
2 | 1 | 3 | 1 |
交换机 S2 的虚电路表:
输入接口 | 输入VCI | 输出接口 | 输出VCI |
1 | 4 | 2 | 2 |
1 | 2 | 3 | 1 |
1 | 1 | 3 | 2 |
IP 协议的服务模型:
- IP(Internet Protocol)协议是因特网的网络层协议
- IP 协议是可路由的(routable)–全局地址,按层分配
- IP 协议提供尽力服务(best effort),即无连接无确认的数据报服务
- IP 协议可以运行在任何网络上
问题:
下面哪些关于 IP 协议的说法是正确的? A.IP 协议是因特网的网络层协议. B.IP 协议可以提供可靠服务. C.IP 协议可以提供一种数据报服务. D.IP 协议是可路由的(routable). E.IP 协议可以用于连接任何物理网络. F.IP 协议具有拥塞控制机制. 答案:ACDE
IP 数据报格式:
IP 数据报的字段说明:
问题:
如果一个 IP 数据报的协议字段的值为 17, 目的主机应该把该数据报交给哪个上层协 议? A.TCP B.UDP C.ICMP D.IGMP 答案:B
IP 数据报的服务类型:
从整体上说明数据报所需的服务,即区分服务(Differeniated Services)。
IP 数据报的生存期:
- 生存期(Time-To-Live,TTL):用于限制其在因特网上的停留时间,实际限制为经过的路由器数,即跳数(hop count)
- TTL 的初值需要设置为网络直径的两倍
- 当收到 IP 数据报时,路由器或主机会把它的 TTL 减 1.如果减到 0 时还未到达目的地,则该数据报将被丢弃,路由器会发送一个 ICMP 包告知源主机。
问题:
下面哪些关于 IP 数据报的 TTL 字段的说法是正确的? A.每经过一个路由器 TTL 减 1. B.TTL 的最大值为 128. C.TTL 是数据报经过的跳数. D.TTL 限制了因特网的直径. E.TTL 记录数据报在网上存在的时间. F.TTL 防止数据报长时间滞留在因特网上. 答案:ADF
IP 数据报的分段和重组:
- 一个物理网络的最大传输单元(MTU)是该网络可以运载的最大有效载荷,即数据帧的数据部分的最大长度
- 如果一个数据报的大小大于要承载它的网络的 MTU,路由器需要先对该数据报进行分段(fragment)
- 源主机每次发送 IP 数据报时都会把标识(Identification)字段加 1.分段时用标识的值保持不变,并且用偏移量字段(offset)指出该片段的数据部分相对原来数据报的偏移量(以 8 字节为单位)
- 当目的主机收到该数据报的所有片段时,它会重组为原来的数据报
- 当第一个片段到达目的主机时,目的主机会启动一个重组定时器(默认超时值为 15 秒)。如果该定时器到期时没有收集到所有片段,目的主机会放弃本次重组并丢弃该数据报的所有片段
- DF(Don’t Fragment)为 1 表示不允许分段,MF(More Fragment)为 1 标识后面还有片段
每一种物理网络都会规定链路层数据帧的最大长度,称为链路层 MTU(Maximum Transmission Unit).IP 协议在传输数据包时,若 IP 数据报加上数据帧头部后长度大于 MTU,则将数据报文分为若干分片进行传输,并在目标系统中进行重组。比如说,在以太网环境中可传输最大 IP 报文大小(MTU)为 1500 字节。如果要传输的数据帧大小超过 1500 字节,即 IP 数据报长度大于 1472(1500-20-8=1472,普通数据报)字节,则需要分片之后进行传输。
在网络层,因为 IP 包的首部要占用 20 字节,所以这的 MTU 为 1500-20 = 1480; 在传输层,对于 UDP 包的首部要占用 8 字节,所以这的 MTU 为 1480-8 = 1472;
例 1:
数据大小为 1400B,MTU 最大传输单元为 532,ip 包的首部占用 20 字节,532-20=512,因为以 8 字节为单位,:
第一个片段:OFFSET=0,MF=1;
第二个片段:OFFSET=64,MF=1;
第三个片段:OFFSET=128,MF=0.
例 2:
一个没有选项的 IP 数据报的总长度为 3000 字节,标识(iden)是 10034,DF=0,OFFSET=0,要转发到 MTU 为 800 的一个物理网络上。如果前面的片段尽量大,如何划分片段?填写这些片段的 iden、offset、MF:
解析:(800-20)/8=97,每个片段最大偏移量为 97
3000/8=375 375-291>97,所以片段 3 即为最后一个片段
iden | offset | MF | |
片段0 | 10034 | 0 | 1 |
片段1 | 10034 | 97 | 1 |
片段2 | 10034 | 194 | 1 |
片段3 | 10034 | 291 | 0 |
例 3:
如果上题的第二个片段在后面的一个路由器上要转发到 MTU=300 的物理网络上,要继续划分片段,填写这些片段的 iden、offset、MF:
解析:要转发的第二个片段为 97~194 的片段,(300-20)/8=35,每个片段偏移量为 35,所以:
iden | offset | MF | |
片段1 | 10034 | 97 | 1 |
片段2 | 10034 | 132 | 1 |
片段3 | 10034 | 167 | 1 |
问题:如果不带选项的 IP 数据报被分段, 这些片段头部的哪些字段可能与原数据报头部字段的内容不一样?
A.header checksum B.MF C.offset D.TTL E.total length F.Identification G.destination address H.protocol 答案:ABCE
IP 数据报的选项:
一般格式为:
记录路由选项:
指针字段指向下一个IP地址的位置: 4(空), 8, … , 40(满)。
该数据报经过的每个路由器记录转出接口的IP地址,直到记满9个地址。
例:IP 的记录路由选项中如果指针为 16,表示记录了多少个 IP 地址?
答案:3 个,指针为 4 时 0 个,为 8 时 1 个,为 12 时 2 个,为 16 时 3 个
可以使用 ping -r 命令,记录计数跃点的路由,count 有效范围从 1 到 9.
使用 ping /?命令可查询相关命令字符含义。