Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 4.64 KB

网络.md

File metadata and controls

41 lines (32 loc) · 4.64 KB

TCP UDP

TCP/IP协议(一)网络基础知识 网络七层协议
https://www.cnblogs.com/wanghuaijun/p/10092930.html

  • TCP(Transmission Control Protocol 传输控制协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议,使用三次握手协议建立连接、四次挥手断开连接。面向连接意味着两个使用TCP的应用(通常是一个客户端和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用TCP。TCP 协议的作用是,保证数据通信的完整性和可靠性,防止丢包。TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),端口号拼接到IP地址即构成了套接字。
  • UDP(User Datagram Protocol 用户数据报协议):是OSI(Open System Interconnection 开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。
  • 区别:
    • TCP提供的是面向连接的、可靠的数据流传输;UDP提供的是非面向连接的、不可靠的数据流传输。
    • TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,按序到达;UDP尽最大努力交付,即不保证可靠交付。
    • TCP面向字节流;UDP面向报文。
    • TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信。
    • UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
    • TCP对系统资源要求较多,UDP对系统资源要求较少。TCP首部有20字节;UDP的首部只有8个字节。
    • TCP的逻辑通信信道是全双工的可靠信道;UDP的逻辑通信信道是不可靠信道。
    • 基于TCP的应用:HTTP、WebSocker、重要数据文件传输等常见
    • 基于UDP的应用:QQ等部分实时通信软件、视频/音频下载传输等。

三次握手,4次挥手

  • 三次握手
    • 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN(c)。此时客户端处于 SYN_Send状态。
    • 第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s),同时会把客户端的 ISN + 1 作为 ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_REVD的状态。
    • 第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 establised状态。
    • 服务器收到 ACK 报文之后,也处于 establised 状态,此时,双方以建立起了链接。
  • 四次挥手
    • 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于CLOSED_WAIT1状态。
    • 第二次握手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 + 1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT2状态。
    • 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK的状态。
    • 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态
    • 服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。

状态同步,帧同步

帧同步和状态同步该怎么选(上)
https://zhuanlan.zhihu.com/p/104932624

帧同步和状态同步
https://zhuanlan.zhihu.com/p/33898014