TCP/IP相关介绍(三)

来源:互联网 发布:淘宝客户分类管理 编辑:程序博客网 时间:2024/06/06 04:28
感觉写的非常水,如果有建议让我添加什么信息的请你告诉我,大家一起讨论,相互学习!

该部分介绍IP的相关内容,其中包括IP数据报首部的各个字段,以及路由选择,子网划分的有关内容。(关于IP的协议规范在RFC 791中有非常详细的说明)

1.IP 首部,IP首部一般有20个字节,图1表示IP数据报首部字段:

图1 IP数据报首部字段

1.4位版本号:目前主要使用的协议版本号是4;

2.首部长度是4位的最大值是:1111,每一位代表4个字节,所以最大为60字节;

3.服务类型(TOS)包括3bit 的优先权字段(目前已被忽略),4bit的TOS字段,分别代表:最小时延,最大吞吐量,最高可靠性,最小费用,1bit未用位但必须置为0。图2列出对应不同服务的TOS字段的设置值:

图2 不同应用程序建议TOS值

4.总长度字段是整个IP 数据包的长度,容易看出通过总长度字段和IP数据报的首部长度字段得出数据的长度,以及数据的起始位置。

5.16位标识位:标识位唯一的标识主机发送的每一个数据报,通常每发送一份数据包标识位就会加一,要想好好的了解16位标识位,3位标志位和13位片偏移就应该知道分片的内容。

下面对IP分片做出详细介绍:

为什么要进行分片呢?

当IP层收到一份IP数据报时要向接口发送IP数据报,但是每个接口的MTU是不同的,IP需要知道该接口的MTU然后与IP数据报对比,看是否需要进行分片,分片可以发生在原始主机上也可以发生在中间路由上,然后到达下一站时在进行重装,目的是使分片和重装对上一层(传输层)透明,IP数据报对重装和分片提供了充足的信息,因为标识位对于每一个IP数据报都是唯一的,如果对该IP数据包进行了分片标识位会被分配到每一个片中,标志位用1bit标识更多的片,除了最后一个片,其他的片该位都设置成1,片偏移指的是该片与原始数据报开始的偏移值(*当分片以后,每个片的16位总长度需要改成当前的值),标志位有一位标识不分片,不分片时该标志位为1,如果对于需要分片的数据报设置该位为1,则会把该数据报丢弃并且发送一个ICMP数据包差错报文给起始端。当IP数据报被分片后就成为了一个独立的分组,当数据报的这些分组到达目的端时可能会失序但是IP数据报首部有充分的信息保证接收端正确重组这些分片。对于IP层如果丢失了一个分片也会重传整个IP数据报,所以要尽量避免分片(可以看文献[Kent and Mogul 1987])。在分片中除了最后一片其余的片必须是8的整数倍,eg:1480就是8的整数倍。需要注意的是只有第一个分片有运输层首部如图3 所示为UDP 分片举例:

图 3 UDP分片举例

6.8位生存时间(TTL):数据报在传输中可通过路由的最大值。

7.8位协议:指出该数据报中使用何种协议。

8.16位首部检验和:只检验首部部分,不检验数据部分。

9.IP路由选择:首先要知道IP路由选择是十分简单的,如果目的主机和源主机相互连接点对点或在同一个共享网络上例如以太网上或令牌环网上,那么IP数据包就会直接送到目的主机上,否则就发送到默认路由上,让路由来进行转发该数据报。以便目的主机的IP层将数据交给那么程序处理。路由表的制作是通过网络号的,而不是主机号,因为如果通过主机号来制作路由表,路由表会过于庞大。在路由表中网络号和下一跳地址是最主要的。网络接口软件使用ARP将下一跳路由的IP地址解析成硬件地址,并将硬件地址放在MAC帧的首部,然后根据硬件地址来选择下一跳路由。

在开始讨论IP选路之前,我们要知道内核是如何维护路由表的。路由表中包含的信息决定了IP选路的决策。IP执行路由选择机制,路由守护程序提供选路决策。

IP选路:

(1)搜索路由表,寻找与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。找到将报文发送给该表目指定的下一站路由器或直接连接的接口。

(2)搜索路由表,寻找能与目的网络号相匹配的表目。找到将报文发送给该表目指定的下一站路由或直接的网络接口。

(3)搜索路由表,寻找标为“默认”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。

(4)如果上面步骤都未成功,那么发送一个“主机不可达”或“网络不可达”的错误。

做出相关的介绍,图 4为路由选择图片


图4 路由选择

由图可知,链路层的首部的地址是下一跳的物理地址,也就是路由的硬件地址,但是如果源主机和目的主机在一个网络上,链路层的硬件地址也就是目的主机的硬件地址。

10.子网寻址:

为什么要划分子网呢?

A类地址可分配主机号是2^24-2,但是在一个网络中往往用不了这么多主机,会造成浪费,而划分子网就减少了这种浪费,子网对外部路由来说隐藏了内部的组织,划分子网可以看成将网络号+主机号变成网络号+(网络号+主机号),也就是将原来的主机号进行划分。

11.子网掩码: 掩码是一个32bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号(任何主机在引导时进行的部分配置是指定主机IP地址。大多数系统把IP地址存在一个磁盘文件里供引导时读用)。如图5 位子网掩码的例子:

图 5 子网掩码

12.子网的例子:










附1 :

名词解释:

1.SLIP(Serial line internet prltocal)串行线路因特网协议,它是一个封装成连接串行接口和调试解调器的因特网协议,在RFC1055有具体的说明。

2.Modem  (modulator-demodulator) 调制解调器可以将模拟信号变成数字信号,也能将数字信号变成模拟新型号。




原创粉丝点击