计算机网络 第五章 网络层 晓风の个人博客

概述:

  • 每个数据链路层只涉及一个直连网,而网络层协议涉及整个网络
  • 网络层协议负责确定把收到的包从哪条路径转发(forwarding)出去,即路由选择(routing)功能。具体传送有数据链路层和物理层负责。

交换技术:

电路交换(Circuit Switching):

通过在网络中连接多条物理电路形成一条通路后传送数据

每条物理电路可以是一条链路(link)或者一条链路通过FDM或TDM形成的通道(Channel)。

包交换(Paceet Switching):

采用统计多路复用的方法通过网络传送数据包,有虚电路(Virtual Circuit)和数据报(Datagram)两种方式。

采用虚电路方式需要先建立连接然后才可以传送数据。

采用数据报方式不需要建立连接便可以发送数据包。交换机根据数据包的目的地址转发包。

因特网采用数据报交换技术。

虚电路包括:

  1. 交换式虚电路(Switched Virtual Circuit)
  2. 永久虚电路(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
1234
1132
2131

交换机S2的虚电路表:

输入接口输入VCI输出接口输出VCI
1422
1231
1132

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即为最后一个片段

 idenoffsetMF
片段01003401
片段110034971
片段2100341941
片段3100342910

例3:

如果上题的第二个片段在后面的一个路由器上要转发到MTU=300的物理网络上,要继续划分片段,填写这些片段的 iden、offset、MF:

解析:要转发的第二个片段为97~194的片段,(300-20)/8=35,每个片段偏移量为35,所以:

 idenoffsetMF
片段110034971
片段2100341321
片段3100341671

问题:如果不带选项的IP数据报被分段, 这些片段头部的哪些字段可能与原数据报头部字段的内容不一样?

A.header checksum B.MF C.offset D.TTL E.total length F.Identification G.destination address H.protocol 答案:ABCE

IP数据报的选项:

一般格式为:图片描述

图片描述

记录路由选项:

图片描述

指针字段指向下一个IP地址的位置: 4()840()

该数据报经过的每个路由器记录转出接口的IP地址,直到记满9个地址。

例:IP的记录路由选项中如果指针为16,表示记录了多少个IP地址?

答案:3个,指针为4时0个,为8时1个,为12时2个,为16时3个

可以使用 ping -r 命令,记录计数跃点的路由,count有效范围从1到9.

图片描述

使用ping /?命令可查询相关命令字符含义。 图片描述

IP数据报的选项