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

学技术学英语: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.kler.cn/a/511292.html

相关文章:

  • Weblogic - General - 弱口令 任意文件读取漏洞
  • 多种vue前端框架介绍
  • Formality:参考设计/实现设计以及顶层设计
  • 生成树机制实验
  • ASP.NET Core - 配置系统之配置添加
  • win32汇编环境,窗口程序中基础列表框的应用举例
  • 基于PSO粒子群优化TCN时间卷积神经网络时间序列预测算法matlab仿真
  • 代码随想录26
  • OpenCV相机标定与3D重建(60)用于立体校正的函数stereoRectify()的使用
  • 51c自动驾驶~合集48
  • 设计模式:责任链模式——行为型模式
  • 【从零开始入门unity游戏开发之——C#篇46】C#补充知识点——命名参数和可选参数
  • Markdown学习笔记(2)
  • C# 控制打印机:从入门到实践
  • 胶质母细胞瘤浸润的个性化预测:数学模型、物理信息神经网络和多模态扫描|文献速递-视觉大模型医疗图像应用
  • 机器学习——什么是代价函数?
  • BUUCTF_Web(October 2019 Twice SQL injection)
  • 【物联网】ARM核介绍
  • C++实现矩阵Matrix类 实现基本运算
  • Python网络自动化运维---SSH模块
  • 《HTML在网络安全中的多面应用:从防范攻击到安全审查》
  • Tarjan算法笔记
  • Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)
  • golang 在线词典
  • 【gin】gin中使用protbuf消息传输go案例
  • Rust Actix Web 项目实战教程 mysql redis swagger:构建用户管理系统