夜光:计算机网络笔记(二十六)

夜光序言:

 

彼此凝望的眼眸中,是一眼万年的柔情脉脉,缠绵情意似风柔。

 

与风景无关,与浪漫有染。

 

 

 

正文:

 

数据报分片

 

井不是所有的链路层协议都能承载相同长度的网络层分组。有的协议能承载大分组,而有的协议只能承载小分组。例如,以太网帧可承载不超过 1500 字节的数据,而某些广域网链路的帧可承载不超过 576 字节的数据。

 


一个链路层帧能承载的最大数据量叫做最大传输单元 MTU。

 

假设有一个互连几条链路的路由器,且每条链路运行具有不同 MTU 的链路层协议。假 定你从某条链路收到一个 IP 数据报,通过检查转发表决定出链路,但该出链路的 MTU 比该IP 数据报的长度小。

 


 

如何将这个过大的 IP 数据报封装成链路层帧呢?

 

解决该问题的方法是将 IP 数据报中的数据分片成两个或更多个较小的数据报,用单独 的链路层帧封装这些较小的 IP 数据报,然后向输出链路上发送这些帧。这些较小的数据报叫做分片。

 


 

在其到达目的地传输层以前需要被重新组装。数据报的重新组装工作在端系统中,而不 是在途径的路由器中。

 

因此,一个具有长度较大的数据报流经具有较小 MTU 的链路时需要分片,分片的重组 中在目的端系统中进行。

 

例子,一个 4000 字节的数据报(20 字节 IP 首部加上 3980 字节 IP 有效载荷)到达一台路 由器,被转发到一条 MTU 1500 字节的链路上。这就意味着初始数据报中的 3980 字节数据必须被分成 3 个独立的片(每个片也是一个 IP 数据报)。假定初始数据报附加上的标识号为 777。三个片的特点如表所示。

 


 

 

除了最后一片外所有初始有效载荷数据的数量应当是 8 字节的倍数,并且偏移值应当被 规定以 8 字节块为单位(片偏移的表示范围比数据报长度字段小了 8 倍,所以以 8 字节为单位)

 

分片是有开销的。首先,它使路由器和端系统更为复杂,即必须将数据报分成适当大小的片并且需要重新组装。其次,分片可能引发致命的 DoS 攻击,例如 Jolt 攻击就是一个典型的例子,其中攻击者向目标主机发送小片的流,这些片的偏移标志都不是 0 当目标主机试图

根据这些不正确分组重建数据报时,就可能会崩溃。

 

 


2 IP 编址

 

主机与物理链路之间的边界叫做接口。路由器与它的任意一条链路之间的边界也叫做接 口。

 

因为路由器的任务是在不同的网络间转发数据报,所以一台路由器有多个接口,每个接口有一条链路

 

IP 要求每台主机和路由器接口都拥有自己的 IP 地址。因此,一个 IP 地址在技术上是与一个接口相关联的,而不是与拥有该接口的主机或路由器相关联的。


 

每个 IP 地址长度为 32 比特(等于 4 字节),因此总共有 232个可能的 IP 地址。这些地址 一般按点分十进制记法的方式书写,即地址中的每个字节用十进制形式书写,各字节间以 句号()隔开。

 


在因特网中,每台主机和路由器上的每个接口都必须有一个全球唯一的 IP 地址。

一个接口的 IP 地址由其连接的子网来决定。

下图给出了一个 IP 编址与接口的例子。在该图中,一台路由器(3 个接口)用于互连 7 台主机。

 

 

 

图中左上侧部分的 3 台主机以及它们连接的路由器接口都有一个形如 223.1.1.x/24 IP 地址。这就是说,在它们的 IP 地址中,最左侧的 24 比特是相同的。用 IP 的术语来说,互连这 3 台主机的接口与路由器的一个接口的网络形成一个子网。

 

IP 编址为这个子网分配一个地址,其中的/24 记法有时称为子网掩码,它表明 32 比特中的最左侧 24 位特定义了子网地址。因此子网 223.1.1.1/24 是由 3 台主机接口和 1 个路由器接口(223.1.1.4)组成的。

 


一个子网的 IP 定义并不局限干连接多台主机到一台路由器接口的以太网段。路由器端口之间的点对点链路也可以构成子网。

 

对于一般由路由器和主机组成的互连系统,可以使用下列方法定义系统中的子网:

 

物理上相连,包括通过交换机相连或者点对点链路相连;

子网地址相同,也就是 IP 地址中表示子网的地址相同。

因特网的地址分配策略被称为无类别域间选路 CIDR

对于子网寻址 a.b.c.d/x,32 比特的 IP 地址被划分为两部分,其中 x 指示了在地址的第一部分中的比特数。地址的高位 x 比特构成了 IP 地址的网络部分,并且经常被称为该地址的前缀 (或网络前缀)

 


一个单位通常被分配一块连续的地址,即具有相同前缀的一段地址。当单位外部的路由器转发一个数据报,且该数据报的目的地址在单位内部时,仅需要考虑该地址前面的 x 比特。


 

这大大减少了这些路由器中的转发表的长度,因为形式为 a.b.c.d/x 单一项足以将数据报转发到单位内的任何目的地。

 

一个地址的剩余 32-x 比特可认为是用于区分单位(子网)内部主机的,这个子网所有设备具有相同的网络前缀。

 

在采用 CIDR 之前,IP 地址的网络部分被限制长度为 816 24 比特,因为具有 816 或 24 比特子网地址的网络分别被称为 AB C 类网络,所以这种编址方案称为分类编址。

 


一个 C 类(/24 )子网仅能容纳多达 256-2=254 台主机(其中的主机部分全 0 地址用于表示子网,全 1 地址用于广播),这对于许多单位来说太小了。然而,一个 B (/16)子网可支持多达 65 534 台主机,又太大了。在分类编址方法下,导致了 B 类地址空间的迅速损耗以及所分配地址空间的低利用率。

 


另一种类型的地址,即广播地址 255.255.255.255。当一台主机发出一个目的地址为 255

255 .255 .255 的数据报时,该报文会被交付给同一个子网中的所有主机。

主机或子网最初是如何得到其 IP 地址的。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值