傳輸協議簡介
文件/圖片/視頻? 都是一堆二進制數據
經過傳輸層來傳輸
這兩種協議有什么區別呢?
傳輸層的TCP/UDP三個步驟
TCP使用傳輸流程
1、三次握手
作用:三次握手就是建立連接的過程
2、傳輸數據
作用:建立連接完成之后,雙方可互發數據
3、四次揮手
作用:四次揮手就是關閉連接的過程
TCP協議--三次握手
closed 狀態
listen 狀態
ESTAB-LISHED 狀態
握手交互內容
SYN包
SYN +ACK包
ACK包
TCP協議--數據傳輸
MTU過大? ? ? TCP傳輸層分包? ? ? ?UDP網絡層分片
TCP/IP 協議棧中定義了MSS, 為的是提高網絡的性能,lwIP定義的MSS大小是1460
流量控制分兩種
1、停止等待協議??? ?2、滑動窗口協議
TCP引用了滑動窗口協議
滑動窗口協議
滑動窗口效果(發送方,窗口大小是4)
窗口相當于要同時并行的任務
開始并行窗口1234號同時發送4個包
發送1234號 后應答了1號包? 2345 有成了并行窗口? 1丟棄
發送2號 后應答了2號? 3456 又成了并行窗口? 2丟棄
滑動窗口的發送機 和接收機 如上一樣的原理,其實就是展示圖不同
發送緩沖區結構
回復確認結構
? ?組裝數據:根據序列號和長度重組數據
如果掉包呢
發了1234 包? 1號響應? 滑動到2345
再次發送2345包
然后34包也響應了,但是2號沒響應,此時TCP觸發重傳機制重新再發2號包;
因為此時也發送了5號包,接收方因為接收到345,而沒有2,接收方會全部丟棄2345包
TCP協議--四次揮手
TIME-WAIT 定時等待狀態
LAST-ACK 最后一次響應狀態
UDP協議
UDP協議
基于非連接
簡單封裝數據包
給到網卡發送
UDP特點 | 無連接 | 通訊前無需建立連接,無需在通信結束后斷開連接 |
不可靠 | 無法保證數據一定能完整有效的傳輸目標 | |
無流量,擁塞 | 數據連續性比完整性要求更高、對輕微的數據差錯不敏感 | |
廣播、組播 | 實現一對一(TCP)、一對多、多對多的數據傳輸 |
TCP協議 VS UDP協議
UDP協議 | 速度快、性能損耗少、資源占用少 |
TCP協議 | 穩定可靠、穩定性強、保證數據傳輸完整性 |