IP、TCP、UDP报文头说明
时间:03-26来源:作者:点击数:
IP报文头(大端字节序)
- 版本:
- 首部长度:
- IP头长度 表明包含多少个32Bit包括可选头(如果有)值为IP头大小除以4如:没有可选头IP头为20字节 则该值为5
- 服务类型:
- 前3Bit为优先权字段(现在已经被忽略)
- 第8Bit保留位
- 第4Bit:最小延时
- 第5Bit:最大吞吐量
- 第6Bit:最高可靠性
- 第7Bit:最小花费
- 注:4-7Bit只能开启其中一个 全部为0则表示没有特殊要求的一般服务(大部分主机忽略此字段)
- 总长度:
- 整个数据包的大小字节数(包括IP头及后面所有数据)
- 标识:
- 用来唯一标识一个主机发送的数据包 通常每发送一次 值加1
- 标志:
- 第1Bit:保留位
- 第2Bit:不使用分段
- 第3Bit:更多分段
- 片偏移:
- 如故标志位有是哦嗯分段 则此值应该是分段到原始数据报开头的偏移位置
- 生存时间:
- 设置经过路由器的个数 每经过一个路由器值减去1若为0时数据包被丢弃 通常该值为32 64 128
- 协议:
- 指定此IP数据包使用的上层协议类型 如:TCP(6)UDP(17)等
- 首部校验和:
- 该值为IP报文头数据中每16Bit的二进制反码求和
- 来源IP地址:
- 向目标主机指明接入他的来源IP若有数据回应 目标主机将使用此IP
- 目标IP地址:
- 可选字段:
- 用来定义一些选项 如:时间戳等注:并不是所有主机和路由器都支持这些选项 切若使用该字段则长度必须为32Bit的倍数 不足则填充0
TCP报文头(大端字节序)
- 来源端口:
- 向目标主机指明接入他的主机所使用的端口号 用于目标主机回应
- 目标端口:
- 顺序号:
- 数据包编号 表明发送的数据包的顺序 其值通常应该为上次发送包中的顺序号+1若该数据包是整个TCP连接中的第一个包(SYN包)则该值随意(通常随机)
- 确认号:
- 通常该值是接受到的顺序号+1若该数据包是整个TCP连接中的第一个数据包(SYN包)则该值随意(通常为0)其后则应该是接受到的数据包中的顺序号+1注:ACK未开启时该值被忽略
- 首部长度:
- TCP头长度 表明包好多少个32Bit包括可选头(如果有)值为TCP头大小除以4如:没有可选头TCP头为20字节 则该值为5
- 标志位:
- 紧急标志位(URG):开启时表明此数据包处于紧急状态应该优先处理
- 确认标志位(ACK):开启时表明确认号有效 否则忽略确认号
- 推送标志位(PSH):开启时表明应该尽快交付给应用进程 而不必等到缓存区填满才推送
- 复位标志位(RST):开启时表明TCP连接出现连接出现错误 数据包非法拒绝连接
- 同步标志位(SYN):开启时表明一个连接的请求或者接受报文
- 终止标志位(FIN):开启时表明释放一个连接
- 窗口大小:
- 校验和:
- 该值为TCP报文头括数据部分中每16Bit的二进制反码求和
- 紧急指针:
- 若指定该值 他应该是一个偏移量 该值加上顺序号表示紧急数据最后一个字节的顺序号
- 可选字段:
- 包含最大载荷与窗口比例等信息注:若使用该字段则长度必须为32Bit的倍数 不足则填充0
UDP报文头(大端字节序)
- 来源端口:
- 向目标主机指明接入他的主机所使用的端口号 用于目标主机回应
- 目标端口:
- 数据包长度:
- 检验和:
- 该值为UDP报文头括数据部分中每16Bit的二进制反码求和注:UDP检验和不是必须的
方便获取更多学习、工作、生活信息请关注本站
微信公众号