3.2-復用和分用


多路復用/分用

接收端進行多路分用

傳輸層根據頭部信息將收到的Segment交給正確的Socket(不同進程)

發送端進行多路復用

從多個Socket接受數據,為每塊數據封裝上頭部信息,生成Segment,交給網絡層

分用如何工作

  • 主機接收到IP數據報(datagram)
    • 每個數據報攜帶源IP地址、目的IP地址
    • 每個數據報攜帶一個傳輸層的段(Segment)
    • 每個段攜帶源端口號和目的端口號
  • 主機收到Segment之后,傳輸層協議提取IP地址和端口號信息,將Segment導向相應的Socket
    • TCP做更多處理

image-分用如何工作

無連接分用

  • 利用端口號來創建Socket
DatagramSocket mySocket1 = new DatagramSocket(99111);
DatagramSocket mySocket2 = new DatagramSocket(99222);
  • UDP的Socket用二元組標識
    • 目的IP地址
    • 目的端口號
  • 主機收到UDP段后
    • 檢查段中的目的端口號
    • 將UDP段導向綁定在該端口號的Socket
  • 來自不同IP地址和/或源端口號的IP數據包被導向同一個Scoket

image-無連接分用

面向連接的分用

  • TCP的Socket用四元組標識
    • 源IP地址
    • 源端口號
    • 目的IP地址
    • 目的端口號
  • 接收端利用所有的四個值將Segment導向合適的Socket
  • 服務器可能同時支持多個TCP Socket
    • 每個Socket用自己的四元組標識
  • Web服務器為每個客戶端開不同的Socket

每個進程開啟一個Socket
image-面向連接的分用1

每個進程開啟多個線程,每個線程開啟一個Socket
image-面向連接的分用2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM