tcp数据报头解析
2016-06-10 17:07
363 查看
tcp数据报报头解析:
16bits: 源端口,即发送端的端口
16bits: 目标端口,即到达端的端口
32bits: Seq,tcp数据报序号,tcp数据报太大超过ip数据报容许,需要分段,标记分段序号
32bits: Ack number,回应序号,确认码
4bits: tcp数据报报头大小,4个字节为一个单位
6bits: 保留,尚未使用
6bits: 控制标志码,0关闭,1启动
URG:1紧急数据包,接收端紧急处理
ACK:1响应数据报,和32bits,Ack number有关
PSH:1要求对方立刻传送缓冲区内对应数据包,无需等待满再传送
RST:1表示立刻结束连接,无需等待手续,此时发送方已强制断线
SYN:1表示发送方希望建立连接,表示开始连接的意思
FIN:1表示传送结束,通知对方完毕,是否同意断线,此时发送端还在等待回复
16bits: window(滑动窗口),告诉对方本机的缓存器还可以接收的数据,单位-字节,0表示满,应暂停传输数据
16bits: 数据效验码,如若不等,表示数据报损毁,进而请求重发数据包
16bits: 紧急数据位置,仅当URG=1时启用,表示紧急数据所在的位置
nbits: 任意数据,一般表示接收端可以接收的最大数据容量等
36-nbits: 补足任意数据,使达到32bits,tcp头部需要时32bits整数倍
tcp3次握手建立连接:
first: 发送端发送一个 SYN=1; seq=n,ack=0 的数据报
second: 接收端发送一个 SYN=1,ACK=1;seq=i, ack=n+1 的数据报
third: 发送端发送一个 ACK=1; seq=m,ack=i+1 的数据报
16bits: 源端口,即发送端的端口
16bits: 目标端口,即到达端的端口
32bits: Seq,tcp数据报序号,tcp数据报太大超过ip数据报容许,需要分段,标记分段序号
32bits: Ack number,回应序号,确认码
4bits: tcp数据报报头大小,4个字节为一个单位
6bits: 保留,尚未使用
6bits: 控制标志码,0关闭,1启动
URG:1紧急数据包,接收端紧急处理
ACK:1响应数据报,和32bits,Ack number有关
PSH:1要求对方立刻传送缓冲区内对应数据包,无需等待满再传送
RST:1表示立刻结束连接,无需等待手续,此时发送方已强制断线
SYN:1表示发送方希望建立连接,表示开始连接的意思
FIN:1表示传送结束,通知对方完毕,是否同意断线,此时发送端还在等待回复
16bits: window(滑动窗口),告诉对方本机的缓存器还可以接收的数据,单位-字节,0表示满,应暂停传输数据
16bits: 数据效验码,如若不等,表示数据报损毁,进而请求重发数据包
16bits: 紧急数据位置,仅当URG=1时启用,表示紧急数据所在的位置
nbits: 任意数据,一般表示接收端可以接收的最大数据容量等
36-nbits: 补足任意数据,使达到32bits,tcp头部需要时32bits整数倍
tcp3次握手建立连接:
first: 发送端发送一个 SYN=1; seq=n,ack=0 的数据报
second: 接收端发送一个 SYN=1,ACK=1;seq=i, ack=n+1 的数据报
third: 发送端发送一个 ACK=1; seq=m,ack=i+1 的数据报
相关文章推荐
- TCP版backshell的VBS脚本代码
- 使用C语言编写基于TCP协议的Socket通讯程序实例分享
- TCP Wrappers防火墙介绍与封锁IP地址的方法
- c语言多进程tcp服务器示例
- win2003连接限制TCP连接限制
- PowerShell脚本开发之收发TCP消息包
- Nodejs创建TCP服务器 - king0222
- C#实现TCP连接信息统计的方法
- .Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
- linux shell 脚本实现tcp/upd协议通讯(重定向应用)
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- Android使用socket创建简单TCP连接的方法
- Android实现TCP客户端接收数据的方法
- Android TCP 文件客户端与服务器DEMO介绍
- Android中实现TCP和UDP传输实例
- python实现可将字符转换成大写的tcp服务器实例
- php实现TCP端口检测的方法
- Java实现Socket的TCP传输实例
- 实现了基于TCP的Java Socket编程实例代码
- Java基于TCP方式的二进制文件传输