IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP协议的三次握手及释放 -> 正文阅读

[网络协议]TCP协议的三次握手及释放



一、TCP服务

TCP协议是提供面向连接的、可靠的传输服务,适用于各种可靠的或不可靠的网络。TCP用户送来的是字节流形式的数据,这些数据缓存在TCP实体的发送缓冲区中。一般情况下,TCP实体自主的决定如何把字节流分段,组成TPDU发送出去。在接收端,也就是TCP实体决定何时把积累在接收缓冲区中的字节流提交给用户。分段的大小和提交的频度是由具体的实现根据性能和开销权衡决定的,TCP规范中没有定义。显然,即使两个TCP实体的实现不同,也可以相互操作。

另外,TCP也允许用户把字节流分成报文用推进(PUSH)命令指出报文的界限。发送端TCP实体把PUSH标志之前的所有未发数据组成TPDU立即发送出去,接收端TCP实体同样根据PUSH标志决定提交的界限

二、TCP协议

TCP只有一种类型的PDU,叫作TCP段,段头(也叫TCP头或传输头)的格式如下:
在这里插入图片描述
1、源端口(16位):说明源服务访问点。
2目标端口(16位):表示目标服务访问点。
3、发送顺序号(32位):本段中第一个数据字节的顺序号。
4、接受顺序号(32位):捎带接受的顺序号,指明接收方期望接受的下一个数据字节的顺序号
5、偏置值(4位):传输头中32位字的个数。因为传输头有任选部分,长度不固定,所以需要 偏置值。
6、保留字段(6位):未用,所有实现必须把这个字段置全0.
7、标志字段(6位):表示各种控制信息,其中

  1. URG:紧急指针有效
  2. ACK:接受顺序号有效
  3. PSH:推进功能有效。
  4. RST:连接复位为初始状态,通常用于连接故障后的恢复。
  5. SYN:对顺序号同步,用于连接的建立
  6. FIN:数据发送完,连接可以释放。

8、窗口(16位):为流控分配的信息量。
9、校验和(16位):段中所有16位字按模2^16-1相加的和,然后取1的补码。
10、紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中的一个位置,此位置之前的数据是紧急数据。
11、任选项(长度可变):目前只有一个任选项,即建立连接时指定的最大段长。
12、补丁:补齐32位字边界。

三、TCP的三次握手(建立连接)

同步标志SYN用于连接建立阶段。TCP用三次握手过程,建立连接,首先是发起方发送一个SYN标志置位的段,其中的发送顺序号为某个值X,称为初始顺序号 ISN(Initial Sequence Number) ,接收方以SYN和ACK标志置位的端响应,其中接收顺序号应为X+1(表示期望从X+1个字节处开始接收数据),发送顺序号为某个值Y(接受方指定的ISN)。这个段到达发送端后,发起专ACK标志置位,应答顺序号位Y+1的段回答,连接就正式建立了。可见,所谓初始顺序号就是收发双方对连接的标识,也与字节流的位置有关。因而对发送顺序号更准确的解释应该是: 当SYN未置位时,表示本段中第一个数据字节的顺序号;当SYN置位时,它时初始顺序号ISN,而段中第一个数据字节的顺序号应为ISN+1,正好与接收方期望接收的数据字节的位置对应。 如下图
在这里插入图片描述

四、TCP连接状态图

在这里插入图片描述


总结

文章可能存在知识短板,希望包涵,有错误点请指正!!!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 12:08:14  更:2021-09-09 12:10:27 
 
开发: 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年6日历 -2024/6/18 19:27:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码