高并发负载均衡 | 网络协议原理

TCP/IP 与 OSI参考模型

TCP与OSI参考模型.jpg

OSI参考模型通信处理

分层通信.jpg

TCP与UDP的区分

TCP UDP
可靠性 可靠 不可靠
连接性 面向连接 无连接
报文 面向字节流 面向报文
效率 传输效率低 传输效率高
双工性 全双工 一对一、一对多、多对一、多对多
流量控制 滑动窗口
拥塞控制 慢开始、拥塞避免、快重传、快恢复
传输速度
应用场景 对效率要求低、对准确性要求高 对效率要求高、对准确性要求低
  • TCP用于在传输层有必要实现可靠传输的情况。由于它是面向有连接并具备顺序控制、重发控制等机制的,所以它可以为应用提供可靠传输。
  • UDP主要用于那些高速传输和实时性有较高要求的通信或广播通信。

TCP连接的建立与终止

TCP三次握手

TCP三次握手.jpg
  • 第一次握手:请求建立连接。客户端发送连接请求报文段,客户端进入SYN_SENT状态,等待服务器的确认;
  • 第二次握手:服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为J+1(Sequence Number+1);同时,自己还要发送SYN请求信息,将SYN位置为K,服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
  • 第三次握手:客户端收到服务器的SYN+ACK报文段,然后将Acknowledgment Number设置为K+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

TCP四次挥手

TCP四次挥手.jpg
  • 第一次分手:客户端向服务端发送一个FIN报文段;此时,客户端进入FIN_WAIT_1状态;这表示客户端没有数据要发送给服务端了;
  • 第二次分手:服务端收到了客户端发送的FIN报文段,服务端回一个ACK报文段,Acknowledgment Number为Sequence Number加1;客户端进入FIN_WAIT_2状态;服务端告诉客户端,我“同意”你的关闭请求;
  • 第三次分手:服务端向客户端发送FIN报文段,请求关闭连接,同时服务端进入LAST_ACK状态;
  • 第四次分手:客户端收到服务端发送的FIN报文段,向服务端发送ACK报文段,然后客户端进入TIME_WAIT状态;服务端收到客户端的ACK报文段以后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,客户端也可以关闭连接了。

你可能感兴趣的:(高并发负载均衡 | 网络协议原理)