• TCP报文格式


    TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠的、基于字节流的传输层协议

    TCP报文格式:

    源端口号(2字节):

        d5 df(54751)

    目的端口号(2字节):

        22 b8(8888)

    TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接

    序号(4字节):

        37 59 56 75

        用来标识TCP发端向TCP收端发送的数据字节流

    确认序号(4字节):

        由于该报文为SYN报文,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)

        一旦连接建立,该值将始终发送(同ACK标志)

    首部长度(4位):报文头长度(单位:位)/32

        1000(转化为10进制为8,8*32/8 = 32,该报文报头长度为32个字节)

        存在该字段是因为TCP报头中任选字段长度可变

        报头不包含任何任选字段则长度为20字节;4位所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节

    标志位(12位):

        0000 00010010

        Reserved

        000~ ~~~~~~~~

        ECN(Explicit Congetsion Notification)

        ~~~0 ~~~~~~~~ = N / NS / Nonce Sum:有效排除潜在的ECN滥用,RFC 3540

        ~~~~ 0~~~~~~~ = C / CWR(Congestion Window Reduced):拥塞窗口减少标志

        ~~~~ ~0~~~~~~ = E / ECE / ECN-Echo:ECE / ECN标志

        Control Bits

        ~~~~ ~~0~~~~~ = U / Urgent:紧急指针有效性标志

        ~~~~ ~~~1~~~~ = A / Acknowledgment:确认序号有效性标志,一旦一个连接建立起来,该标志总被置为1,即除了请求建立连接报文(仅设置Syn标志位为1),其它所有报文的该标志总为1

        ~~~~ ~~~~0~~~ = P / Push:Push标志(接收方应尽快将报文段提交至应用层)

        ~~~~ ~~~~~0~~ = R / Reset:重置连接标志

        ~~~~ ~~~~~~1~ = S / Syn:同步序号标志

        ~~~~ ~~~~~~~0 = F / Fin:传输数据结束标志

    窗口大小(2字节):TCP流量控制通过连接的每一端声明窗口大小进行控制(接收缓冲区大小)

        20 00(00100000 00000000)= 8192

        由于2字节能够表示的最大正整数为65535,故窗口最大值为65535

    检验和(2字节):检验和覆盖整个TCP报文段;强制字段,由发送端计算存储,由接收端进行验证

        2e 2f

    紧急指针(2字节):当Urgent标志置1时,紧急指针才有效

        00 00

    http://blog.csdn.net/a19881029/article/details/29557837

  • 相关阅读:
    Android 生命周期
    adb 的相关操作及遇到的问题
    各种内部类
    Android 的系统架构
    Hibernate的各种关联关系
    Eclipse常用的快捷键
    Android 开发前的基本的配置及第一个Android 程序
    spring MVC Validation(表单验证)
    创建 spring MVC项目的基本步骤
    Android_demo之生成二维码
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8058899.html
Copyright © 2020-2023  润新知