美文网首页
小马哥网络课笔记15------TCP

小马哥网络课笔记15------TCP

作者: 夜凉听风雨 | 来源:发表于2022-02-19 09:48 被阅读0次

    数据格式

    image.png
    • 数据偏移
      1.占4位,取值范围是0x0101~0x1111
      2.乘以4:首部长度(Header Length)
      3.首部长度是20~60字节

    • 保留
      占6位,目前全为0 .

    小细节

    image.png

    有些资料中,TCP首部的保留(Reserved) 字段占3位,标志(Flags) 字段占9位,Wireshark中也是如此

    一个细节

    • UDP的首部中有个16位的字段记录了整个UDP报文段的长度(首部+数据)
      但是,TCP的首部中仅仅有个4位的字段记录了TCP报文段的首部长度,并没有字段记录TCP报文段的数据长度

    • 分析
      1.UDP首部中占1 6位的长度字段是冗余的,纯粹是为了保证首部是32bit对挤
      2.TCP\UDP的数据长度,完全可以由IP数据包的首部推测出来
      3.传输层的数据长度=网络层的总长度-网络层的首部长度-传输层的首部长度

    检验和(Checksum)

    • 跟UDP一样, TCP检验和的计算内容:伪首部+首部+数据
      伪首部:占用12字节,仅在计算检验和时起作用,并不会传递给网络层
    image.png

    标志位(Flags)

    • URG (Urgent)
      当URG=1时,紧急指针字段才有效。表明当前报文段中有紧急数据,应优先尽快传送

    • ACK (Acknowledgment)
      当ACK=1时,确认号字段才有效

    • PSH (Push)
      暂不做解释

    • RST (Reset)
      当RST=1时,表明连接中出现严重差错,必须释放连接,然后再重新建立连接

    • SYN (Synchronization)
      1.当SYN=1、ACK=0时,表明这是一个建立连接的请求
      2.若对方同意建立连接,则回复SYN=1、ACK=1

    • FIN (Finish)
      当FIN=1时,表明数据已经发送完毕,要求释放连接

    序号、确认号、窗口

    • 序号(Sequence Number)
      1.占4字节
      2.首先,在传输过程的每一 个字节都会有一 个编号
      3.在建立连接后,序号代表:这一次传给对方的TCP数据部分的第一 个字节的编号

    • 确认号(Acknowledgment Number)
      1.占4字节
      2.在建立连接后,确认号代表:期望对方下一次传过来的TCP数据部分的第一个字节的编号

    • 窗口(Window)
      1.占2字节
      2.这个字段有流量控制功能,用以告知对方下一 次允许发送的数据大小(字节为单位)

    相关文章

      网友评论

          本文标题:小马哥网络课笔记15------TCP

          本文链接:https://www.haomeiwen.com/subject/zmvikrtx.html