TCP报文段首部详解
来源:互联网 发布:北方金银分析软件 编辑:程序博客网 时间:2024/06/06 13:54
TCP虽然是面向字节流的,但是tcp传送的数据单元却是报文段,一个报文段分为首部和数据两部分,几乎TCP所有功能都从首部来体现,下面我们来详细的剖析下它的首部.
(1):源端口与目标端口:分别写入源端口号和目标端口号.
(2):32位序列号:也就是我们tcp三次握手中的seq,表示的是我们tcp数据段发送的第一个字节的序号,范围[0,2^32 - 1],例如,我们的seq = 201,携带的数据有100,那么最后一个字节的序号就为300,那么下一个报文段就应该从301开始.
(3):32位确认序列号:也就是ack(假设为y),它的值是seq+1,表示的意义是y之前的数据我都收到了,下一个我期望收到的数据是y.也就是我回过去的seq = y.
(4):首部长度:占4位.也叫数据偏移,因为tcp中的首部中有长度不确定的字段.
(5):URG:紧急指针标志位,当URG=1时,表明紧急指针字段有效.它告诉系统中有紧急数据,应当尽快传送,这时不会按照原来的排队序列来传送.而会将紧急数据插入到本报文段数据的最前面.
(6):ACK:当ACK=1时,我们的确认序列号ack才有效,当ACK=0时,确认序号ack无效,TCP规定:所有建立连接的ACK必须全部置为1.
(7):PSH:推送操作,很少用,没有了解.
(8):RST:当RST=1时,表明TCP连接出现严重错误,此时必须释放连接,之后重新连接,又叫重置位.
(9):SYN:同步序列号标志位,tcp三次握手中,第一次会将SYN=1,ACK=0,此时表示这是一个连接请求报文段,对方会将SYN=1,ACK=1,表示同意连接,连接完成之后将SYN=0
(10):FIN:在tcp四次挥手时第一次将FIN=1,表示此报文段的发送方数据已经发送完毕,这是一个释放链接的标志.
(11):16位窗口的大小:win的值是作为接收方让发送方设置其发送窗口大小的依据.
(13):紧急指针:只有当URG=1时的时候,紧急指针才有效,它指出紧急数据的字节数.
- TCP报文段首部详解
- TCP报文段首部格式详解
- TCP报文段首部分析详解
- TCP报文段首部格式详解
- TCP报文段的首部格式
- TCP学习(1)--报文段首部格式
- TCP报文段首部中“窗口”字段
- 深入TCP(一)--TCP报文段首部分析
- TCP报文首部格式
- TCP协议中报文段详解
- IP报文首部结构、TCP报文首部结构
- TCP协议报文段首部的控制位中URG与PSH的比较
- TCP报文段结构
- TCP报文段结构
- TCP IP首部详解
- TCP报文首部各参数简介
- TCP的复位报文段
- TCP报文段头部格式
- PHP详细学习计划
- Android的隐式意图
- 火车头采集器在线发布模块制作教程
- 构建乘积数组
- android Bitmap内存优化(四) android 本地资源图片的处理
- TCP报文段首部详解
- Android快速开发常用工具类
- iOS 打包工具生成
- LeetCode|Pascal's Triangle II-java
- Java从包中读取所有的class文件
- 【LeetCode】Balanced Binary Tree 解题报告
- 「回溯法」Palindrome Partitioning
- 【Android应用开发】分享一个录制 Android 屏幕 gif 格式的小技巧
- BellmanFord判环算法