TCP网络连接中的三次握手和四次挥手

news/2024/5/17 15:30:32 标签: 网络, tcp

TCP网络连接中的三次握手和四次挥手

    • 一、网络基础回顾
    • 二、TCP通讯的连接和断开为什么复杂?
    • 三、三次握手和四次挥手

一、网络基础回顾

计算机网络结构是一个复杂的层次结构,一般可以分为七层,被称为网络协议分层结构。这个结构被用来划分网络连接的不同协议以及它们之间的相互作用。以下是这七层的详细介绍:

  1. 物理层:负责传输数据的物理介质,如电缆和无线信号。
  2. 数据链路层:负责将数据转换成数据帧,并在物理层上进行传输。数据链路层的主要任务是差错控制和流量控制。
  3. 网络:负责选择数据包的传输路线,并将其传输到目标设备。网络层还负责 IP 地址的分配和路由选择。
  4. 传输层:负责数据传输的端到端通信,比如 TCP 协议和 UDP 协议。
  5. 会话层:负责建立、维护和结束数据传输会话。
  6. 表示层:负责数据格式的转换,确保数据可以被接收方正确地解释。
  7. 应用层:向用户提供应用程序,负责数据处理和传输。
    这些层次结构中的每一层都有其独特的任务和功能。为了使不同的网络设备能够相互通信,必须确保它们“说”同一种语言和遵循相同的协议。这就是网络协议分层结构的目的。

二、TCP通讯的连接和断开为什么复杂?

TCP(Transmission Control Protocol)通讯是一种面向连接的、可靠网络传输协议。它位于 OSI 模型的传输层,负责提供数据传输服务。TCP协议通过三次握手建立连接,确保数据的可靠性和有序性,同时也提供拥塞控制和流量控制机制。它适用于需要保证数据传输的可靠性和有序性的应用,例如文件传输、电子邮件、网页浏览等。
TCP通信是一种可靠的面向连接的通信方式,连接建立和断开是非常重要的过程。下面是TCP通信的连接和断开过程:

复杂的连接与释放过程是为了保证连接的可靠性

  1. 连接建立:
    当客户端需要和服务器建立TCP连接时,它会向服务器发送一个SYN包(同步包),这是一个带有SYN标志位的TCP数据包。服务器在收到SYN包后,会向客户端发送一个带有SYN和ACK标志位的数据包,表示确认收到客户端的请求并同意建立连接。最后,客户端向服务器发送一个带有ACK标志位的数据包,表示收到了服务器的确认信息,连接建立成功。

  2. 数据传输:
    在连接建立后,客户端和服务器之间可以进行数据传输。数据以TCP数据包的形式通过互联网传输。

  3. 连接断开:
    TCP连接断开有两种方式:主动关闭和被动关闭。
    主动关闭:当客户端或服务器需要断开连接时,它会向对方发送一个带有FIN标志位的TCP包,表示要关闭连接。对方在收到FIN包后,会回复一个ACK确认信息。最后,对方也会发送一个FIN包,表示连接已经关闭。
    被动关闭:当一方突然断开连接,另一方也会收到一个FIN包,表示连接已经关闭。对方在收到FIN包后,会发送一个ACK包,然后连接关闭。

三、三次握手和四次挥手

三次握手和四次挥手都是TCP协议通信过程中建立和关闭连接的步骤。

三次握手的步骤如下:

  1. 客户端发送SYN包,进入SYN-SENT状态。
  2. 服务器接收到SYN包,回复一个ACK包和一个SYN包,进入SYN-RECEIVED状态。
  3. 客户端收到ACK包和SYN包,回复一个ACK包,建立连接并进入ESTABLISHED状态。

四次挥手的步骤如下:

  1. 客户端主动关闭连接,发送FIN包,进入FIN-WAIT-1状态。
  2. 服务器接收到FIN包,回复一个ACK包,进入CLOSE-WAIT状态。
  3. 服务器向客户端发送FIN包,进入LAST-ACK状态。
  4. 客户端接收到FIN包,回复一个ACK包,进入TIME-WAIT状态,等待2MSL(最长报文段寿命)后关闭。

下面是三次握手和四次挥手的示意图:

三次握手:

客户端                            服务器

SYN_SENT状态                      LISTEN状态

---------------SYN------------>

                                  SYN_RECEIVED

<---------ACK包和SYN------------

ESTABLISHED                       

四次挥手:

客户端                            服务器

ESTABLISHED状态                  

<---------------FIN------------

FIN_WAIT_1                        

                                  CLOSE_WAIT

<---------------ACK------------

FIN_WAIT_2                        

                                  LAST_ACK

                                  <-------FIN--------

TIME_WAIT                        

                                  <-------ACK--------

CLOSED                            

http://www.niftyadmin.cn/n/5044361.html

相关文章

【学习笔记】多模态综述

多模态综述 前言1. CLIP & ViLT2. ALBEF3. VLMO4. BLIP5. CoCa6. BeiTv3总结参考链接 前言 本篇学习笔记虽然是多模态综述&#xff0c;本质上是对ViLT后多模态模型的总结&#xff0c;时间线为2021年至2022年&#xff0c;在这两年&#xff0c;多模态领域的模型也是卷的飞起…

文心一言 VS 讯飞星火 VS chatgpt (98)-- 算法导论9.3 4题

四、用go语言&#xff0c;对一个包含n个元素的集合&#xff0c;假设一个算法只使用比较来确定第i小的元素&#xff0c;证明:无需额外的比较操作&#xff0c;它也能找到第 i-1 小的元素和第 n-i大的元素。 文心一言&#xff1a; 在这个问题中&#xff0c;我们要使用一个称为&q…

Zookeeper部署运行_服务管理

脚本说明zkCleanup清理Zookeeper历史数据&#xff0c;包括事务日志文件和快照数据文件zkCliZookeeper的简易客户端zkEnv设置Zookeeper的环境变量zkServerZookeeper服务器的启动、停止和重启脚本 配置环境变量 修改文件 vim /etc/profile export ZOOKEEPER_HOME/usr/local/zo…

基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 数据增强3. 模型构建4. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 5. 模型评估 相关其它博客工程源代码下载其它资料下载 前言 本项目依赖于Keras深度学习模型&#xff0c;旨在对…

逻辑漏洞挖掘之XSS漏洞原理分析及实战演练 | 京东物流技术团队

一、前言 2月份的1.2亿条用户地址信息泄露再次给各大公司敲响了警钟&#xff0c;数据安全的重要性愈加凸显&#xff0c;这也更加坚定了我们推行安全测试常态化的决心。随着测试组安全测试常态化的推进&#xff0c;有更多的同事对逻辑漏洞产生了兴趣&#xff0c;本系列文章旨在…

阿里元境登台北京时装周 元宇宙重塑时尚产业

9月20日&#xff0c;北京时装周数字时尚新生态沙龙在北京友谊商店举办。本次沙龙是「2024北京时装周」主办的重要活动之一&#xff0c;作为数字时尚交流平台&#xff0c;探讨数字技术与时尚产业的融合共生与未来机遇。阿里元境作为领先的元宇宙技术服务品牌&#xff0c;阿里元境…

尚硅谷wepack课程学习笔记

为什么需要使用打包工具&#xff1f; 开发时使用的框架、es6 语法 、less 等浏览器无法识别。 需要经过编译成浏览器能识别的css、js才可以运行。 打包工具可以帮我们编译&#xff0c;号可以做代码压缩、兼容处理、性能优化。 常见的打包工具有什么&#xff1f; vite、webpac…

搭建知识库系统不难,选对工具很重要!

建立科学的知识管理体系&#xff0c;增加企业的知识资产&#xff0c;对于企业本身来说是价值意义重大&#xff0c;但是很多企业受制于技术水平认知限制&#xff0c;总觉得搭建知识库系统非常难…… 以HelpLook为例&#xff0c;只需要注册登陆就可以在短时间内就可制作出一个简约…