计算机网络数据通信部分之网络层IP报文格式解析

IP(网际协议):

即(Internet Protocol),又称为互联网协议。工作在OSI七层参考模型中的第三层——网络层。互联网协议主要负责网络层寻址、路由选择、分段及包重组。与IP协议配套使用的还有ARP、ICMP、IGMP协议。

  1. IP的主要作用:

    1、标识节点和链路
    用唯一的IP地址标识每一个节点
    用唯一的IP网络号标识每一个链路

    2、寻址和转发
    确定节点所在网络的位置,进而确定节点所在位置
    IP路由器选择适当的路径将IP包转发到目的节点

    3、适应各种数据链路
    根据链路的MTU(最大传输单元)对IP包进行分片和重组
    为了通过实际的数据链路传递信息,需建立IP地址到数据链路层地址的映射

  2. 三层设备——路由器(Router):

    互联网由众多的路由器和网段构成,每个网段对应一个链路,路由器在这些网段之间执行数据转发的服务。

    路由器主要功能:
    1、连接分离的网络,路由器每个接口都处于一个网段,它将原本孤立的局域网络连接起来,实现大规模的网络通信。
    2、链路层协议适配,由于链路层协议多样性,不同类的链路之间不能直接通信,路由器可以适配各种数据数据链路协议和速率,使其间的通信成为可能。
    3、各局域网之间数据包的转发,路由器之间需要运行GGP(Gateway to Gateway protocol)协议,交换路由信息和其他控制信息,从而掌握去往每个目的网络的正确路径,主要包括(RIP、OSPF、BGP等路由协议)

  3. IP报文格式:
    计算机网络数据通信部分之网络层IP报文格式解析_第1张图片

    以上部分就是IP报文首部组成,固定部分20字节,可变部分最大40字节,即IP报文首部最大为60字节。

    Vrsion:占4位,指IP协议版本,通信双方使用的IP协议版本必须一致,目前广泛使用的是IPV4版本,即版本号为4,另外还有IPV6版本,版本号为6。

    IHL:因特网报头长度,占4位,可表示的最大十进制是15,其最小值为5,因为首部最小长度要20字节。当首部长度的值为15时,表示首部60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的Padding字段加以填充。因此,IP数据包的数据部分永远在4字节的整倍数开始。

    Type of Service:服务类型,占8位。用来获得更好的服务,该字段在旧标准中叫做服务类型,实际上一直没有被使用过,98年IETF将其改为区分服务DS。只有在使用区分服务时,该字段才使用。一般情况不会使用。

    Total Length:总长度,占16位,指首部和数据部分总和的长度,因此数据包的最大长度为65535字节,实际上这么大的报文在现实中时极少遇到的。(常用的以太网规定MTU的值1500字节,若传送的报文超过该值,就必须对其分片处理)

    Identification:标识,占16位。IP软件在存储器中维持一个计数器,每产生一个报文,计数器加1,并将此值赋给标识字段。这个标识符的值被复制到所有数据包文的标识字段中,相同的标识字段的值使分片后的各数据报片能够正确的重组起来。

    Flags:标志,占3位,目前只有两位有意义
    最低位 :MF(More Fragment)。当MF=1,表示后面还有分片的数据报;反之,表示已是若干报片中的最后一个。
    中间位:DF(Don’t Fragment)。当DF=1,表示不能分片;反之,可以分片。

    Fragment Offset:片偏移,占13位。较长的分组在分片后,某片在原分组中的相对位置,也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8字节为偏移单位,即每个分片的长度都是8字节的整数倍。

    Time to Live:生存时间,占8位。表明数据报在网络中的寿命,由发出数据报的源点设置该字段,目的是防止无法交付的数据报在互联网中兜圈子,从而浪费网络资源。当数据报每经过一个路由器时,将TTL值减1,直到值为0,将丢弃该数据报。

    Protocol:协议,占8位。指出此数据报携带的数据是何种协议,以便使目的主机的IP层知道应将数据部分上交哪个协议进行处理。

    Header Checksum:首部检验和,占16位。该字段只检验数据报的首部,不包括数据部分。

    Source Address:源地址,占32位。发送方的IP地址。

    Destination Address:目的地址,占32位。接收方的IP地址。

你可能感兴趣的:(计算机网络数据通信部分之网络层IP报文格式解析)