Internet Protocol Internet协议( 二 )


2.3. 功能描述
IP的功能就是把数据报在互联的网络上传送,通过将数据报在一个个IP模块间传送直到目的模块来达到目的 。网络中每个主机和网关上都有IP模块 。数据报在一个个模块间通过路由处理网络地址传送到目的地址 。因此网络地址对于IP协议十分重要 。如前所述,因为各个网络上的数据报大小可能不同,因此有必要对大的数据报进行分段 。
寻址
名字,地址和路由是有区别的,名字是我们要找的,地址指出这个名字在什么地方,路由解决如何到那里的问题 。IP主要处理地址的问题 。把名字和地址进行映射的工作由上层协议完成 。IP模块将地址和本地网络地址加以映射,而将本地网络地址和路由进行映射则是低层协议的任务 。
地址是32位长,由网络号和本地地址两部分构成 。地址有三类:A类的最高位为0,后7位表示网络号,其它的24位表示本地地址;B类前两位为10,后14位表示网络地址,其它16位表示本地地址;C类三位为110,后21位是网络号,其它8位代表本地地址 。
在将网络地址和本地网络地址进行映射时必须注重,有些主机可能使用几个不同的IP地址(我们可以把本地网络地址理解为MAC地址) 。我们必须能够处理一台主机有几个处理端口,而每个端口都有几个逻辑的IP地址 。
分段
对于不同的网络,其中传送的包大小可能不一样,因此把大包分小的功能是必须的 。数据报也可以被标记为“不可分段”,假如一个数据报被如何标记了,那么在任何情况下都不准对它进行分段 。假如不分段到不了目的地,那就把包在半路抛弃了 。在本地网内进行的重新分段和重组对IP模块是不可见的,这种方法也可以使用 。
本地网分段和重组把重组的各段加上标记,接收方使用这些标记使不同的段区别开来 。段偏移量域告诉接收方应该把这一段放在什么地方,多段标记指示最后一个段,利用不同的域完全可以重组一个数据报 。标记域是用于唯一标记数据报的,它是最初的发送方设置,而且要保证数据报在网络传输的全过程中它中唯一的 。最初的发送方把多段标记设置为零,段偏移量设置为零 。
我们假设IP模块把一个大数据报分为两个小的,IP模块首先取得数据报头,再分隔数据为两份,将数据报头加在两份数据上 。分隔数据时以8个字节为单位,第二段不一定是8个字节,但第一个必须是 。我们把第一段中的8位字节数称为段块数(NFB) 。新生成的第一个数据报内是生成的第一段数据,设置多段标记为1;新生成的第二个数据报内是生成的第二段数据,多段标记等于原来数据报内的值,段偏移量等于原数据报中的值加上NFB 。上述过程可以从2扩展至N的情况 。
对段的重组要求以下四个域有相同的值:标记,源地址,目标地址和协议 。将不同的数据报根据自己带的偏移量重新组合为新段,第一个段的偏移量为0,最后一个段的多段标记为0 。
2.4. 网关
网关在不同网络间传送数据报,网关也实现网关到网关协议(GGP),它用于传送路由和其它控制信息 。网关中的高层协议根本不用实现,GGP的功能可以在IP模块内实现 。
3. 说明
3.1. Internet包头格式
包头格式如下:
版本:4位
此域标明包头的格式 。我们现在说明的是IP版本4 。
IHL:4位
Internet包头长度是以32位为单位标记的包头长度,它指向数据的开始位置,这个域的最小合法值为5 。
服务类型:8位
它是一些指示服务质量的参数,这些参数用于在特定网络指示所需要的服务 。有些网络会提供优先级服务 。选择的基本原则是以下三者的权衡:低延时,高可靠和高吞吐量 。

推荐阅读