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报文

? ?1.什么是报文

TCP 报文是 TCP 层传输的数据单元,也称为报文段。

? ?2.报文格式:

? ? ?? ? ? ? ? ? ?TCP报头信息出TCP报文段中,用于指定通信的源端端口,目的端口,管理tcp连接等。? ?

?

?数据报文的头部有多长,TCP报文头部大小并不固定? ? ?>>固定长度20字节+可变长度

TCP报文头部的固定内容:每一行32bit(4字节)* 5行 =20字节

? ? ? ?

?????????????????????? ? ? ? ? ? ? ? ? ? 报文的报头结构图

????????

各字段代表的含义:

源端口:指定了发送端的端口(图1 TCP报头结构)

目的端口:指定了接受端的端口号

序号:指明了段在即将传输的段序列中的位置

确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号

TCP偏移量:指定了段头的长度。段头的长度取决与段头选项字段中设置的选项

保留:指定了一个保留字段,以备将来使用

标志:SYN、ACK、PSH、RST、URG、FIN

??????SYN:?表示同步

??????ACK:?表示确认

??????PSH:?表示尽快的将数据送往接收进程

??????RST:?表示复位连接

??????URG:?表示紧急指针

??????FIN:?表示发送方完成数据发送

窗口:指定关于发送端能传输的下一段的大小的指令

校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性

紧急:指明段中包含紧急信息,只有当U?R?G标志置1时紧急指针才有效

选项:指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项

想了解更多可以移步这里? ——(49条消息) TCP报文头部_wdirdo的博客-CSDN博客_tcp报文头

????????前面我们了解了TCP报文,接下来进入正题:

三次握手

什么是三次握手 :

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

应用场景:?

TCP/IP协议是传输层的一个面向连接的安全可靠的传输层协议。
三次握手发生在连接过程中的,三次握手机制是为了保证能建立一个安全可靠的连接

过程:

第一次握手是由客户端发起,客户端会向服务端发送一个报文,报文里面SYN标志位是置1的,
当服务端收到这个报文的时候就知道客户端要和我发起一个新的连接,
于是服务端就向客户端发送一个确认消息包ACK位置1,这是第二次握手,

以上两次握手之后,
对于客户端而言,其实是已经知道了所有信息,就是我既能给服务端发送消息,
我还能收到服务端的消息;对于服务端而言,两次握手是不够的,因为到目前为止,
服务端只知道一件事情,客户端给我发送的消息我收的到,但是我发给客户端的消息,
客户端能不能收到还不知道。所以还要进行第三次握手。

第三次握手就是当客户端收到服务端发过来的确认消息的报文之后,
还要继续给服务端进行一个回应,也是一个ACK位置1的一个确认消息。
通过以上三次连接,不管是服务端还是客户端都彼此知道了,我既能给对方发送消息也能收到对方的消息,
那么这个连接就能被安全的建立了。

四次挥手

四次握手机制,也是由客户端首先发起的,客户端会发起一个报文,在报文里面FIN标志位置1;当服务端收到这报文之后,我就知道了客户端想要和我断开连接,但是此时服务端不一定能做好准备,因为当客户端发起断开连接的时候,对于服务端而言它极有可能有未发送完的的消息,它还要继续发送;所以此时对于服务端而言他只能进行一个消息确认,我先告诉服务端,我知道你要和我断开连接了,但是我这还可能没有做好准备,你还需要等我一下,等会我会告诉你;于是,发完这个消息确认包后,可能稍作片刻,它可能会继续发送一个断开连接的报文,一个FIN位置1的报文,是由服务端发给客户端的,这个报文表示了服务端已经做好了断开连接的准备,那么当这个报文发给客户端的时候,客户端同样要给服务端继续发送一个消息确认的报文。
一共有四次,通过这四次的相互沟通和连接,我就知道了,不管是服务端还是客户端都已经做好了断开连接的准备,于是连接就可以被断开了。



关于TCP握手机制的疑问

为什么需要三次握手?

TCP/IP是不可靠的,为了在不可靠的环境下建立可靠的连接,必须要有握手确认机制。

为什么是三次?

TCP是全双工的,需要双方进行同时通信,在保证信息成功传输双向确认,最少需要三次握手。

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

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