首页 > 编程知识 正文

tcp/ip协议的层次模型有几层,tcpip协议五层模型

时间:2023-05-06 08:03:03 阅读:265072 作者:3411

网络层

        网络层的作用是在复杂的网络环境中为要发送的数据报找到一个合适的路径进行传输。

        网络层向上提供简单灵活,无连接的,尽最大努力交付的数据报服务。从数据报从主机A发送到主机B的过程中可能要经历很多节点。所谓无连接是指:数据报在传输之前不需要提前规划好整个传输路线,即不用提前建立一条从发送主机到接收主机之间的传输连接路线。(如果是有连接服务,该传输路线建立好之后,各数据报必须在这条路线上传输,经历的结点路径都是相同的)。这就保证了数据传输的简单性。当数据传输到一个节点时,根据网络中的情况在决定通往下一个节点应该走哪条路线。这就保证了数据传输的灵活性。如下图:


        图a就是有连接的传输:由主机A向主机B传输数据时,提前建立一条连接:主机A->节点1->节点3->主机B。则在由A向B传输多个数据报时,均只能使用这条路线进行传输。

        图b是无连接的传输:当由A向B发送数据报1时,从主机A开始发现由A到节点1的网络比较空闲,就使用这条路径发送,到达节点1时,发现可以使用节点1到节点3的路径,于是就走这条路径,同理再走到主机B;当发送数据报2时,此时发现由A到节点2的网络比较空闲,就使用这条路线发送,之后同理。

        所谓尽最大努力交付是指:网络层只保证为数据报找到由主机A到主机B的路径,使数据报能从源端到达目的端,而在发送过程中数据报出现了什么问题(丢失,重复等),网络层不能保证。网络层不能保证数据报的可靠性传输,可靠性则是由网络主机中的传输层来进行保证的。

        

        在上述中,当主机A向节点1发送数据报时,是以广播的形式进行发送的。即与主机A处于同一网络中的结点都能看到该数据报,但是最终只有结点1进行接收。节点1会接收该数据报是因为它知道该数据报是发给它的,其他节点不接收也是因为它们知道该数据报不是发给它们的。那它们是如何判断数据报是否是发送给自己的呢?所以就要在数据包中添加相关的信息,表明该数据报是发送给谁的。这些信息怎么添加,以什么样的格式添加,就需要制定一个协议。

IP协议

        IP地址:用于标识网络中的唯一一台主机或路由器。路由选择:可以根据数据报的目的地址为其选择合适的传输路径。其中:主机:配有IP地址,但不进行路由选择;路由器:配有IP地址,同时进行路由选择。节点:主机和路由器的统称。

IP协议报头格式


        各字段说明:

4位版本号:该数据报使用的IP协议的类型,IPv4是4。注意:互相通信的两主机所用的IP协议版本必须时相同的;

4位首部字长:IP协议报头的长度。单位是32位字节。实际的报头的长度为:这四位表示的大小length*4B。4位最大表示的数字是15,所以报头的最大长度为:15*4=60B;而报头中至少有20个字节的固定首部长度,所以最小为0101*4=20字节。

8位服务类型:

        3位优先权字段(已经弃用);

        1位保留位:暂时不用,以后可能会用到,必须置为0;

        4位TOS字段:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,一次只能将一位置为1.

16位报文总长:整个报文(报头加数据)的长度,单位是字节。当IP报文被分片之后,每一个分片中该字段的值为该分片的总长(分片的首部长度加分片的数据长度)。

16位标识:唯一的标识主机发送的IP报文。如果IP报文在数据链路层被分片了,那么这些分片的报文该字段都是相同的;在IP层的存储器中会维持一个计数器,每产生一个数据报,计数器加1,并把计数器值赋给该标识字段(这个字段不是序号的意思,只是用来“标识”)。

3位标志:

        1位保留:暂时不用,以后可能用到;

        1位“禁止分片”(NF)标志:当IP报文的长度超过数据链路层协议要求的MTU时,就要进行分片。如果该位置为1,表示禁止分片,此时,IP报文就会被丢弃;为0表示可以分片。

        1位“更多分片”(MF)标志:当IP报文被分片之后,如果是最后一个分片,则将该位置为0,否则均置为1;

13位片偏移:分片后的IP报文相对于原IP报文起始位置的偏移量,实际的偏移量是:这13位表示的数字乘8后而得。所以,除了最后一个分片,其他分片的长度都是8的整数倍。如:原IP报文有效数据长度为2300,分为三片后的数据长度分别为:1000(0~999) 1000(1000~1999) 300(2000~2999)。则各片的片偏移分别为:0/8=0,1000/8=125,2000/8=250。若片2在分片为两片:600 400。则这两片的片偏移为:1000/8 = 125,(1000+600)/8=200。

        IP报文在数据链路层被分片后,到达目的主机IP层的顺序可能就会发生变化,因此要对原IP报文进行合并就要根据上述的16位标识,3位标志,13位片偏移对原IP报文进行合并。

8位生存时间TTL:数据报在网络中是通过电信号或光信号进行传输时,如果光电信号减弱了,就会有集线器等设备放大信号。如果数据报在网络中进行循环式的传输,则一直到达不了目的主机,也不会消散。所以设置该字段,表示报文达到目的地址的最大报文跳数。初始一般为64(由数据报的发送源主机进行设置),当数据报经过一个路由时,TTL减1,当减为1时,还没达到目的主机,此时就丢弃该报文。因此,数据报在网络中能经历的路由器最多为255。

8位协议号:表示上层协议的类型,TCP协议还是UDP协议等。

16位校验和:使用CRC校验,检查报文头部是否破坏,不包括数据部分;没经过一个节点,都要检验一下校验和。

32位源/目的IP地址:数据报的源/目的主机IP地址。在数据报的整个传输过程中,这两个字段的值是不变的。

选项:最多40字节;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。