IT评测·应用市场-qidao123.com

标题: Linux--TCP协议 [打印本页]

作者: 罪恶克星    时间: 2024-8-10 10:49
标题: Linux--TCP协议
传输层协议TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,会对数据的传输举行一个具体的控制。
TCP协议段格式

TCP协议段格式是TCP协议在网络传输数据时所使用的结构单位:

源端口(Source Port)


目的端口(Destination Port)


序号(Sequence Number)


确认号(Acknowledgment Number)


数据偏移/首部长度(Data Offset/Header Length)


保留字段(Reserved)


标志位(Flags)


窗口巨细(Window Size)


校验和(Checksum)


紧急指针(Urgent Pointer)


选项(Options)


数据部分(Data)


ACK应答机制

ACK是一个标志位信号,是一种在计算机网络通信中常用简直认机制,重要用于确保数据的可靠传输,防止数据丢失或重复。

根本原理



ACK应答机制的作用


连担当理机制

三次握手

TCP连接建立时需要客户端与服务端之间通过"三次握手"来确认两边的发送和接收本领正常,从而建立可靠的连接。

第一次握手:客户端发送一个SYN(同步序列号)报文给服务器,并进入SYN_SENT状态,等候服务器确认。

第二次握手:服务器收到客户端的SYN报文后,发送一个SYN+ACK(同步序列号+确认)报文给客户端,以确认客户端的连接哀求,并同时发送本身的SYN报文以哀求与客户端建立连接。服务器进入SYN_RCVD(同步接收)状态。

第三次握手:客户端收到服务器的SYN+ACK报文后,向服务器发送一个ACK报文,以确认服务器的SYN报文。此时,客户端和服务器都进入ESTABLISHED(已建立连接)状态,表现连接建立成功,可以开始传输数据。

四次挥手

TCP断开连接时需要客户端和服务端之间通过四次挥手来确保两边都能正常释放资源并断开连接。

第一次挥手:客户端发送一个FIN(结束)报文给服务器,表现客户端盼望关闭连接。客户端进入FIN_WAIT_1状态,等候服务器应答。
第二次挥手:服务器收到客户端的FIN报文后,发送一个ACK报文给客户端,以确认收到客户端的关闭哀求。此时,客户端进入FIN_WAIT_2状态,服务器进入CLOSE_WAIT状态。
第三次挥手:服务器完成数据的传输后,发送一个FIN报文给客户端,表现服务器也盼望关闭连接。服务器进入LAST_ACK状态,等候客户端的应答。
第四次挥手:客户端收到服务器的FIN报文后,发送一个ACK报文给服务器,以确认收到服务器的关闭哀求。此时,客户端和服务器都进入CLOSED状态,表现连接已经完全断开。
TIME_WAIT状态

在之前测试中,

TIME_WAIT状态是TCP协议中的一个状态,表现一个连接已经被主动关闭方(通常是客户端)关闭,并且等候一段时间(通常为2倍的MSL,即最大报文段生存时间)以确保网络上没有任何耽误或重复数据包。在这个状态下,连接的端口仍然被保留,并且不能立刻重新使用。
   MSL是指一个IP数据包能在互联网上生存的最长时间,凌驾这个时间IP数据包将在网络中消散,在RFC 1122中建议为2分钟,TIME_WAIT状态一般维持在1到4分钟之间。
  TIME_WAIT状态的作用


CLOSE_WAIT状态

在我们之前写过的TCP套接字的服务器中:



以是要避免这种低级错误,如果监测出现这种错误,就是对应的fd没有close;
滑动窗口

滑动窗口是一种流量控制技能,允许发送方在无需等候每个数据段确认的环境下,持续发送多个数据段,从而提高数据传输服从。它通过动态调整窗口巨细来控制数据的发送速率,确保数据传输的高效和可靠。
其作用:

窗口结构与操作

TCP滑动窗口分为发送窗口和接收窗口两种。
发送窗口

接收窗口

工作原理




丢包重传

当TCP滑动窗口出现丢包时,TCP会接纳一系列策略来举行重传,以确保数据的完备性和可靠性。
超时重传(Timeout Retransmission)


快速重传(Fast Retransmission)


   根据确认序号的特点,当接收方在发送重复确认时,发送方在前两次收到重复确认应答时继续发送背面的数据,直到收到第三次重复确认,发送方再把之前丢包的数据段发送已往,而接收方应答会直策应答到末了一个确认序号(表现之前的数据都已经接收到了)
  

SACK(Selective Acknowledgment)


耽误应答

耽误应答是指TCP接收端在收到发送端发送的数据后,并不立刻返回ACK(应答报文)给发送端,而是等候一段时间(这个时间由步伐员或体系参数设定)后再发送ACK。
这样做的目的是为了提高传输服从,由于在这段时间内,接收端的接收缓冲区可能会释放一部分空间,从而使得发送端在收到ACK后能够发送更多的数据,即增大发送窗口巨细,从而提高网络吞吐量。
捎带应答

捎带应答是指TCP接收端在返回给发送端的ACK(应答报文)中,除了包含确认序号外,还“捎带”了其他需要发送给发送端的数据或信息。这样做的重要目的是减少网络中的数据包数量,降低通信成本,从而提高传输服从。
例如三次握手中,接收方确认应答后还带上了SYN同步信号发给发送方;
粘包题目

粘包题目是指发送方发送的若干数据包到达接收方时粘成一个数据包,或者接收方接收到的数据包被错误地合并,使得接收方无法正确解析出原始发送的数据包界限
产生缘故原由


办理方法



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4