计算机网络——TCP三次握手、四次挥手的过程

欢迎来到计算机网络专题。 如果喜欢本文的话不妨点个赞吧,发现有讲解不准确的地方,也烦请各位大佬指正。

TCP

概念

TCP (传输控制协议)提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。

在TCP/IP协议中,TCP协议提供可靠的连接服务,TCP是全双工模式 ,连接是通过三次握手 进行初始化的,,需要四次挥手关闭连接。

补充:全双工模式

通信双方可同时收发消息,信道是独立的,不会互相干扰。

定位与应用

TCP协议位于运输层,负责应用软件(比如您的浏览器)和网络软件之间的通信。

TCP包首部

概念

TCP包主要分为上一层的数据以及头部信息,其中首部信息中标定了应该如何读取数据。因此TCP包的首部在网络传输中必不可少,我们借用这张图来更加直观地看看TCP包首部在网络传输如何发挥作用。

(图片摘自zhuanlan.zhihu.com/p/108504297...

具体信息

我们再来分析一下TCP包首部中的几个关键信息,这对于我们后面分析三次握手和四次挥手有重要作用

  • 源端口和目标端口

    所以TCP首部预留了两个16位作为端口号的存储,而IP地址由上一层IP协议负责传递

    源端口号和目地端口各占16位两个字节。

  • 序号

    Sequence number 缩写seq ,通过这个来确认发送的数据有序,比如我要传输一个大文件,选择分片传输,每次传输1000,现在序列号为1000,发送了1000,下一个序列号就是2000。

  • 确认号

    Acknowledge number 缩写ack,服务器的数据到达客户端的每个报文都有一个序号用于从服务器流线向到客户端的数据,也就是表达出了下一次通信时想要哪个序号的数据字段。

  • 标志位

    标志位的作用是表明本次通信的目的,常用的有以下几种:

    • SYN(synchronous): 发送标志,用来建立连接。连接开始时,SYN=1,ACK=0,此时发送连接但是未被响应。当连接被响应的时候,标志位会发生变化,其中ACK会置为1,代表确认收到连接请求。
    • ACK(acknowledgement):表示确认收到请求。
    • FIN(finish):结束标志,表示没有其余数据要发送了
    • PSH(push) :表示该数据包被对方接收后应立即交给上层应用,不经过缓冲区排队
    • RST(reset):重置复位标志,用于复位对应的TCP连接。
    • URG(urgent):紧急标志,用于保证TCP连接不被中断,并且督促中间设备尽快处理

三次握手

三次握手简单来说,就是建立TCP连接时,需要客户端与服务器总共发送三个报文

  • 第一次握手,由客户端向服务器请求建立连接,其中的SYN标志位设置为1,我们假设Seq为J
  • 第二次握手,服务端发送标志位SYN为1,ACK为1,ack为J+1,假设Seq为K的TCP包
  • 第三次握手,客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

类比一个比较形象的例子:

四次挥手

当客户端与服务器断开连接时,需要四次报文传输

  • 第一次,客户端发送一个FIN报文,告诉服务器已经传输完所有内容了,请求关闭连接,我们假设此时Seq为J。
  • 第二次,服务器B收到这个FIN,它发回一个ACK报文段,ack为J+1,确认请求关闭连接。
  • 第三次,服务器B发送一个FIN报文,表示服务端也没有其余数据要发送了,告诉客户端自己也希望连接。
  • 第四次,客户端发回一个ACK报文,确认关闭请求,至此双方的连接断开。
相关推荐
老蒋新思维1 小时前
创客匠人峰会深度解析:智能体驱动知识变现的数字资产化路径 —— 创始人 IP 的长期增长密码
人工智能·网络协议·tcp/ip·重构·知识付费·创始人ip·创客匠人
老蒋新思维4 小时前
创客匠人峰会实录:创始人 IP 变现的 “人 + 智能体” 协同范式 —— 打破知识变现的能力边界
大数据·网络·人工智能·网络协议·tcp/ip·创始人ip·创客匠人
2501_916007474 小时前
TCP 抓包分析实战,从三次握手到自定义协议解析的完整方法
网络协议·tcp/ip·ios·小程序·uni-app·php·iphone
老蒋新思维6 小时前
创客匠人启示录:AI 时代知识变现的底层逻辑重构 —— 从峰会实践看创始人 IP 的破局之路
网络·人工智能·网络协议·tcp/ip·数据挖掘·创始人ip·创客匠人
码农爱学习6 小时前
使用wpa工具配网、udhcpc分配IP的过程分析
网络·网络协议·tcp/ip
北京耐用通信7 小时前
协议转换的‘魔法转换器’!耐达讯自动化Ethernet/IP转Devicenet如何让工业机器人‘听懂’不同咒语?”
网络·人工智能·科技·网络协议·机器人·自动化·信息与通信
CAir29 小时前
一问读懂并了解HTTP代理的基本原理
网络·网络协议·http·代理
北京耐用通信9 小时前
阀岛的“超级大脑”:耐达讯自动化网关让EtherNet/IP转DeviceNet“说同一种语言”
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
卓码软件测评9 小时前
具有CMA和CNAS双重资质的软件测试机构【Gatling脚本开发资源请求处理:html、css、js自动下载配置】
websocket·网络协议·测试工具·单元测试·测试用例
喜欢流萤吖~11 小时前
POST 与 GET:HTTP 请求方法的本质区别
网络·网络协议·http