TCP 和 UDP 有什么區別?
TCP提供了可靠、面向連接的傳輸,適用于需要數據完整性和順序的場景。
UDP提供了更輕量、面向報文的傳輸,適用于實時性要求高的場景。
特性 | TCP | UDP |
---|---|---|
連接方式 | 面向連接 | 無連接 |
可靠性 | 提供可靠性,保證數據按順序到達 | 不可靠,不保證順序或完整性 |
流量控制/擁塞控制 | 提供流量控制和擁塞控制 | 沒有流量控制和擁塞控制 |
順序保證 | 保證數據順序 | 不保證數據順序 |
頭部大小 | 較大(20字節及以上) | 較小(8字節) |
性能 | 較低,延遲大 | 較高,延遲小 |
數據傳輸模式 | 字節流傳輸模式 | 數據報傳輸模式 |
適用場景 | 文件傳輸、Web、郵件等需要可靠性的應用 | 實時通訊、語音、視頻、游戲等高性能要求應用 |
說說 TCP 的三次握手?
- 客戶首先發送一個SYN(同步序列編號)消息給服務器
- 服務器收到后回復一個SYN-ACK(同步序列編號-確認)消息
- 最后客戶端再發送一個ACK(確認)消息確認服務器已經收到SYN-ACK消息
- 完成三次握手,建立可靠的TCP連接。
TCP 是用來解決什么問題?
TCP(Transmission Control Protocol)通過提供可靠傳輸、流量控制、擁塞控制和連接管理,解決了數據在不可靠的IP網絡上的傳輸問題:
- 可靠性傳輸: TCP確保數據包在網絡傳輸過程中不丟失、不重復,并且按順序到達。通過確認(ACK)、重傳機制以及序列號,TCP能夠保證數據在不可靠的IP網絡上可靠傳輸。
- 流量控制: TCP通過滑動窗口機制調節發送方的數據發送速率,防止接收方因為處理能力有限而被數據流淹沒。
- 擁塞控制: TCP通過擁塞避免算法(如慢啟動、擁塞避免、快速重傳和快速恢復)來防止網絡過載,確保網絡資源的公平使用和穩定性。
- 連接管理: TCP是面向連接的協議,采用三次握手(建立連接)和四次揮手(斷開連接)機制來管理會話,確保通信的可靠性和狀態的同步。