《传输层报文格式大全资料》由会员分享,可在线阅读,更多相关《传输层报文格式大全资料(35页珍藏版)》请在金锄头文库上搜索。
1、传输层传输层 lTCPTCP报报文格式文格式 lUDPUDP报报文格式文格式 lSCTPSCTP报报文格式文格式 华为专有和保密信息 版权所有 华为技术有限公司 TCPTCP报报文格式文格式 报报文格式文格式 图图1 1 TCP首部格式 字段字段长长度度含含义义 Source Port16比特源端口 标识哪个应用程序发送 Destination Port 16比特目的端口 标识哪个应用程序接收 Sequence Number 32比特序号字段 TCP链接中传输的数据流中每个字节都编上一 个序号 序号字段的值指的是本报文段所发送的数据的 第一个字节的序号 Acknowledgment Numbe
2、r 32比特确认号 是期望收到对方的下一个报文段的数据的第1个 字节的序号 即上次已成功接收到的数据字节序号加1 只有ACK标识为1 此字段有效 Data Offset4比特数据偏移 即首部长度 指出TCP报文段的数据起始处距 离TCP报文段的起始处有多远 以32比特 4字节 为计 算单位 最多有60字节的首部 若无选项字段 正常为 20字节 Reserved6比特保留 必须填0 URG1比特紧急指针有效标识 它告诉系统此报文段中有紧急数 据 应尽快传送 相当于高优先级的数据 Page 1 of 35传输层 2016 1 13file C Users ly AppData Local Temp
3、 hh2ABC htm 报报文示例文示例 图图2 2 TCP报文 正常报文 ACK1比特确认序号有效标识 只有当ACK 1时确认号字段才有效 当ACK 0时 确认号无效 PSH1比特标识接收方应该尽快将这个报文段交给应用层 接收到 PSH 1的TCP报文段 应尽快的交付接收应用进程 而 不再等待整个缓存都填满了后再向上交付 RST1比特重建连接标识 当RST 1时 表明TCP连接中出现严重错 误 如由于主机崩溃或其他原因 必须释放连接 然 后再重新建立连接 SYN1比特同步序号标识 用来发起一个连接 SYN 1表示这是一个 连接请求或连接接受请求 FIN1比特发端完成发送任务标识 用来释放一个
4、连接 FIN 1表明 此报文段的发送端的数据已经发送完毕 并要求释放连 接 Window16比特窗口 TCP的流量控制 窗口起始于确认序号字段指明的 值 这个值是接收端正期望接收的字节数 窗口最大为 65535字节 Checksum16比特校验字段 包括TCP首部和TCP数据 是一个强制性的字 段 一定是由发端计算和存储 并由收端进行验证 在 计算检验和时 要在TCP报文段的前面加上12字节的伪首 部 Urgent Pointer 16比特紧急指针 只有当URG标志置1时紧急指针才有效 TCP的 紧急方式是发送端向另一端发送紧急数据的一种方式 紧急指针指出在本报文段中紧急数据共有多少个字节 紧
5、急数据放在本报文段数据的最前面 Options可变选项字段 TCP协议最初只规定了一种选项 即最长报文 段长度 数据字段加上TCP首部 又称为MSS MSS告诉 对方TCP 我的缓存所能接收的报文段的数据字段的最大 长度是MSS个字节 新的RFC规定有以下几种选型 选项表结束 无操作 最 大报文段长度 窗口扩大因子 时间戳 l窗口扩大因子 3字节 其中一个字节表示偏移值 S 新的窗口值等于TCP首部中的窗口位数增大到 16 S 相当于把窗口值向左移动S位后获得实 际的窗口大小 l时间戳 10字节 其中最主要的字段是时间戳值 4字节 和时间戳回送应答字段 4字节 l选项确认选项 Padding可
6、变填充字段 用来补位 使整个首部长度是4字节的整数 倍 data可变TCP负载 Page 2 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 图图3 3 TCP报文 Keepalive Page 3 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 图图4 4 TCP报文 Keepalive ACK Page 4 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm
7、 图图5 5 TCP报文 Duplicate ACK Page 5 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 图图6 6 TCP报文 重传 Page 6 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 图图7 7 TCP报文 Out Of Order乱序 Page 7 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 图图8 8 TCP报文 Window
8、 Update Page 8 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 参参考考标标准准 父主父主题题 传输层 华为专有和保密信息 版权所有 华为技术有限公司 UDPUDP报报文格式文格式 报报文格式文格式 图图1 1 UDP报文格式 标标准准描述描述 RFC 793Transmission Control Protocol Page 9 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 报报文示例文示例 参参考考标标准准 父主父主
9、题题 传输层 华为专有和保密信息 版权所有 华为技术有限公司 SCTPSCTP报报文格式文格式 lSCTPSCTP通用通用报报文格式文格式 lSCTPSCTP ABORT ABORT报报文格式文格式 lSCTP COOKIESCTP COOKIE ACK ACK格式格式 lSCTP COOKIESCTP COOKIE ECHO ECHO数数据据块块格式格式 lSCTP DATASCTP DATA数数据据块块格式格式 lSCTPSCTP ERROR ERROR数数据据块块格式格式 lSCTPSCTP HEARTBEAT HEARTBEAT数数据据块块格式格式 lSCTP HEARTBEATSCT
10、P HEARTBEAT ACK ACK数数据据块块格式格式 lSCTP INITSCTP INIT数数据据块块格式格式 字段字段长长度度描述描述 Source Port 2字节标识哪个应用程序发送 发送进程 Destination Port 2字节标识哪个应用程序接收 接收进程 Length2字节UDP首部加上UDP数据的字节数 最小为8 Checksum2字节覆盖UDP首部和UDP数据 是可选的 data octets 变长UDP负载 可选的 标标准准描述描述 RFC 768 User Datagram Protocol Page 10 of 35传输层 2016 1 13file C Us
11、ers ly AppData Local Temp hh2ABC htm lSCTP INITSCTP INIT ACK ACK数数据据块块格式格式 lSCTP SACKSCTP SACK数数据据块块格式格式 lSCTPSCTP SHUTDOWN SHUTDOWN消息格式消息格式 lSCTP SHUTDOWNSCTP SHUTDOWN ACK ACK数数据据块块格式格式 lSCTP SHUTDOWNSCTP SHUTDOWN COMPLETE COMPLETE数数据据块块格式格式 父主父主题题 传输层 华为专有和保密信息 版权所有 华为技术有限公司 SCTPSCTP通用通用报报文格式文格式 S
12、CTP Stream Control Transmission Protocol 即流媒体控制传输协议 是一种可靠 的基于无连接数据包网络如IP网络之上传输协议 他被设计用来在IP网络上传输PSTN在窄 带信令消息 同时也能支持宽带信令消息的传输 SCTP可以看作OSI层次结构中的传输层 它的上层作为SCTP用户应用 下层为分组网络IP 层 图图1 1 SCTP所处的协议栈结构 SCTPSCTP报报文格式文格式 一个SCTP分组含了一个公共的分组头 Common Header 和若干数据块 Chunk 每个数 据块中既可以包含控制信息 也可以包含用户数据 除了INIT INIT ACK和SHU
13、TDOWN COMPLETE数据块外 其他类型的多个数据块可以捆绑在一 个SCTP分组中 以满足对MTU大小的要求 当然 这些数据块也可以不与其他数据块捆绑在 一个分组中 如果一个用户消息不能放在一个SCTP分组中 这个消息可以被分成若干个数 据块 图图2 2 SCTP报文格式 Page 11 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm 字段字段长长度度描述描述 Source Port Number 16比 特的 无符 号整 数 源端口号 识别SCTP发送端点的SCTP端口号 接收方可以使用源 端口号 源IP地
14、址 目的端口号和目的IP地址标识该SCTP分组所 属的偶联 Destination Port Number 16比 特的 无符 号整 数 目的端口号 为目的端点的SCTP端口号 接收主机可以使用目的 端口号将SCTP分组复用到正确的端点或应用中 Verification Tag 32比 特的 无符 号整 数 验证标签是偶联建立时 本端端点为这个偶联生成一个随机标 识 偶联建立过程中 双方会交换这个TAG 到了数据传递时 发 送端必须在公共分组头中带上对端的这个TAG 以备校验 l包含INIT数据块的分组中验证标签必须为0 l在包含SHUTDOWN COMPLETE数据块且设置了T比特的分组中
15、验证标签必须要从包含 SHUTDOWN ACK数据块的分组中复 制 l在包含ABORT数据块的分组中 验证标签必须要从触发这个 ABORT发送的分组中复制 Checksum32比 特的 无符 号整 数 SCTP通过对用户数据使用ADLER 32算法 计算出一个32位的校验 码 带在数据报中 在接收端进行同样的运算 通过检查校验码 是否相等来验证用户数据是否遭到破坏 Chunk Type8比特 的无 符号 整数 块类型定义在块值 Chunk Value 中消息所属的类型 包括 INIT INIT ACK SACK ABORT ERROR SHUTDOWN COOKIE ACK 等13种数据块类型
16、 该参数的取值范围为0 254 255留作今后的扩展 数据块类型字段的编码分配如下 l0 净荷数据 DATA Page 12 of 35传输层 2016 1 13file C Users ly AppData Local Temp hh2ABC htm SCTPSCTP报报文交互流程文交互流程 图图3 3 Association建立流程 l1 启动 INIT l2 启动证实 INIT ACK l3 选择证实 SACK l4 Heartbeat请求 HEARTBEAT l5 Heartbeat证实 HEARTBEAT ACK l6 中止 ABORT l7 关闭 SHUTDOWN l8 关闭证实 SHUTDOWN ACK l9 操作差错 ERROR l10 状态Cookie COOKIE ECHO l11 Cookie证实 COOKIE ACK l12 为明确拥塞通知响应 ECNE 预留 l13 为降低拥塞窗口 CWR 预留 l14 关闭完成 SHUTDOWN COMPLETE l15 62 IETF预留 l63 IETF定义的数据块扩展 l64 126 IETF预留 l127 IETF定