乔拓云智能建站官网,苏醒wordpress主题,网站设计套用模板,设计师专业网站一、套接字
1、每一条TCP连接有两个端点#xff0c;TCP连接的端点叫做套接字#xff08;socket)或插口。
2、套接字#xff08;socket)(IP地址#xff1a;端口#xff09; 例如#xff1a;套接字 (socket)(192.168.170.1:80)。
二、TCP连接
1、建立连接时的三次“握手…一、套接字
1、每一条TCP连接有两个端点TCP连接的端点叫做套接字socket)或插口。
2、套接字socket)(IP地址端口 例如套接字 (socket)(192.168.170.1:80)。
二、TCP连接
1、建立连接时的三次“握手”如下图所示 (1)客户端的应用程序发送TCP连接请求报文把自己的状态告诉对方这个报文的TCP
首部SYN标记位是1ACK标记位为0序号(scq) 为x这个x被称为客户端的初始序列号
其值通常为0。发送出连接请求报文后客户端就处于SYN_SENT 状态。
(2)服务端收到客户端的TCP连接请求后发送确认连接报文将自己的状态告诉给客户端这个报文的TCP首部SYN标记位是1, ACK标记位为1确认号(ack) 为x1序号(seq)为yy为服务端的初始序列号。服务器端就处于SYN_RCVD状态。
(3)客户端收到连接请求确认报文后状态就变为ESTABLISHED,再次发送给服务器一个确认报文用于确认会话的建立。该报文SYN标记位为0,Ack标记位为1,确认号(ack)为y1。服务器端收到确认报文状态变为ESTABLISHED。
2、释放连接时的四次“握手”,如下图所示 1首先A和B都处于ESTABLISHED状态A的应用进程先向其TCP发出连接释放报文段并停止发送数据主动关闭TCP连接。A把连接释放报文段首部的FIN置1,其序号sequ,它等于前面已传送过的数据的最后一个字节的序号加1. 这时A进入FIN-WAIT-1 (终止等待1)状态等待B的确认。
2 B收到连接释放报文段后即发出确认确认号acku1,而这个报文段自己的序号是v。等于B前面已传送过的数据的最后一个字节的序号加1。然后B就进入CLOSE-WAIT (关闭等待)状态。因而从A到B这个方向的连接就释放了这时的TCP连接处于半关闭(half-close) 状态即A已经没有数据要发送了但若B发送数据A仍要接收。也就是说从B到A这个方向的连接并未关闭。这个状态可能会持续一些时间。
3A收到来自B的确认后就进入FINWAII-2 (终止等待2)状态等待B发出连接标放模文度营开已经没有坚向A发送的数据其应用进程就通知TCP释放连接这时B发出的连接邦放限文股必领星IN1必明重复发送上次已发送过的确认号ncku1以及B的序号w(在串美团状态目可能又发送了些数网)。 然后0就进入LAST-ACK (最后确认)状态等待A的确认。
4A在收到B的连接释放报文段后必须对此发出确认。在确认报文段中把ACK置1,确认号ackw1,而自己的序号是sequ1 (根据TCP标准前面发送过的FIN报文段要消耗一个序号)。然后进入到TIME-WAIT (时间等待)状态。请注意现在TCP连接还没有释放掉。必须经过时间等待计时器(TIME-WAIT timer)设置的时间2MSL后A才进入到CLOSED状态。时间MSL叫作最长报文段寿命(Maximum Segment Lifetime)建议MSL设为2min, 因此从A进入到TIME-WAIT状态后要经过4min才能进入到CLOSED状态才能开始建立下一个新的连接。但这完全是从工程上来考虑的对于现在的网络MSL2min 可能太长了因此TCP允许不同的实现可根据具体情况使用更小的MSL值。