如何自学网站后台,html5 网站,网页版微信二维码一直失效,郑州网站推广优化在前面的文章中我们了解到http是基于TCP/IP协议的#xff0c;这篇文章我们来了解一下TCP/IP。
一、TCP与UDP
1、UDP 基于非连接。类似于写信#xff0c;不能保证对方能不能接收到#xff0c;接收到的内容是否完整#xff0c;顺序是否正确。 优缺点#xff1a;性能损耗小… 在前面的文章中我们了解到http是基于TCP/IP协议的这篇文章我们来了解一下TCP/IP。
一、TCP与UDP
1、UDP 基于非连接。类似于写信不能保证对方能不能接收到接收到的内容是否完整顺序是否正确。 优缺点性能损耗小占用资源少稳定弱速度块。
2、TCP 基于连接类似与通话能够确认对方能够准确的接收到发送的信息。 优缺点数据传输可靠支持全双工建立时间和消耗资源过大有延迟效率相对较低。
二、TCP建立连接和断开连接
1、三次握手建立连接
1作用 三次握手是TCP用来建立连接的一种机制确保双方可以正常通信。每一步都需要对方的确认才能进行下一步从而确保双方都同意建立连接并且状态得到正确同步。这样可以减少因网络延迟、丢包等问题导致的连接建立失败或错误。
2建立过程 第一次握手客户端发送SYN包客户端向服务器发送一个SYN同步包其中包含一个初始序列号ISN作为起始值。此时客户端处于SYN_SENT同步已发送状态。第二次握手服务器回复SYN-ACK包服务器收到客户端的SYN包后会生成自己的初始序列号并对客户端的SYN进行确认。服务器构造一个SYN-ACK同步-确认包将自己的初始序列号作为起始值同时也将确认号设置为客户端初始序列号加一。然后服务器发送这个SYN-ACK包给客户端。此时服务器处于SYN_RCVD同步已接收状态。第三次握手客户端发送ACK包客户端收到服务器的SYN-ACK包后确认服务器的初始序列号和确认号并构造一个ACK确认包将确认号设置为服务器初始序列号加一。客户端发送这个ACK包给服务器。此时客户端处于ESTABLISHED已建立连接状态服务器收到ACK包后也转入ESTABLISHED状态。三次握手完成客户端和服务器正式建立了TCP连接可以进行数据的传输。
3注意事项 ①握手过程中传送的包里不包含数据三次握手完毕后客户端与服务器才正式开始传送数据。理想状态下TCP连接一旦建立在通信双方中的任何一方主动关闭连接之前TCP 连接都将被一直保持下去。 ②如果已经建立了连接但是客户端突然出现故障了怎么办 TCP协议引入了超时机制。TCP为每个连接都设置了一个定时器用于在一定时间内检测连接是否还处于活动状态。如果在规定时间内没有收到客户端的数据则服务器认为客户端已经断开连接并会关闭连接。
4为什么不能用两次握手
确保双方都愿意建立连接在两次握手的情况下客户端只发送一次连接请求但服务器无法确认客户端是否真正希望建立连接因为可能只是一个错误的或者重复的请求。通过三次握手服务器可以回复确认信号来确认客户端真正的通信意愿。防止已失效的连接请求影响如果使用两次握手可能会遇到客户端已经发送了一个连接请求在网络中滞留了一段时间后终于到达服务器导致服务器误认为客户端希望建立连接。而通过三次握手服务器可以得到客户端最新的连接请求并且可以排除掉之前的已失效的连接请求。同步双方的初始序列号在TCP连接中每个连接都有一个初始序列号(ISN)用于标识数据流的起始位置。通过三次握手双方可以交换彼此的初始序列号从而实现双方序列号的同步确保后续传输的数据能够正确地按序组装和重组。
2、四次挥手断开连接
1作用 是用于关闭TCP连接的过程。它是在双方确认不再需要通信时进行连接释放和资源回收的步骤。在这个过程中双方都需要发送FIN和ACK两个标志位的报文段以确保双方都知道对方已经确认了关闭连接的请求。最后当双方都收到了对方发送的ACK报文段后连接就顺利关闭并且可以回收连接所占用的资源。
2建立过程 第一次挥手客户端发送连接释放请求FIN当客户端确定不再发送数据时它会发送一个带有FIN标志位的报文段给服务器表示请求关闭连接。此时客户端进入FIN-WAIT-1终止等待1状态。第二次挥手服务器回复确认客户端的请求ACK服务器收到客户端的连接释放请求后会发送一个带有ACK标志位的报文段给客户端确认收到了客户端的请求。服务端就进入了CLOSE-WAIT 关闭等待状态。第三次挥手服务器发送连接释放请求FIN客户端接收到服务器端的确认请求后客户端就会进入FIN-WAIT-2终止等待2状态等待服务器发送连接释放报文服务器将最后的数据发送完毕后就向客户端发送连接释放报文服务器就进入了LAST-ACK最后确认状态等待客户端的确认。第四次挥手客户端回复确认服务器的请求ACK客户端收到服务器的连接释放报文后必须发出确认ACK1ackw1而自己的序列号是sequ1此时客户端就进入了TIME-WAIT时间等待状态但此时TCP连接还未终止必须要经过2MSL后最长报文寿命客户端才会进入CLOSED关闭状态服务器端接收到确认报文后会立即进入CLOSED关闭状态到这里TCP连接就断开了四次挥手完成
3注意事项 为什么客户端要等待2MSL 确保连接彻底关闭并在此期间处理延迟报文段和防止端口冲突从而保证网络通信的可靠性和稳定性。