如果这篇博客帮助到你,可以请我喝一杯咖啡~
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 /?命令可查询相关命令字符含义。