多路復用和多路分用


1 多路復用/分用

如果某層的一個協議對應直接上層的多個協議/實體,則需要復用/分用。

這里寫圖片描述

2 分用如何工作?

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

這里寫圖片描述

無連接分用

  • 利用端口號創建Socket

    DatagramSocket mySocket1 = new DatagramSocket(99111);
    DatagramSocket mySocket2 = new DatagramSocket(99222);

  • UDP的Socket用二元組標識 (目的IP地址,目的端口號)

  • 主機收到UDP段后
    • 檢查段中的目的端口號
    • 將UDP段導向綁定在該端口號的Socket
  • 來自不同源IP地址和/或源端口號的IP數據包被導向同一個Socket

這里寫圖片描述

面向連接的分用

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

這里寫圖片描述

面向連接的分用:多線程Web服務器

這里寫圖片描述


免責聲明!

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



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