zoukankan      html  css  js  c++  java
  • TCP/IP协议原理与应用笔记25:网际协议(IP)之 数据报(Datagram)

    1. 数据报(Datagram)格式:

     2. 长度字段

    (1)首部长度字段,HLEN4 bits

    • 以 4 字节(即32bits)为单位
    • 取值:5~15(即首部长度为20 ~ 60 bytes)

    (2)总长度字段,Total length 16 bits

    • 以字节单位
    • 首部长度(即 4 * HLEN)+ 数据长度

    备注:IP分组的最大长度是多少 ?  

    解答:65535

    3. 服务类型字段(Service type)

    (1)Type of Service(TOS),8 bits

    • 该分组所期望的服务质量

    4. 分片控制字段

    (1)标识字段,Identification16 bits

    • 源站每发送一个分组,标识值+1
    • (源IP地址,标识) ---> 全网唯一分组标识

    (2)标志字段,Flags3 bits

    (3)片偏移字段,Fragmentation offset13 bits

    • 8 bytes 为单位

    备注:IP数据报为什么需要被分片?

    解答:物理网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU。IP把MTU与数据报长度进行比较,如果需要则进行分片。

    ( 最大传输单元(Maximum Transmission Unit:MTU):是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。)

    5. 生存时间字段

    Time to Live(TTL),8 bits

    • 分组寿命:防止路由成环时,IP被无限次转发
    • 取值:分组传输时间+路由器转发处理时间 ---> 困难
    • 实际:源和目的之间的路由器个数(跳数)
    • 路由器转发时将 TTL值减1 ,TTL值为零时丢弃该分组

      虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。
      TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息
      TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1。
      TTL值的注册表位置HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系统设置后重启才生效。
     
      生存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器(权威域名服务器)发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

    6. 协议字段

    Protocol, 8 bits

    协议字段指出此数据携带的数据是使用哪种协议的,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程

    使用IP服务的高层协议

    7. 校验和 字段

    (1)Checksum, 16 bits

        差错检测

    (2)只校验首部,数据部分由高层协议校验

    • 无须重复校验数据部分
    • 缩短了路由器转发分组时的处理时间

    8. IP分组封装

    (1)直接封装在数据链路帧中

    例如:Ethernet帧

     IP分组实例:

    9. IP分组的处理:

    1合法性处理

    • 版本
    • 长度
    • TTL
    • Protocol
    • Checksum
    • IP地址

    2分片操作

    3重组操作

    4选项处理

  • 相关阅读:
    tomcat7的catalina.sh配置说明
    nginx防攻击的简单配置
    linux系统自签发免费ssl证书,为nginx生成自签名ssl证书
    mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'
    /var/log/secure 文件清空
    Linux日志文件
    记一次网站被挂马处理
    Uedit32对文本进行回车换行
    安装mysql血泪史。
    mysql-8.0.19安装教程(Windows)
  • 原文地址:https://www.cnblogs.com/hebao0514/p/5515345.html
Copyright © 2011-2022 走看看