欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-21 23:08:13
...

概述和运输层服务

    运输层解决的问题是,数据传输的问题。数据传输分为不可靠传输和可靠数据传输,分别对应的是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

转载于:https://www.cnblogs.com/everfight/p/computer_network_chapter3.html