《计算机网络自顶向下方法》第3章 传输层 阅读笔记

1. 概述和传输层服务

  1. 传输服务
  • 为运行在不同主机上的应用进程提供逻辑通信。
  • 传输协议运行在端系统
    • 发送方:将应用层的报文分成报文段,然后传递给网络层
    • 接收方:将报文段重组成报文,然后传递给应用层
  1. 传输层协议
    • 无连接传输:UDP
      • 无连接:
        • UDP发送端和接收端之间没有握手。简单,节约建立时间。
        • 报文段的头部很小(开销小)
        • 每个UDP报文段都被独立地处理。
      • 无拥塞控制和流量控制:尽力交付,不管是否到达(可能丢失),不管送达顺序。
      • UDP应用:
        • 流媒体(丢失不敏感,速率敏感、应用可控制传输速率)
        • 视频会议等
      • 在UDP上可行可靠传输:
        • 在应用层增加可靠性,如增加校验
        • 应用特定的差错恢复
    • 面向连接的传输:TCP:
      • 特点:

        • 点对点: 一个发送方,一个接收方
        • 可靠的、按顺序的字节流: 没有报文边界
        • 管道化(流水线): TCP拥塞控制和流量控制设置
          窗口大小
        • 发送和接收缓存
        • 全双工数据: 在同一连接中数据流双向流动 ; MSS:最大报文段大小
        • 面向连接: 在数据交换之前,通过握手(交换控制报文) 初始化发送方、接收方的状态变量
        • 有流量控制: 发送方不会淹没接收方
      • TCP报文结构:

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x9ia2S1J-1650711282652)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0004f76e-9323-421b-ad5a-784c8f48f48e/1.png)]

        • TCP流量控制:

          接收方控制发送方,不让发送方发送的太多、太快以至于让接收方的缓冲区溢出。

        • TCP拥塞控制原理:

          • 非正式的定义: “太多的数据需要网络传输,超过了网 络的处理能力。
          • 拥塞的表现:
            • 分组丢失 (路由器缓冲区溢出)
            • 分组经历比较长的延迟(在路由器的队列中排队)
        • 2种常用的拥塞控制方法:

          • 端到端拥塞控制:
            • 没有来自网络的显式反馈
            • 端系统根据延迟和丢失事件推断是否有拥塞
            • TCP采用的方法
          • 网络辅助的拥塞控制:
            • 路由器提供给端系统以反馈信息
        • TCP 拥塞控制策略:

          • 慢启动
  2. 传输层 vs. 网络层:
    1. 网络层服务:主机之间的逻辑通信
    2. 传输层服务:进程间的逻辑通信
      1. 依赖于网络层的服务
      2. 并对网络层的服务进行增强

2. 多路复用与解复用

  1. 在发送方主机多路复用:
    1. 从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装 (该头部信息用于以后的解复用)
  2. 在接收方主机多路解复用:
    1. 根据报文段的头部信息中的IP地址和端口号将接收到的报文段发给正确的套接字(和对应的应用进程)
  3. 多路解复用工作原理
    • 解复用作用:TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的socket,从而交给正确的进程
    • 主机收到IP数据报
      • 每个数据报有源IP地址和目标地址
      • 每个数据报承载一个传输层报文段
      • 每个报文段有一个源端口号和目标端口号(特定应用有著名的端口号)
    • 主机联合使用IP地址端口号将报文段发送给合适的套接字

1. 无连接(UDP)多路解复用

  • 在接收端,UDP套接字用二元组标识 (目标IP地址、目标端口号)
  • 当主机收到UDP报文段:
    • 检查报文段的目标端口号
    • 用该端口号将报文段定位给套接字
  • 如果两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则被定位到相同的套接字。

2. 面向连接(TCP)的多路复用

  • TCP套接字:四元组本地标识:
    • 源IP地址
    • 源端口号
    • 目的IP地址
    • 目的端口号
  • 解复用:接收主机用这四个值来将数据报定位到合适的套接字。
  • 服务器能够在一个TCP端口上同时支持多个TCP套接字:
    • 每个套接字由其四元组标识(有不同的源IP和源PORT)
  • Web服务器对每个连接客户端有不同的套接字
    • 非持久对每个请求有不同的套接字
  • 当一个进程有多个线程时,多个线程分别为客户提供服务。在这个场景下,还是根据4元组决定将报文段内容同一个进程下的不同线程,然后解复用到不同线程。

3. 流水线

  • 目的:提高链路利用率
  • 流水线:允许发送方在未得到对方确认的情况下一次发送多个分组
    • 必须增加序号的范围:用多个bit表示分组的序号
    • 在发送方/接收方要有缓冲区
      • 发送方缓冲:未得到确认,可能需要重传;
      • 接收方缓存:上层用户取用数据的速率≠接收到的数据速率;接收到的数据可
        能乱序,排序交付(可靠)
  • 两种通用的流水线协议:
    • 回退N步(GBN)
    • 选择重传(SR)

4. 滑动窗口协议

  • 发送缓冲区
    • 形式:内存中的一个区域,落入缓冲区的分组可以发送
    • 功能:用于存放已发送,但是没有得到确认的分组
    • 必要性:需要重发时可用
  • 发送缓冲区的大小:一次最多可以发送多少个未经确认的分组
    • 停止等待协议=1
    • 流水线协议>1,合理的值,不能很大,链路利用率不能够超100%
  • 发送缓冲区中的分组
    • 未发送的:落入发送缓冲区的分组,可以连续发送出去;
    • 已经发送出去的、等待对方确认的分组:发送缓冲区的分组只有得到确认才能删除
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值