美国服务器TCP协议的介绍

美国服务器用户有咨询美联科技小编有关 TCP 协议的内容,所以今天小编就来介绍下 TCP 协议。 TCP 传输控制协议是一种面向连接的、基于 IP 的可靠的传输层协议。美国服务器 TCP 协议有

美国服务器TCP协议的介绍

来源:美国服务器 作者:美联科技小编Zoe 浏览量:172
2020-02-07
0

美国服务器用户有咨询美联科技小编有关TCP协议的内容,所以今天小编就来介绍下TCP协议。TCP传输控制协议是一种面向连接的、基于IP的可靠的传输层协议。美国服务器TCP协议有6种标示:SYN/建立联机、ACK/确认、PSH/传送、FIN/结束、RST/重置、以及URG/紧急。

美国服务器TCP协议的三次握手:

第一次握手:客户端向服务器发送请求报文,这时报文首部中的同部位SYN=1,并生成一个随机序列值seq=n。客户端进入syn-sent同步已发送状态,等待服务器确认。

第二次握手:TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1SYN=1,确认号ACK=n+1,同时也随机生成一个seq=m,此时美国服务器主机进入SYN-RCVD同步收到状态。

第三次握手:TCP客户端进程收到确认后,还要向美国服务器主机给出确认。确认报文的ACK=1ack=m+1

三次握手的原因:

如果端口client发送了一个请求连接的报文,但是网络不好,这个请求没有立即达到服务端,客户端没有收到美国服务器主机的确认消息后,任务该请求报文已失效了,但是过了一会之后server收到报文,还是会像client发送确认的报文,表示同意连接。如果这里不用三次握手,那么只要server发出确认报文,新的连接就建立了,但其实这个请求client已经任务失效了,不会理睬server的确认信息,也不会向美国服务器主机发出确认的请求,但是server的请求已经建立了,并一直等待client的数据,这样会浪费server的资源,采用三次握手就是为了防止这种情况的发生,server会因为收不到确认的报文,而不会建立连接。

美国服务器TCP协议的三次握手抓包:

1)使用nc -l localhost 8088监听8088端口;

2)客户端使用nc -v localhost 8088连接8088端口;

3)再开个终端使用 tcpdump -i lo -vv -nnn tcp port 8088 抓包8088端口tcp连接。

美国服务器TCP协议的四次挥手:

第一次挥手:TCP client发送一个FIN ,用来关闭到服务端的连接,client进入FIN_WAIT_1状态。client进程发出连接释放报文,并且停止发送数据。释放报文首部,FIN=1,其序列号为seq=x

第二次挥手:TCP server 收到FIN 后,发送一个ACK 确认,server进入CLOSE_WAIT状态,客户端收到ACK后会进入FIN_WAIT_2状态这时候处于半关闭状态,即客户端已经没有数据要发送了,但是美国服务器主机若发送数据,客户端依然要接受。

第三次挥手:TCP server 发送一个FIN,用来关闭serverclient的连接,server进入LAST_ACK状态。美国服务器主机将最后的数据发送完毕。

第四次挥手:TCP client收到FIN后,client进入TIME_WAIT状态,接着发送一个ACKserverserver进入CLOSED状态TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

四次挥手的原因:

终端为了确保数据能够完全输出,关闭连接时,当收到主动方的FIN报文通知时,它仅仅表示主动方是没有数据需要发送了,但是被动方可能还需要发送数据,所以不会马上关闭SOCKET。于是被动方只发送ACK确认报文,继续发送一些数据给主动方,然后再发送FIN报文,此时就可以关闭连接了。

关注美联科技,了解更多IDC资讯!

部分文章来源与网络,若有侵权请联系站长删除!