2025年2月2日(tcp3次握手4次挥手)

devtools/2025/2/6 18:56:12/

TCP(三次握手和四次挥手)是建立和关闭网络连接的标准过程,确保数据在传输过程中可靠无误。下面是详细解释:

1. 三次握手(TCP连接建立过程)

三次握手是为了在客户端和服务器之间建立一个可靠的连接,确保双方都能接收对方的数据并同步序列号。具体过程如下:

第一步:客户端发送SYN(同步)请求
  • 客户端 → 服务器:客户端向服务器发送一个SYN(同步)包,表示请求建立连接。
  • 包含的内容:
    • SYN标志位被设置为1,表示这是一个连接请求。
    • 初始序列号(ISN),客户端生成的一个随机数字,后续数据传输会用到。
第二步:服务器响应SYN-ACK
  • 服务器 → 客户端服务器接收到客户端的SYN请求后,回复一个SYN-ACK包。
  • 包含的内容:
    • SYN标志位仍然设置为1,表示同意建立连接。
    • ACK标志位设置为1,表示确认收到客户端的请求。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的SYN请求。
    • 初始序列号服务器生成自己的序列号(ISN)。
第三步:客户端确认ACK
  • 客户端 → 服务器:客户端收到服务器的SYN-ACK响应后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认连接。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的响应。
    • 客户端序列号继续增加,后续数据发送将基于此序列号。

结果:三次握手完成,连接成功建立。此时客户端和服务器之间已经建立了一个可靠的全双工连接,可以开始数据传输了。

2. 四次挥手(TCP连接终止过程)

四次挥手是用来断开TCP连接的过程,确保数据已经成功传输并且双方都同意关闭连接。

第一步:客户端发送FIN请求
  • 客户端 → 服务器:客户端向服务器发送一个FIN(终止)包,表示客户端不再发送数据,准备关闭连接。
  • 包含的内容:
    • FIN标志位设置为1,表示客户端请求关闭连接。
    • 客户端序列号:保持当前序列号。
第二步:服务器确认FIN
  • 服务器 → 客户端服务器收到客户端的FIN请求后,回复一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到客户端的FIN包。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的请求。
    • 服务器此时仍然可以继续发送数据,连接并未完全断开。
第三步:服务器发送FIN请求
第四步:客户端确认FIN
  • 客户端 → 服务器:客户端收到服务器的FIN请求后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到服务器的FIN包。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的关闭请求。

结果:四次挥手完成,连接正式关闭。此时,客户端和服务器之间的连接完全断开,所有的资源都被释放。

总结:

  • 三次握手用于建立连接,确保双方都可以接收对方的数据。
  • 四次挥手用于关闭连接,确保双方都确认数据已传输完毕并且都同意关闭连接。

http://www.ppmy.cn/devtools/156593.html

相关文章

基于python热门歌曲采集分析系统

基于Python的热门歌曲采集分析系统是一个综合性的音乐数据处理平台,它利用Python的强大功能,结合数据库和前端技术,实现了对热门歌曲的采集、分析、展示和管理。以下是对该系统的详细介绍: 一、系统架构与技术栈 1.后端&#xf…

游戏引擎学习第86天

仓库: https://gitee.com/mrxiao_com/2d_game_2 回顾 继续之前的工作。 昨天已经让地形系统基本运行起来,但目前仍然需要进一步完善,使其能够生成更多的地块。目前的情况是,仅仅有一个地块位于中心区域,而真正需要的是让地块覆盖…

参数3说明

在PHP的 extract 函数中,当第二个参数是 EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时,第三个参数(前缀)会生效,以下是详细说明: EXTR_PREFIX_ALL 无论变量是否…

pytorch实现文本摘要

人工智能例子汇总:AI常见的算法和例子-CSDN博客 import numpy as npfrom modelscope.hub.snapshot_download import snapshot_download from transformers import BertTokenizer, BertModel import torch# 下载模型到本地目录 model_dir snapshot_download(tians…

人工智能赋能企业系统架构设计:以ERP与CRM系统为例

一、引言 1.1 研究背景与意义 在数字化时代,信息技术飞速发展,人工智能(Artificial Intelligence, AI)作为一项具有变革性的技术,正深刻地影响着各个领域。近年来,AI 在技术上取得了显著突破,…

大模型高级工程师实践 - 将课程内容转为视频

通过整合之前生成的文字、音频、PPT,我们能够制作出引人入胜的科普课程视频,使表达更加生动且多样化。本节课程将介绍如何利用音视频处理工具ffmpeg和moviepy,快速将课程内容转化为视频。 1. 原理介绍 当前的大模型文生视频或图生视频方案还…

北京门头沟区房屋轮廓shp的arcgis数据建筑物轮廓无偏移坐标测评

在IT行业中,地理信息系统(GIS)是用于处理、分析和展示地理空间数据的重要工具,而ArcGIS则是GIS领域中的一款知名软件。本文将详细解析标题和描述中提及的知识点,并结合“门头沟区建筑物数据”这一标签,深入…

响应式编程_03响应式编程在Netflix Hystrix 、Spring Cloud Gateway、Spring WebFlux中的应用

文章目录 概述响应式编程在主流开源框架中的应用Netflix Hystrix 中的滑动窗口 (基于RxJava框架)HystrixCircuitBreaker 如何动态获取系统运行时的各项数据如何实现滑动窗口? 小结Spring Cloud Gateway 中的过滤器Filter (基于Project Reacto…