IOS知识简洁版

文章目录
  1. 1. HTTP三次握手、四次挥手

本文按总结IOS常用的知识点

HTTP三次握手、四次挥手

TCP是一种可靠的面向连接的协议,而UDP不是可靠的,或说是无连接的协议。

TCP 和UDP的区别:

  1. TCP的可靠性是强的,它是可靠的,连接性,是面向连接的,报文,是面向字节流的,效率是,传输效率低,双工性,全双工,流量控制是滑动窗口,拥塞控制是慢开始,拥塞避免,快重传,快恢复的,传输速度是慢的,应用场景是对效率要求低,对准确性要求高或者要求有连接的场景。
  2. UDP的不是可靠的,无连接的,面向报文的,传输效率高的,一对一,一对多,多对一,多对多,流量控制,无,拥塞控制,无,但是传输速度是快的,应用场景是对效率要求高,对准确性要求低的。

三次握手的过程:

  1. 第一次握手是在建立连接,客户端发送连接请求报文段,把标有SYN的数据包发给服务器端即为接收端。
  2. 第二次握手是服务器端即接收端收到客户端的SYN的报文段,同时发送标有SYN/ACK的数据包。
  3. 第三次握手是客户端收到服务器端的SYN/ACK的数据包后,向服务器端发送标有ACK的数据包。

四次挥手:

  1. 第一次挥手:客户端设置seq和 ACK ,向服务器发送一个 FIN=1报文段。此时,(第一次挥手,FIN=1,seq=u)客户端进入 FIN_WAIT 状态,表示客户端没有数据要发送给服务端了。
  2. 第二次挥手:服务端收到了客户端发送的 FIN 报文段,向客户端回了一个 ACK 报文段。
  3. 第三次挥手:服务端向客户端发送FIN 报文段,请求关闭连接,同时服务端进入 LAST_ACK 状态。
  4. 第四次挥手:客户端收到服务端发送的 FIN 报文段后,向服务端发送 ACK 报文段,然后客户端进入 TIME_WAIT 状态。服务端收到客户端的 ACK 报文段以后,就关闭连接。此时,客户端等待 2MSL(指一个片段在网络中最大的存活时间)后依然没有收到回复,则说明服务端已经正常关闭,这样客户端就可以关闭连接了。

参考链接: TCP的 “三次握手” 和“四次挥手”,到底是什么鬼?