• TCP和UDP头部格式的了解?


    tcp头部格式如下图所示:

    1.源端口号,16位,发送方的端口号。

    2.目标端口号,16位,发送方的目标端口号。

    3.  32为序列号,sequence number,保证网络传输数据的顺序性。

    4.   32位确认号,acknowledgment number,用来确认确实有收到相关封包,内容表示期望收到下一个报文的序列号,用来解决丢包的问题。

    5.   头部大小,4位,偏移量:最大值为0x0F,即15,

    单位为32位(bit),单位也就是4个字节,给出头部占32bit的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60(15*4)字节的TCP头部。

    6.   Reserved  4位 ,预留字段,都为0

    7.  TCP标志位

    (1)CWR:Congestion window reduced,拥塞窗口减少。拥塞窗口减少标志被发送主机设置,用来表明它接收到了设置ECE标志的TCP包。拥塞窗口是被TCP维护的一个内部变量,用来管理发送窗口大小。

    (2)ECN-Echo:显式拥塞提醒回应。当一个IP包的ECN域被路由器设置为11时,接收端而非发送端被通知路径上发生了拥塞。ECN使用TCP头部来告知发送端网络正在经历拥塞,并且告知接收端发送段已经受到了接收端发来的拥塞通告,已经降低了发送速率。

        (3)URG:为1时,紧急指针(urgent pointer)有效,配合紧急指针使用

        (4)ACK:为1时,确认号有效

        (5)PSH:  为1时,接收方应该尽快将这个报文段交给应用层

         (6)RST:为1时,释放连接,重连。

         (7)SYN:为1时,发起一个连接。

         (8)FIN:为1时,关闭一个连接。

    8.  16位窗口大小:占16bit。此字段用来进行流量控制,主要用于解决流控拥塞的问题。单位为字节数,这个值是本机期望一次接收的字节数。

    9.  16位校验值:  占16bit。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。

    10.  16位紧急指针:占16bit。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

    11.  32位Tcp选项:一般包含在三次握手中。

     

    UDP头部结构

    头部结构中各部分的作用:
    (1)16位源端口号 记录源端口号,在需要对方回信时选用。不需要时可用全0。
    (2)16位目的端口号 记录目标端口号。这在终点交付报文时必须要使用到。
    (3)长度 UDP数据报的长度(包括数据和首部),其最小值为8B(即仅有首部没有数据的情况)。
    (4)校验和 检测UDP数据报在传输中是否有错,有错就丢弃。该字段时可选的,当源主机不想计算校验和,则直接令该字段为全0。当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给进程。如果接收方UDP发现收到的报文中目的端口号不正确(即不存在对应端口号的应用进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文交给发送方。

  • 相关阅读:
    asp.net的Context.Cache缓存过期策略
    sql语句执行时算术运算导致溢出。
    sqlserver进行join的方式选择
    Apollo配置中心
    sqlserver的left join优化
    iis设置上传文件大小限制
    Android中的颜色值
    Network authentication method and device for implementing the same
    MongoDB GridFS
    MongoDB 正则表达式
  • 原文地址:https://www.cnblogs.com/lmh001/p/9928467.html
Copyright © 2020-2023  润新知