当前位置: 首页 > news >正文

学技术学英语:TCP的三次握手和四次挥手

单词

汉语意思

音标

acknowledge

承认,确认

/əkˈnɒl.ɪdʒ/

acknowledgment

确认,承认

/əkˈnɒl.ɪdʒ.mənt/

duplex

双向的

/ˈdjuː.pleks/

establish

建立

/ɪˈstæb.lɪʃ/

handshake

握手,握手协议

/ˈhænd.ʃeɪk/

re-transmission

重传

/ˌriː.trænsˈmɪʃ.ən/

receiver

接收者

/rɪˈsiː.vər/

reliable

可靠的

/rɪˈlaɪ.ə.bəl/

sequence

序列,顺序

/ˈsiː.kwəns/

segment

段,片段

/ˈseg.mənt/

synchronize

同步

/ˈsɪŋ.krə.naɪz/

termination

终止,结束

/ˌtɜː.mɪˈneɪ.ʃən/

transmit

传输

/trænzˈmɪt/

transmitter

发送者

/trænzˈmɪt.ər/

synchronize

同步

/ˈsɪŋ.krə.naɪz/

termination

终止,结束

/ˌtɜː.mɪˈneɪ.ʃən/

handshake

握手,握手协议

/ˈhænd.ʃeɪk/

duplex

双向的

/ˈdjuː.pleks/

acknowledgment

确认,承认

/əkˈnɒl.ɪdʒ.mənt/

retransmission

重传

/ˌriː.trænsˈmɪʃ.ən/

TCP Connection (A 3-way handshake)

Handshake refers to the process to establish connection between the client and server. Handshake is simply defined as the process to establish a communication link. To transmit a packet, TCP needs a three way handshake before it starts sending data. The reliable communication in TCP is termed as PAR (Positive Acknowledgement Re-transmission). When a sender sends the data to the receiver, it requires a positive acknowledgement from the receiver confirming the arrival of data. If the acknowledgement has not reached the sender, it needs to resend that data. The positive acknowledgement from the receiver establishes a successful connection.

Here, the server is the server and client is the receiver. The above diagram shows 3 steps for successful connection. A 3-way handshake is commonly known as SYN-SYN-ACK and requires both the client and server response to exchange the data. SYN means synchronize Sequence Number and ACK means acknowledgment. Each step is a type of handshake between the sender and the receiver.

The diagram of a successful TCP connection showing the three handshakes is shown below:

The three handshakes are discussed in the below steps:

Step 1: SYN

SYN is a segment sent by the client to the server. It acts as a connection request between the client and server. It informs the server that the client wants to establish a connection. Synchronizing sequence numbers also helps synchronize sequence numbers sent between any two devices, where the same SYN segment asks for the sequence number with the connection request.

Step 2: SYN-ACK

It is an SYN-ACK segment or an SYN + ACK segment sent by the server. The ACK segment informs the client that the server has received the connection request and it is ready to build the connection. The SYN segment informs the sequence number with which the server is ready to start with the segments.

Step 3: ACK

ACK (Acknowledgment) is the last step before establishing a successful TCP connection between the client and server. The ACK segment is sent by the client as the response of the received ACK and SN from the server. It results in the establishment of a reliable data connection.

After these three steps, the client and server are ready for the data communication process. TCP connection and termination are full-duplex, which means that the data can travel in both the directions simultaneously.

TCP Termination (A 4-way handshake)

Any device establishes a connection before proceeding with the termination. TCP requires 3-way handshake to establish a connection between the client and server before sending the data. Similarly, to terminate or stop the data transmission, it requires a 4-way handshake. The segments required for TCP termination are similar to the segments to build a TCP connection (ACK and SYN) except the FIN segment. The FIN segment specifies a termination request sent by one device to the other.

The client is the data transmitter and the server is a receiver in a data transmission process between the sender and receiver. Consider the below TCP termination diagram that shows the exchange of segments between the client and server.

The diagram of a successful TCP termination showing the four handshakes is shown below:

Let's discuss the TCP termination process with the help of six steps that includes the sent requests and the waiting states. The steps are as follows:

Step 1: FIN

FIN refers to the termination request sent by the client to the server. The first FIN termination request is sent by the client to the server. It depicts the start of the termination process between the client and server.

Step 2: FIN_ACK_WAIT

The client waits for the ACK of the FIN termination request from the server. It is a waiting state for the client.

Step 3: ACK

The server sends the ACK (Acknowledgement) segment when it receives the FIN termination request. It depicts that the server is ready to close and terminate the connection.

Step 4: FIN _WAIT_2

The client waits for the FIN segment from the server. It is a type of approved signal sent by the server that shows that the server is ready to terminate the connection.

Step 5: FIN

The FIN segment is now sent by the server to the client. It is a confirmation signal that the server sends to the client. It depicts the successful approval for the termination.

Step 6: ACK

The client now sends the ACK (Acknowledgement) segment to the server that it has received the FIN signal, which is a signal from the server to terminate the connection. As soon as the server receives the ACK segment, it terminates the connection.

中文总结:

  • TCP连接建立(三次握手):

    • SYN(同步序列号):客户端向服务器发送连接请求。

    • SYN-ACK:服务器回应,确认收到请求并准备连接。

    • ACK(确认):客户端确认服务器的响应,连接建立。

  • TCP连接的特点:

    • 使用PAR(Positive Acknowledgement with Retransmission)来确保可靠通信。

    • 连接是双向的(全双工),数据可以同时双向传输。

  • TCP连接终止(四次握手):

    • FIN(终止请求):客户端发出终止连接的请求。

    • FIN_ACK_WAIT:客户端等待服务器的ACK。

    • ACK:服务器确认收到FIN请求。

    • FIN_WAIT_2:客户端等待服务器的FIN信号。

    • FIN:服务器发送FIN信号,表示准备终止连接。

    • ACK:客户端确认收到FIN,连接终止。

http://www.lryc.cn/news/523710.html

相关文章:

  • xiao esp32 S3播放SD卡wav音频
  • Unity中实现伤害跳字效果(简单好抄)
  • GaussDB日常维护操作
  • redis实现限流
  • 基于SpringBoot和PostGIS的各国及所属机场信息检索及可视化实现
  • python http server运行Angular 单页面路由时重定向,解决404问题
  • GPT-4o背后的语音技术
  • 微透镜阵列精准全检,白光干涉3D自动量测方案提效70%
  • Spring boot框架下的RocketMQ消息中间件
  • 记录一次 centos 启动失败
  • C++学习第五天
  • openharmony标准系统方案之瑞芯微RK3568移植案例
  • 深入理解 SSH 端口转发:本地 vs 远程 vs 动态转发
  • postman请求参数化
  • 基于 WEB 开发的汽车养护系统设计与实现
  • Nginx正向代理配置
  • 本地仓库管理之当前分支内的操作
  • 《内网穿透:网络拓展与安全防护的平衡艺术》
  • 【python写个可以运行的2048小游戏】
  • 【Flink系列】9. Flink容错机制
  • DETR论文阅读
  • 关于vite+vue3+ts项目中env.d.ts 文件详解
  • 如何优化Elasticsearch大文档查询?
  • Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正
  • Linux中DataX使用第一期
  • [Qt]事件-鼠标事件、键盘事件、定时器事件、窗口改变事件、事件分发器与事件过滤器
  • 关于机器学习的一份总结
  • 推荐一个开源的轻量级任务调度器!TaskScheduler!
  • 【18】Word:明华中学-儿童医保❗
  • 如何用selenium来链接并打开比特浏览器进行自动化操作(1)