传输层(上)

传输层服务

传输层服务和协议

image.png

传输层 VS 网络层

  • 网络层:提供主机之间的逻辑通信机制
  • 传输层:提供应用进程之间的逻辑通信机制
    • 位于网络之上
    • 依赖于网络层服务
    • 对于网络层服务进行(可能的)增强

类比:12个孩子给12个孩子发信

  • 应用进程 = 孩子
  • 应用消息 = 信封里的信
  • 主机 = 房子
  • 传输层协议 = 李雷和韩梅梅
  • 网络层协议 = 邮政服务

Internet传输层协议

  • 可靠、按序的交付服务(TCP)
    • 拥塞控制
    • 流量控制
    • 连接建立
  • 不可靠的交付服务(UDP)
    • 基于”尽力而为(Best-effort)“的网络层,没有做(可靠性方面的)扩展
  • 两种服务均不保证
    • 延迟
    • 带宽

复用和分用

Why

如果某层的一个协议对应直接上层的多个协议/实体,则需要多路复用/分用。

image.png

分用如何工作?

  • 主机接收到IP数据报(datagram)
    • 每个数据报携带源IP地址、目的IP地址
    • 每个数据报携带一个传输层的段(Segment)
      • image.png
    • 每个段携带源端口号和目的端口号
  • 主机收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导向相应的Socket
    • TCP做更多处理

无连接分用

image.png

image.png

面向连接的分用

image.png

image.png

多线程Web服务器

image.png

无连接传输协议—UDP

UDP:User Datagram Protocol

  • 基于IP协议
    • 复用/分用
    • 简单的错误校验
  • ”Best effort“服务,UDP段可能
    • 丢失
    • 非按序到达
  • 无连接
    • UDP发送方和接受方之间不需要握手
    • 每个UDP的段处理独立于其他段

UDP为什么存在?

  • 无需建立连接(减少延迟)
  • 实现简单:无需维持连接状态
  • 头部开销少
  • 没有拥塞控制:应用可以更好地控制发送时间和速率
  • 常用于流媒体应用
    • 容忍丢失
    • 速率敏感
  • UDP还用于
    • DNS
    • SNMP
  • 在UDP上实现可靠数据传输
    • 在应用层增加可靠性机制
    • 应用特定的错误恢复机制

image.png

UDP校验和(checksum)

image.png

可靠数据传输原理

可靠数据传输协议

基本结构:接口

image.png

Rdt 2.0 -> Rdt 2.1 -> Rdt3.0

Rdt 3.0性能

image.png

滑动窗口协议

image.png

GBN(Go-Back-N协议)

SR(Selective Repeat协议)