傳輸層的複用和解複用

複用和解複用

  • 將端到端的網絡層協議擴展到進程到進程的傳輸層協議稱爲複用和解複用。複用和解複用是所有計算機網絡都需要的
  • 在目的端主機上,傳輸層將段中的數據傳送給相應的進程中。一個進程可以有一個或多個socket,在接收主機中,傳輸層並不是直接將數據傳送給一個進程,而是傳送給一箇中間socket,因爲在每個時刻都有多個socket在接收端主機中,每個socket都有一個唯一的識別碼。
  • 每個傳輸層段中都有一組信息,接收端主機傳輸層檢查這些信息,將這些段直接傳送給相應的socket,這個過程稱爲解複用 。在源端主機中,從不同的socket中將數據片收集起來,加上頭部信息封裝成段,並且將段傳送給網絡層稱爲複用
  • 複用需要兩個條件:
    • socket有唯一識別碼
    • 每個段都有一個特殊的域用來表明這個段被傳送給哪個socket

這兩個特殊的域別成爲源端口號目的端口號。每個端口號都是16位整數,從0-65535,其中0-1023是知名端口號,被一些熟知的應用佔用

無連接的複用和解複用

一般,客戶端應用讓傳輸層自動分配端口號,而服務器端應用需要分配一個指定的端口號。UDP socket需要兩元組(目的主機IP地址和目的端口號)
假定一個進程在主機A中,使用UDP端口號1234,箱發送數據到主機B上的進程上,該進程的UDP端口號爲5678。那麼主機A的傳輸層創建一個傳輸層段,包好應用數據,源端口號和目的端口號,然後將這個段傳送給網絡層,網絡層將這些段封裝成IP數據報提供盡最大努力傳輸,如果這個段到達主機B,傳輸層將檢查段中的目的端口號,並將它送往端口號爲5678的socket中。

  • 段中源端口號的作用是,當主機B需要向主機A返回信息時,這個源端口號就作爲返回地址

面向連接的複用和解複用

TCP socket需要四元組(源IP地址,源端口號,目的IP地址,目的端口號),兩個源IP地址不同的TCP段到達目的主機,將被送往不同的socket中
TCP連接中,傳輸層段在目的主機中,根據這四個值進行解複用
TCP通信過程:

  • 服務器端有一個歡迎socket,等待從客戶端來的連接建立請求
  • TCP客戶端建立一個socket,並將這個socket與服務器相連
  • 一個連接建立請求就是第一個TCP段,包含目的端口號和特殊的連接建立位(頭部),也包含源端口號
  • 當服務器收到連接建立請求,就創建一個專門的通信socket負責這兩個進程的通信
  • 接下來兩個進程就可以相互通信了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章