TCP Header
来源:互联网 发布:枪林弹雨刷枪软件截图 编辑:程序博客网 时间:2024/06/03 18:27
0 16 32
16位源端口号
16目的端口号
32位序号
32位确认序号
4位首部长度
保留(6位)
6位标志bit
16位窗口大小
16位检验和
16位紧急指针
选项
数据
l TCP首部 >= 20 bytes
l IP报文的总长为65535bytes(Including header & data, 由IP header中的4 bytes表示), So 选项+数据 最多可以有(65535-20-20)bytes, First 20 for IP, late for TCP. 首部长度的单位是32位字,So maximum header length is 16*32 = 512, right?
l Please note “数据” is optional.
l 6 Bits Flag
- URG, (If set, emergency pointer is available)
- ACK
- PUSH, (If set, the data will be send to the application before the buffer is full)
- RST
- SYN, (Setup Connection)
- FIN, (Release Connection)
l 在建立连接时, 双方都会有一个初始序号,确认号是希望收到的下一个字节。
l 紧急指针
任何一个TCP输出段都可以携带紧急数据(Urgent Data), 以支持上层协议间紧急信息的快速传递。紧急数据必须位于数据段中所有数据的最前端, 并在TCP段头中设置如下字段:
①设置URG标志位, 表示当前数据段中携带有紧急数据。
②设置紧急指针。紧急指针与当前输出段的序号之和指出数据流中紧急数据最后一个字节。对于一个包含该字节的数据段来讲, 其紧急数据长度从段序号开始一直延续到该字节为止。
当接收方TCP收到含有紧急数据的TCP数据段后, 首先把紧急数据从正常数据流中分离出来, 并保存在适当地方。然后, 以一定的方式通知上层协议,希望它尽快地响应和处理。
当发送方TCP接到上层协议递交的紧急数据后, 并不是立即发送紧急数据,而是把它们排入正常数据的发送队列中。此后, 发送方TCP每发送一个数据段都要带有URG标志和紧急指针, 直到出现真正含有紧急数据的数据段为止; 不过越靠后的数据段紧急指针的值就越小。也就是说, 含有URG标志和紧急指针的数据段不一定就含有紧急数据, 只有包含紧急指针所指示的字节的数据段才真正含有紧急数据, 从段序号开始到该字节为止皆为紧急数据。此外, 发送方TCP即使发送窗口为 0 时也要对带有URG标志的数据段实行强制发送, 不管它们是否含有紧急数据。
- TCP Header
- TCP header
- TCP Header
- TCP Header
- TCP-IP header
- IP TCP UDP header structure
- TCP、UDP、ICMP、IP header
- IP、TCP、UDP Header Struct
- HTTP自定义Header-(SOCKET-TCP)
- tcp/ip-HTTP-Header-消息报头
- tcp/ip-HTTP-Header-消息报头
- tcp/ip中的伪头部pseudo header
- TCP-IP详解:AH(Authentication Header)
- header
- header
- header
- header
- Header();
- 帝国phpCMS系统内置调用
- Web.Config文件写法
- 嵌入式系统的应用和组成图解
- sap程序设计
- Source Insight3.0: Linux源代码阅读的利器
- TCP Header
- 职场感悟:小故事里的大智慧-七个和尚有粥喝
- Web Form 網頁的資料架構與資料繫結技術
- 嵌入式工程师的硬件和软件道路选择 (精华)
- 一个80年小子的创业道理,和所有准备创业或者正在创业的兄弟们共享
- 关于MVC模式
- 如何在没有标题栏的情况下移动窗体
- ASP.net中如何让Session永不过期
- LR8.0中文手册_Chapter2 LoadRunner的功能