• TCP报文段的首部格式


    1. 源端口和目的端口:各占2个字节。
    2. 序号:4字节。0~2^31-1,指的是本报文段所发送的数据的第一个字节的序号。比如本次发送的报文从301开始,报文长度是100字节,那么下次发送的报文段序号应该就是401。
    3. 确认号:4字节。确认到该字节为止之前的报文都正确接收了。确认号=N,那么表明到N-1为止的所有数据都已正确接收。
    4. 数据偏移:4位,因为有长度不定的选项字节段,因此用数据偏移来表示TCP报文段的数据从哪里开始。前面从源端口到紧急指针是固定的20个字节,数据偏移共有4位,能表达最大的数是15,数据偏移的单位是32位,也就是4字节,因此,tcp首部长度不能超过15*4=60字节,也是意味着选项的长度不能超过40字节。
    5. 保留:占6位,为今后使用,目前置为0.
    6. 紧急URG:URG=1时,说明这个报文段是紧急数据,你应该立即上传给应用层,比如中断命令等。
    7. 确认ACK:ACK=1时,是TCP建立阶段用,以及在连接简历后所有报文段都置1.
    8. 推送PSH:PSH=1时,需要快速响应的报文,接收方不等缓存填满,直接把目前的缓存都推送上去
    9. 复位RST:RST=1时,表明TCP连接出现严重差错,必须释放连接,然后重新建立连接。
    10. 同步SYN:建立连接时用,SYN=1,ACK=0时,代表建立连接报文段,对方的响应是SYN=1,ACK=1。因此SYN=1时就代表这是一个请求连接或连接接受报文。
    11. 终止FIN:用来释放连接,FIN置1时,就代表要求释放运输连接
    12. 窗口:2字节,指的是发送该报文段的接收窗口还能接受多少,告诉对方,你还能发送多少。这个是根据缓存大小和缓存内已存储的数据大小决定的
    13. 校验和:2字节。
    14. 紧急指针:2字节,配合URG使用,URG置1时,它指出本报文段中的紧急数据的字节数(紧急数据结束以后就是普通数据),窗口为0时也是可以发送紧急数据的
    15. 选项:长度可变,最大40字节。最大报文段长度(MSS)、窗口扩大、时间戳、选择确认。
  • 相关阅读:
    DVWA-7.3 SQL Injection(SQL注入)-High
    DVWA-7.2 SQL Injection(SQL注入)-Medium-绕过引号转义
    记一次错误
    笔记3
    笔记2
    题目--猜数字
    java基础-流程控制
    Python垃圾回收机制
    @staticmethod和@classmethod的作用与区别
    java转python代码
  • 原文地址:https://www.cnblogs.com/masonmei/p/11716534.html
Copyright © 2020-2023  润新知