网站制作南宁,如何撰写一个网站规划建设方案,论坛类网站建站,哪家网站建设服务好啊三次握手四次挥手 写在前面1. 三次握手1.1 作用#xff1a; 为了在不可靠的信道上建立起可靠的连接#xff1b;1.2 建立过程1.3 面试提问 2. 四次挥手2.1 作用#xff1a;为了在不可靠的网络信道中进行可靠的连接断开确认2.2 断开过程2.3 面试提问 写在前面
三次握手建立连… 三次握手四次挥手 写在前面1. 三次握手1.1 作用 为了在不可靠的信道上建立起可靠的连接1.2 建立过程1.3 面试提问 2. 四次挥手2.1 作用为了在不可靠的网络信道中进行可靠的连接断开确认2.2 断开过程2.3 面试提问 写在前面
三次握手建立连接四次挥手断开连接 TCP协议里的标识 SYN Synchronization同步 ACKAcknowledgment确认 FINFinish结束 1. 三次握手
1.1 作用 为了在不可靠的信道上建立起可靠的连接
1.2 建立过程
当客户端向服务端发起连接请求时候
先发一包连接请求数据SYN包来询问能否与服务端建立连接这包数据我们叫做SYN包想和你同步如果对端同意连接就会回复一包SYNACK包确认同步客户端收到之后回复一包ACK包确认。
注自己的序号用对方的确认号 自己的确认号 用对方的序号1 1.3 面试提问
问题1为什么是三次握手而不是两次握手or四次握手 答 目的握手是为了确认双方的接收与发送能力是否正常 第一次握手客户端发送网络包服务端收到了。这样服务端就能得出结论客户端的发送能力、服务端的接收能力是正常的 第二次握手服务端发包客户端收到了。这样客户端就能得出结论服务端的接收、发送能力客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常 第三次握手客户端发包服务端收到了。这样服务端就能得出结论客户端的接收、发送能力正常服务器自己的发送、接收能力也正常 如果是两次握手服务端并不能确认客户端的接收能力是否正常而且为了防止已经失效的请求报文突然又传到服务器引起错误三次握手是两端建立连接的所需要的最小收发包的次数所以四次握手就没有必要了 问题2两次握手可能产生的问题 答假设采取两次握手客户端向服务端发起一个报文SYN1因为某些未知错误并未到达服务器在中间某个网络节点产生了滞留而为了建立连接客户端会重新发送一个SYN包我们称之为SYN2这次正常送达服务端并且回复SYNACK后建立连接这时阻塞的网络节点突然恢复把SYN1重新发给了服务端服务端就会误认为是客户端发起了新的连接
服务端认为是两个连接客户端认为是一个连接造成了状态不一致的问题 2. 四次挥手
握手之后就建立连接——连接建立好以后客户端就可以发送http请求——然后服务端响应内容 因为TCP协议是全双工的所以两端都可以发送关闭请求 2.1 作用为了在不可靠的网络信道中进行可靠的连接断开确认
2.2 断开过程
第一次挥手客户端发送FINACK确认结束第二次挥手服务端回复ACK确认因为服务端可能还存在未发送完毕的数据所以还需要等待数据全部发送完以后回复确认结束也就是第三次挥手第三次挥手服务端回复FINACK确认结束第四次挥手客户端回复ACK确认进入超时等待状态
2.3 面试提问
问题1为什么客户端在回复ACK包之后还需要等待超时时间 答 目的为了在不可靠的网络信道中进行可靠的连接断开确认
原因因为如果客户端在发送完最后一包ACK包就释放了连接的话一旦ACK包在网络中丢失服务端就会一直停留在最后确认状态若发送完最后一包ACK包再等待一段时间此时如果服务端没有收到ACK包就会重发FIN包客户端会响应这个FIN包且重发ACK包并刷新超时时间