第二章 傳輸層 TCP UDP和SCTP 1

2021-07-07 07:44:21 字數 1450 閱讀 1604

1. tcp/ip協議族總圖

ipv4   網際協議版本4(internet protocol version 4)。使用32位位址。ipv4給tcp、udp、sctp、icmp和igmp提供分組遞送服務。

ipv6   網際協議版本6(internet protocol version 6)。使用128位位址。給tcp、udp、sctp和icmpv6提供分組遞送服務。

tcp   傳輸控制協議(transmission control protocol)。是乙個面向連線的協議,為使用者程序提供可靠的全雙工位元組流。tcp套接字是一種流套接字(stream socket)。tcp關心確認、超時和重傳之類的細節。

udp   使用者資料報協議(user datagram protocol)。是乙個無連線協議。upd套接字是一種資料報套接字(datagram socket)。udp資料報不能保證最終到達它們的目的地。

2. 使用者資料報協議(udp)

udp是乙個簡單的傳輸層協議。應用程序往乙個udp套接字寫入乙個訊息,該訊息隨後被封裝到乙個udp資料報,該udp資料報進而被封裝到乙個ip資料報,然後傳送到目的地。udp不保證udp資料報會到達其最終目的地,不保證個個資料報的先後順序跨網路後保持不變,也不保證每個資料報只到達一次。

使用udp進行網路程式設計所遇到的問題是它缺乏可靠性。如果乙個資料報到達了其最終目的地,但是校驗和檢測發現有錯誤,或者改資料報在網路傳輸途中被丟棄了,它就無法被投遞給udp套接字,也不會被遠端自動重傳。如果想要確保乙個資料報到達其目的地,可以往應用程式中添置一大堆的特性:來自對端的確認、本端的超時與重傳等。

每個udp資料報都有乙個長度。如果乙個資料報正確地到達其目的地,那麼該資料報的長度將隨資料一道傳遞給接收端的應用程式。

udp提供無連線的服務,因為udp客戶與伺服器之間不比存在任何長期的關係。乙個udp客戶可以建立乙個套接字並傳送乙個資料給乙個給定的伺服器,然後理解用同一套接字傳送給另乙個資料報給另乙個伺服器。同樣地,乙個udp伺服器可以用同乙個udp套接字從若干不同的客戶接受資料報,每個客戶乙個資料報。

3. 傳輸控制協議(tcp)

由tcp向應用程序提供的服務不同於由udp提供的服務。

首先,tcp提供客戶與伺服器之間的鏈結,tcp客戶先於某個給定的伺服器建立乙個連線,再跨該連線與那個伺服器交換資料,然後終止這個連線。

其次,tcp還提供了可靠性。當乙個tcp向另一端傳送資料時,它要求對端返回乙個確認,如果沒有收到確認,tcp就自動重傳資料並等待更長時間。在資料重傳失敗後,tcp才放棄,如此傳送資料上所花的總時間一般為4~10分鐘(依賴於具體實現)

再次,tco提供流量控制。tcp總是告知對端在任何時刻它一次能夠從對端接受多少位元組的資料,這稱為通告視窗。在任何時間,該視窗指出接收快取區中當前可用的空間量,從而確保端傳送的資料不會使接收緩衝區溢位。

第二章傳輸層 TCP UDP 和SCTP

第二章傳輸層 tcp udp 和sctp udp是乙個簡單的 不可靠的傳輸協議,而tcp是乙個複雜 可靠的位元組流協議。icmp 含義 icmp是 internet control message protocol internet控制報文協議。它是tcp ip協議族的乙個子協議,用於在ip主機 路...

unp 第二章 傳輸層 TCP UDP SCTP

udp 應用程序將訊息寫入udp套接字,訊息被封裝成udp資料報,該資料報進而封裝到乙個ip資料報,傳送到目的地 1 不保證資料報會到達最終目的地 2 不保證各個資料報的先後順序跨網路後保持不變 3 不保證資料報只到達一次 4 udp資料報都有乙個長度 5 無連線的服務 6 udp避免了tcp的連線...

傳輸層和TCP UDP

層傳輸層 定義了一些傳輸資料的協議和埠號 www埠80等 如 tcp 傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料 udp 使用者資料報協議,與tcp特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如qq聊天資料就是通過這種方式傳輸的 主要是將從下層接收的資料進行分...