iT邦幫忙

0

企業資料通訊Week6 (3) | Transport Layer_嬰兒食品版

現在進入了傳輸層,是OSI(Open Systems Interconnection )模型的第四層,送的那一端負責把應用層丟下來的Message 拆分成Segments並往下傳到Network Layer;而收到的那一端就負責重組(reassembles)然後往上傳到應用層。
協定上多使用TCP、UDP(其他還有很多)

- 提供服務:

  • Connection-oriented communication
  • Same order delivery
  • Reliability
  • Flow control
  • Congestion avoidance
  • Port Multiplexing

Transport Layer

Multiplexing 與 DeMultiplexing

參見:WIKI|Multiplexing
宅學習|多路複用

  • Multiplexing :在傳送出去之前,在header 有添加位置資訊這個動作,以致不至於混淆目的地。
  • DeMultiplexing:依著header上面的資訊使訊息能夠正確到達收件者那裏。
    https://ithelp.ithome.com.tw/upload/images/20211103/20135414Sr0JdqlP6c.png

我們需要IP 與 Port 才能把訊息送到正確的socket
https://ithelp.ithome.com.tw/upload/images/20211103/201354147cTWZbCbsW.png

TCP 與 UDP 在Multiplexing上的差別

TCP 比 UDP 複雜很多,TCP 提供可靠、有序的「雙向傳輸」,不僅會flow control(流量控制)、congestion control(阻塞控制)、connection setup(預先建立連線),此外還有報錯功能;而UDP就是unreliable, unordered
的「單向傳輸」,而且是Connectionless的(TCP是Connection-oriented)!
可以看看:我之前的文章

https://ithelp.ithome.com.tw/upload/images/20211103/201354147k8mbveDrl.png
A:connectionless是不事先安排將消息從一個端點發送到另一端點。


下圖是UDP的segment型式,前四個欄位為header部分,header每一欄位是16bits,這裡逐一介紹:
https://ithelp.ithome.com.tw/upload/images/20211103/20135414upM6hja15N.png

  • source port:來源的port號
  • destination port:目的地的port號
  • length:整個segment(含header & payload)的資料長度,以Bytes記。
    注:length 最小是8 Bytes(因為header本身就占8Bytes),最大是65535Bytes(因為length是16bit數字=>2^16,實際上是更小)
  • checksum:檢查錯誤用,使用2進位加法

下面那一大塊寫著"application data"的是主要內容,也叫(payload)

Checksum

稍微檢查有無錯誤的機制,在UDP中如果發現錯誤直接丟掉此封包,不會報錯(也會有漏網之魚)
此外,世界上還有很多檢查的算法,有的還有錯誤校正功能EX:哈明code
https://ithelp.ithome.com.tw/upload/images/20211103/201354146NuU2luIeb.png
參見:WIKI|Checksum
加完之後如果多一位,就把那多出的一位加在最右邊,如此得到"sum",
sum 做 flip(0變1,1便0) 就是checksum。

名詞解釋:flipped bits:傳送過程可能發生0變成1,1變成0的錯誤。
注:在UDP中,sender 與 receiver都會做相同的檢查。

稍微說一下TCP

之後TCP會詳細解釋,這裡稍微點一下。
因為TCP比較複雜,傳輸時需要4個數組(source IP 位址、source Port、目的地 IP 位址、目的地Port),
如此可以確認你開的socket是唯一的。
UDP 只要兩個:目的地 IP 位址、目的地Port
https://ithelp.ithome.com.tw/upload/images/20211103/20135414Eu4fxYycJo.png

下圖是多線程
https://ithelp.ithome.com.tw/upload/images/20211103/20135414B0DzoU7tdn.png

參見:
WIKI|傳輸層
Transport Layer


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言