多路復用/分用
接收端進行多路分用
傳輸層根據頭部信息將收到的Segment交給正確的Socket(不同進程)
發送端進行多路復用
從多個Socket接受數據,為每塊數據封裝上頭部信息,生成Segment,交給網絡層
分用如何工作
- 主機接收到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數據包被導向同一個Scoket
面向連接的分用
- TCP的Socket用四元組標識
- 源IP地址
- 源端口號
- 目的IP地址
- 目的端口號
- 接收端利用所有的四個值將Segment導向合適的Socket
- 服務器可能同時支持多個TCP Socket
- 每個Socket用自己的四元組標識
- Web服務器為每個客戶端開不同的Socket
每個進程開啟一個Socket
每個進程開啟多個線程,每個線程開啟一個Socket