1. 1. 端口号
  2. 2. UDP
    1. 2.1. 主要特点:
    2. 2.2. UDP用户数据报构成
    3. 2.3. 纠错用的伪首部
  3. 3. TCP
    1. 3.1. 理想的可靠网络和传输,在不可靠网络实现可靠传输的原理
    2. 3.2. TCP 除了实现可靠传输,还增加的其他功能
    3. 3.3. 报文结构
    4. 3.4. 滑动窗口(连续ARQ协议、实现可靠传输)
      1. 3.4.1. 发送窗口和接收窗口的滑动机制
      2. 3.4.2. 确认、延迟确认和捎带确认,选择确认(优化不按序到达的分组确认)
      3. 3.4.3. 超时重传时间的选择(指出优化的部分)
    5. 3.5. 流量控制(窗口大小控制,传输速率控制之“把事情搞大”)
    6. 3.6. 拥塞控制
      1. 3.6.1. 拥塞控制和流量控制的区别(出发点,影响面)
      2. 3.6.2. 算法
        1. 3.6.2.1. 慢开始 + 拥塞避免(指数增加+加法增加+乘法减小)
        2. 3.6.2.2. 快重传 + 快恢复
      3. 3.6.3. 结合流量控制的最终的发送窗口大小
      4. 3.6.4. RED 随机早期检测(网络层避免全局同步问题)
    7. 3.7. 连接管理

运输层是整个网络体系结构中的关键层次之一,其中有以下几个概念必须弄清楚:

  1. 运输层为相互通信的应用进程提供逻辑通信
    逻辑通信
  2. 端口和套接字的意义
    跨操作系统的进程间通信终点,不依赖于具体程序。程序未运行也可以使用,端点就在那里。
  3. 无连接的UDP 的特点,后面详述
  4. 面向连接的TCP 的特点,后面详述
  5. 在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议,后面详述
  6. TCP 的滑动窗口、流量控制、拥塞控制和连接管理(还有确认与重传、计时器),后面详述

端口号

熟知端口0-1023,登记端口1024-49151,客户端口49152-65535.

UDP

在IP的基础上增加 分用复用(端口机制)、差错检测(伪首部和检验和)。

主要特点:

  • 无连接
  • 尽最大努力交付但不保证可靠交付
  • 面向报文(无拆分),所以应用程序必须选择好合适大小的报文,以避免过长或过段带来的性能问题或性能浪费。(TCP就是典型的智能拆分传送,程序可以不太关心发送的数据长度)

    UDP用户数据报构成

    两个字段:8字节首部+数据。
    UDP构成

    纠错用的伪首部

    既不向上,也不向下传递,只在差错检测的时候临时生成使用,用完就丢弃。

TCP

理想的可靠网络和传输,在不可靠网络实现可靠传输的原理

理想的传输条件:(1)传输信道不产生差错,(2)不管发送方发多快,接收方都处理得过来。只要符合这两个条件,不需要任何措施就可以可靠传输。
然而理想是丰满的,现实是骨感的,并不存在这么美好的传输条件。在现实中要想可靠地传输,我们得耍点手段:

  1. 用停止等待协议(差错检测、ARQ确认与自动重传)来解决(1)问题。
  2. 用流量控制通知窗口解决(2)。
    到这里,已经简陋地实现了可靠传输。但是跟TCP还是有点差距。

    TCP 除了实现可靠传输,还增加的其他功能

  3. 滑动窗口
  4. 基于滑动窗口的连续ARQ
  5. 拥塞控制

    报文结构

    TCP构成

    滑动窗口(连续ARQ协议、实现可靠传输)

    发送窗口和接收窗口的滑动机制

    确认、延迟确认和捎带确认,选择确认(优化不按序到达的分组确认)

    超时重传时间的选择(指出优化的部分)

  6. 往返时间RTT,加权往返时间,计算超时重传时间RTO。
  7. 引入Karn算法使运输层区分开有效的和无效的往返时间样本从而改进往返时间的估测。
  8. 对Karn算法优化区分超时重传场景和正常传输场景来更准确及时更新合适的RTO(解决时延突然增大很多的情况)。

    流量控制(窗口大小控制,传输速率控制之“把事情搞大”)

    拥塞控制

    拥塞控制和流量控制的区别(出发点,影响面)

    流量控制是抑制发送方的发送速率,使接收端来得及处理数据。而拥塞控制是调控整片网络,避免拥塞,在疑似拥塞发生的时候,降低注入网络的数据。

    算法

    慢开始 + 拥塞避免(指数增加+加法增加+乘法减小)

    快重传 + 快恢复

    拥塞控制

    结合流量控制的最终的发送窗口大小

    取通知窗口和拥塞窗口中的最小值。

    RED 随机早期检测(网络层避免全局同步问题)

    小于最小门限时不丢弃分组,大于最大门限时直接丢弃分组,中间时按概率丢弃分组。

    连接管理

    3次握手和4次挥手那点事情。