• 多路复用和多路分用


    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服务器

    这里写图片描述

  • 相关阅读:
    965. 单值二叉树
    面试题 04.09. 二叉搜索树序列
    99. 恢复二叉搜索树
    98. 验证二叉搜索树
    centos6版本下的Python2.6升级到2.7
    操作MySQL-数据库的安装及Pycharm模块的导入
    操作微信-itchat库的安装
    2018中科大hackergame
    png图片IDAT块异常
    2018网鼎杯misc
  • 原文地址:https://www.cnblogs.com/likui360/p/13436916.html
Copyright © 2020-2023  润新知