美文网首页
小马哥网络课笔记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