珠海网站建设 金碟,空间设计和室内设计的区别,网页制作常用软件,网站首页几天做完TCP三次握手
任何基于TCP的应用#xff0c;在发送数据之前#xff0c;都需要由TCP进行“三次握手”建立连接示意图 第一次握手#xff1a;客户端PC发送一个SYN位置1#xff08;SYN1代表请求服务端建立连接#xff09;的TCP报文发送给要建立TCP连接的Server#xff0c;此…TCP三次握手
任何基于TCP的应用在发送数据之前都需要由TCP进行“三次握手”建立连接示意图 第一次握手客户端PC发送一个SYN位置1SYN1代表请求服务端建立连接的TCP报文发送给要建立TCP连接的Server此时Seq序列号值为a随机值由于没有收到Server发来的任何报文所以Ack确认序列号为0 第二次握手Server收到SYN标置位报文后会对报文进行应答发给PC的应答报文不仅有SYN置位此时Seq的序列号值b为随机值还会有ACK置位来说明已经收到PC发送的报文因为PC1发来SYN置位消耗了一个序号为a的TCP数据因此Server收到后Ack的序列确认号要使用a1来进行确认。 发送的确认报文段包含以下字段 SYN1,同意建立新连接SYN置位 Seqb, 服务端给返回确认的报文加上自己的序列号 Ack_seqa1, 表示已经收到seqa的报文段并期望后续接收a1序号的报文 ACK1 确认收到请求报文ACK置位 第三次握手客户端收到服务器的主动请求建立连接和确认报文时客户端无需应答服务器的确认报文但需要对服务器主动请求做应答所以只是ACK置位SYN不置位Seqa1(Server期望的序列号值Ack_seqb1( TCP连接建立 注意ACK标志位和ACK确认序列号是两码事不要混淆 抓包分析 第一次握手SYN置位Seq2755731984 第二次握手SYN、ACK置位表示收到了客户端发来的请求所以Ack确认序列号27557319841同时发送自身的序列号Seq3747234003 第三次握手ACK置位Ack的确认序列号37472340031
握手成功后服务器12.2开始发送数据共发送了四次第一、二次都是9字节第三、四次分别是28字节和11字节所以总共发了99281157字节 当客户端12.1收到服务器发送的数据后回复一个Ack确认报文予以确认发送ACK为571 四次挥手
当数据传输完成TCP需要通过“四次挥手”机制断开TCP连接释放系统资源。 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段PC2收到PC1发来的FIN置位的TCP报文后会回复一个ACK置位的TCP报文。若PC2也没有需要发送的数据则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。PC1收到FIN置位的TCP报文回复ACK报文TCP双向连接断开。
TCP支持全双工模式传输数据这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前TCP通过三次握手建立的实际上是两个方向的连接因此在传输完毕后两个方向的连接必须都关闭。