【笔记】《计算机网络 自顶向下方法》第三章 运输层

概述和运输层服务

    运输层解决的问题是,数据传输的问题。数据传输分为不可靠传输和可靠数据传输,分别对应的是UDP协议和TCP协议。  
  • 运输层和网络层的关系
    *
    在发送端,运输层将从发送应用程序接收到的报文(应用层报文)转换成报文段,随后将这些报文段传递给网络层,网络层将其封装为网络层分组(即数据报),并向目的地发送;
    • 在接收端,网络层从数据报中提取运输层报文段,并将该报文段上交给运输层,运输层则处理接收到的报文段,使该报文段中的数据为接收应用程序使用;
    • 运输层协议只工作在端系统中
    • 网络层IP协议为不可靠服务,其服务模型是尽力而为交付服务(best-effort delivery service),这意味着它不确保报文段的交付、不保证报文段的按序交付、不保证报文段中数据的完整性。
  • 因特网运输层概述
    • Internet运输层上提供TCP(传输控制协议) 和 UDP(用户数据报协议)两种。
  • 多路复用和多路分解
    • 无连接的多路复用和多路分解
      • 在运输层,无连接的网络传输是通过UDP来实现的,一个UDP套接字是由一个含有目的IP地址和目的端口号的一个二元组来全面标识的。
      • 主机收到UDP段后检查段中的目的端口号,并将UDP段导向绑定在该端口号的Socket,因此如果两个UDP报文段有不同的源IP地址/端口号,却有相同的目的端口号,那么两个报文段将通过相同的目的套接字被定向到相同的目的进程。
    • 面向连接的多路复用与多路分解
      • 在运输层中面向连接的网络传输多使用TCP,而TCP套接字和UDP套接字之间有一个细微的差别,TCP套接字是由一个四元组(源IP地址、源端口号,目的IP地址,目的端口号)来标识的。当一个TCP报文段从网络到达一台主机时,主机会使用全部4个值来将报文段定向,即多路分解到相应的套接字。
      • 与UDP不同的是,两个具有不同源IP或源端口号的到达的TCP报文段将被重定向到两个不同的套接字。
    • Web服务器与TCP
      • 当今的高性能Web服务器通常只使用一个进程,但是为每个新的客户连接创建一个具有新连接套接字的新线程。
  • 无连接运输:UDP
    • UDP报文段结构
    • UDP检验和
      • 作用
        • 提供了差错检查功能
        • 用于确定当UDP报文段从源到达目的地移动时,其中的比特是否发生了变化(例如,可能由于链路中的噪声干扰或者存储在路由器中时引入问题)
      • 原理
        • 反码(complement):发送方的UDP对报文段中的所有16bit字的和进行反码运算,就是将所有的0换成1,所有的1换成0;接收端计算校验和但不做反码,将结果与发送方校验码相加,如果得到的结果为16个1,那么说明该分组中没有引入差错。
        • 回卷(wrap around):遇到最高位进位的时候,就将溢出的那一位与低16位相加。
    • UDP 的几个优点
      • 对于发送什么数据和何时发送数据有更为精细的控制。TCP 因为有拥塞控制使得 TCP 发送速率不能得到保证,而 UDP 没有这种限制
      • 无须事先建立连接。TCP 在发送数据前必须经过 3 次握手,这就引入了非常大的时延
      • 无连接状态。UDP 不需要额外的内存以保存缓存、拥塞控制参数等数据,因此服务器可以有更多的 UDP 连接
      • 分组的首部开销更小。UDP 的首部只有 8 个字节,而 TCP 有 20 个字节。
  • 可靠数据传输原理
    • 构造可靠数据传输协议
      • 经完全可靠信道的可靠数据传输:rdt1.0
      • 经具有比特差错信道的可靠数据传输:rdt2.0
      • 经具有比特差错的丢包信道的可靠数据传输:rdt3.0
      • 流水线可靠数据传输协议
      • 回退N步
      • 选择重传
  • 面向连接的运输:TCP
    • TCP连接建立三次握手:
      • 客户端的TCP会向服务端的TCP发送一个报文,该报文有一个标志位SYN被置为1,客户端还会随机选择一个初始序号client_isn然后发送给服务端TCP
      • 服务端TCP收到客户端的报文后,会为客户端TCP分配缓存和变量,同时也会发送一个报文给客户端,其中有SYN=1,并加clenet_isn+1处理,服务端也会发送一个自己的初始序号server_isn(有一种典型的SYN泛洪攻击就是利用这个一步骤会分配变量和缓存,导致系统崩溃)
      • 客户端收到服务端的报文后,也会为服务端TCP分配缓存和变量,然后再次发送一个报文给服务端TCP,该报文中,将SYN=0,把server_isn+1处理。
    • 关闭TCP连接:
      • 客户端会向 服务端 发送一个报文,该报文中有个标志为FIN=1,服务端收到会发送一个报文给客户端,该报文中也有一个标识位FIN=1;等客户端收到报文后确认了FIN标识位,就是释放。
    • TCP报文段结构
    • 往返时间的估计与超时
    • 可靠数据传输
    • 流量控制
    • TCP连接管理
  • 拥塞控制原理
    • 拥塞原因与代价
    • 拥塞控制方法
    • 网络辅助的拥塞控制例子:ATM ABR拥塞控制
  • TCP拥塞控制
    • 慢启动
    • 拥塞避免
    • 快速恢复
    • TCP拥塞控制:回顾
    • 对TCP吞吐量的宏观描述
    • 经高带宽路径的TCP
posted @ 2019-06-09 17:32  bingo彬哥  阅读(503)  评论(0编辑  收藏  举报
本站总访问量