| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 5.5 TCP报文段的首部格式 -> 正文阅读 |
|
[网络协议]5.5 TCP报文段的首部格式 |
????????TCP是面向字节流的,但TCP传送的数据单元是报文段。一个TCP报文段分为首部和数据两部分,TCP的功能都体现在首部各字段的作用中。TCP报文段首部的前20个字节都是固定的. 首部固定部分各字段的意义如下: (1)源端口和目的端口 :各占2个字节。TCP的分用功能也是通过端口实现的。 (2)序号:占4字节。序号范围是[0, -1],序号使用mod运算。在一个TCP连接传送的字节流的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。这个字段的名称也叫作“报文段序号”。 (3)确认号:占4字节,是期望收到对方下一个报文段的第一个数据字节的序号。 ????????若确认号 = N,则表明:到序号N-1为止的所有数据都已正确收到。 (4)数据偏移:占4位,指出TCP报文段的首部长度。 (5)保留:占6位,保留为今后使用,但目前应置为0。 (6)紧急URG:当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送,这时要与首部中紧急指针字段配合使用。 (7)确认ACK:仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置为1. (8)推送PSH:当两个应用进程进行交互式的通信时,有时在一端的进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP就可以使用推送操作。发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快的交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。虽然应用程序可以选择推送操作,但推送操作很少使用。 (9)复位RST:当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。将RST置为1还用来拒绝一个非法的报文段或拒绝打开一个链接。 (10)同步SYN:在建立连接时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。若对方同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。 (11)终止FIN:用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据以及发送完毕,并要求释放运输连接。 (12)窗口:占2字节。窗口值是[0, ]之间的整数。窗口指的是发送本报文段的一方的接收窗口。窗口字段明确指出了现在允许对方发送的数据量,窗口值经常在动态变化着。 (13)检验和:占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算校验和时,要在TCP报文段的前面加上12字节的伪首部。TCP的协议号是6。 (14)紧急指针:占2字节。紧急指针仅在URG=1时才有意义,指出了紧急数据的末尾在报文段中的位置。当所有紧急数据都处理完时,TCP就告诉应用程序恢复到正常操作。值得注意的是,即使窗口为0时也可发送紧急数据。 (15)选项:长度可变,最长可达40字节。最后的填充字段仅仅是为了使整个TCP首部长度是4字节的整数倍。 MSS是每一个TCP报文段中的数据字段的最大长度。 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:30:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |