一、IP分片和重新组装

网络链路有MTU (最大传输长度) – 最大可能的链路级帧

不同的链路类型,不同的长度

在网络中,大IP 数据报被分割(“分段”)

一个数据报分成几个数据报

仅在最后目的地重新装配

IP首部比特用于标识、排序相关段

1、IP 数据报首部的固定部分中的各字段

 

生存时间——8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。

协议——8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程

首部检验和——16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。

源地址和目的地址都各占 32 位。

注:数据报每经过一个路由器,路由器都要重新计算一下首部检验和

2IP 协议支持多种协议,IP 数据报可以封装多种协议 PDU

3IP 数据报首部的可变部分

IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。

长度可变:从 1 个字节到 40 个字节不等,取决于所选择的项目。

增加了 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的,增加了每一个路由器处理数据报的开销。

实际上这些选项很少被使用。

二、IP 层转发分组的过程

1、  基于终点的转发

分组在互联网中是逐跳转发的。

基于终点的转发:基于分组首部中的目的地址传送和转发。

为了压缩转发表的大小,转发表中最主要的路由是(目的网络地址,下一跳地址) ,而不是(目的地址,下一跳地址)。查找转发表的过程就是逐行寻找前缀匹配。

2、 最长前缀匹配

使用 CIDR 时,在查找转发表时可能会得到不止一个匹配结果。

最长前缀匹配 (longest-prefix matching) 原则:选择前缀最长的一个作为匹配的前缀。

网络前缀越长,其地址块就越小,因而路由就越具体。

把前缀最长的排在转发表的第 1 行。

3、转发表中的 2 种特殊的路由

 

4、路由器分组转发算法

 

5、使用二叉线索查找转发表

二叉线索 (binary trie):一种特殊结构的树,可以快速在转发表中找到匹配的叶节点。

从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于 IP 地址中的一位。

为简化二叉线索的结构,可以用唯一前缀 (unique prefix) 来构造二叉线索。

为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

三、 网际控制报文协议 ICMP

1ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。

2ICMP 是互联网的标准协议。

3 ICMP 不是高层协议,而是 IP 层的协议。

4ICMP 报文的种类

 

5、不应发送 ICMP 差错报告报文的几种情况

ICMP 差错报告报文不再发送 ICMP 差错报告报文。

对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。

对具有多播地址的数据报都不发送 ICMP 差错报告报文。

对具有特殊地址(如127.0.0.0 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

6ICMP 询问报文

(1) 回送请求和回答

由主机或路由器向一个特定的目的主机发出的询问。

收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。

这种询问报文用来测试目的站是否可达,以及了解其有关状态。

(2) 时间戳请求和回答:

请某台主机或路由器回答当前的日期和时间。

时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 1 1 日起到当前时刻一共有多少秒。

时间戳请求与回答可用于时钟同步和时间测量。

7ICMP 的应用举例

1PING (Packet InterNet Groper)

用来测试两个主机之间的连通性。

使用了 ICMP 回送请求与回送回答报文。

是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP UDP

2Traceroute

这是UNIX操作系统中名字。在 Windows 操作系统中这个命令是 tracert

用来跟踪一个分组从源点到终点的路径。

它利用 IP 数据报中的 TTL 字段、ICMP 时间超过差错报告报文和ICMP 终点不可达差错报告报文实现对从源点到终点的路径的跟踪。

posted on 2022-04-15 21:36  辰逸1  阅读(234)  评论(0编辑  收藏  举报