• 对TCP/IP协议的一些看法(4):网络层协议概述


    之前有提到,链路层的上层是网络层(Internet层),也有翻译为网际层。这层开始一直到应用层就是用户所需要关注的地方了。网络层协议包括了最著名的IP协议、ICMP协议、IGMP协议等,今天主要对IP协议进行一下概述。

    IP协议:

    数据从应用层传下来,在每一层都要对数据的头部进行封装,包括传输层添加TCP或UDP报头,IP层添加IP报头以及链路层添加以太网报头。网络层的报文叫做IP数据包,其主要的格式如下:

    其中各位的意思是:

    1.版本号:占4位,代表是IPv4还是IPv6

    2.首部长度:4位,首部长度最大为60字节,常见为20字节。若首部长度不是4的倍数,则用0去填充

    3.服务类型:8位,可表示最小时延、最大吞吐量、最高可靠性和最小费用。一般不用

    4.数据报长度:16位,最大为65535字节。若超过该长度需要分片发送

    5.16比特标识:记录报文的数量,可用于之后重组

    6.标志:3位,后两位才有用,最低位表示是否后面还有分片,倒数第二位表示是否允许分片

    7.13比特片偏移:表示每个分片在整个数据报中的相对位置,用于重组

    8.寿命:TTL,数据包每经过一个路由器则减1,直到为0后丢弃该数据包。默认windows为255,linux为64

    9.上层协议:表示数据字段装载的是传输层的哪个协议,包括tcp,udp,ICMP或IGMP等

    10.首部校验和:对IP首部的数据进行校验,占16位

    11.源IP地址:发送方的IP,32位

    12.目的IP地址:接收方的IP,32位

    13.选项:可选字段

    14.数据:装载传输层或ICMP、IGMP数据包的内容

    网络层的IP数据包使不可靠的,即不能保证该数据包一定能够交付到接收方,可用上层协议来确保其可靠性,如TCP协议。

    最后需要注意的是TCP、UDP、ICMP和IGMP报文都是以IP数据包的格式传输的,虽然ICMP、IGMP和IP协议都在同一层——网络层。

  • 相关阅读:
    解决js newDate()苹果手机日期格式显示NaN
    AD 用户个人信息补充
    CSV 文件批量导入 数据库 Pandas
    【笔记】单调栈?
    【其他】Modern C++ in OI
    【笔记】网络流
    【笔记】默认构造函数和零初始化
    【笔记】正确的当前弧优化
    golang读取文件的方法
    protobuf使用
  • 原文地址:https://www.cnblogs.com/elninohjh/p/4220666.html
Copyright © 2020-2023  润新知