计算机网络--2

TCP三次握手

计算机网络--2_第1张图片

TCP连接为什么需要三次握手

1. 由于网络情况复杂,可能会出现丢包现象,如果第二次握手的时候服务器就认为这个端口可用,然后一直开启,但是如果客户端未收到服务器发送的回复,那么就会重新发送请求,服务器就会重新开启一个端口连接,这样就会浪费一个端口。

三次握手每一次没收到报文会怎么样

第一次没收到,服务器不会有任何动作,客户端进入syn-send状态后,等待一段时间,发现没有回复,就会重复这个过程,直到发送次数大于最大重传次数

第二次没有收到,客户端继续重传,服务器会阻塞在accept()(syn-rcvd)状态,等待客户端发送ack报文

第三次没有收到,服务器重传,如果超过次数限制,那么accept()调用返回-1,同时向客户端发送RST报文,消除客户端的单方面连接

第二次握手传回的报文为什么syn = 1?

告诉客户端这响应的时客户端发送的报文

第三次握手可以携带数据吗

两次握手后客户端已经进入established状态,可以发送数据

note:第一次握手不允许发送数据,但是会消耗一个序号,服务器的返回也是

你可能感兴趣的:(计算机网络,服务器,运维)