UDP,TCP,SCTP區別
UDP:簡單的、不可靠的、無連線的、提供訊息邊界的資料報協議
TCP:複雜的、可靠的、面向連線的、無訊息邊界的位元組流協議
SCTP:可靠的、面向連線的,流控制傳輸協議,提供訊息邊界、傳輸級別多宿支援以及線頭阻塞減少到最小的一種方法
使用者資料包協議(UDP):
1)不可靠:不保證UDP資料報會到達最終目的地,不保證各個資料包的先後順序跨網路後保持不變,也不保證每個資料報只到達一次;
如果一個數據報到達了其最終目的地,但校驗和檢測發現有錯誤,或者資料報在網路傳輸途中被丟棄了,就無法投遞給UDP套接字,也不會被源端自動重傳;
3)提供訊息邊界:每個資料報都有一個長度。如果一個數據報正確地到達目的地,那麼該資料報的長度將隨資料一道傳遞給接收端應用程序;
4)提供無連線服務:比如,一個UDP客戶可以建立一個套接字併發送一個數據報給一個給定的伺服器,然後立即用同一個套接字傳送另一個數據報給另一個伺服器。同樣的,一個UDP伺服器可以用同一個UDP套接字從若干個不同的客戶接收資料報,每個客戶一個數據報。
傳輸控制協議(TCP)
1)面向連線:TCP客戶先於某個給定的伺服器建立一個連線,再跨該連線與那個伺服器交換資料,然後終止這個連線;
2)可靠的:當TCP向另一端傳送資料時,它要求對端返回一個確認。如果沒有收到確認,TCP就自動重傳資料並等待更長時間。在數次重傳失敗後,TCP才放棄,如此嘗試傳送資料上所花的總時間一般為4-10分鐘(依賴於具體實現);
3)含有用於動態估算客戶和伺服器之間的往返時間(RTT)的演算法;
4)通過給其中每個位元組關聯一個序列號對所傳送的資料進行排序;
5)提供流量控制。總是告知對端在任何時刻它一次能夠從對端接收多少位元組的資料,這稱為通過視窗;
6)連線時全雙工的;
流控制傳輸協議(SCTP)
1)在客戶和伺服器之間提供關聯,並像TCP那樣給應用提供可靠性、排序、流量控制以及全雙工的資料傳送;
2)一個關聯指代兩個系統之間的一次通訊,它可能因為SCTP支援多宿而設計不止兩個地址;
3)與TCP不同的是,SCTP是面向訊息的。它提供各個記錄的按序遞送服務;
4)與UDP一樣,有傳送端寫入的每條記錄的長度隨資料一道傳遞給接收端應用;
5)能夠在所連線的端點之間提供多個流,每個流各自可靠第按序遞送訊息;
6)提供多宿性,使得單個SCTP端點能夠支援多個IP地址;