计算机网络期末复习——第3章:运输层 Part One

目录

  • [3.1 概述和运输层服务](#3.1 概述和运输层服务)
  • [3.2 多路复用和多路分解](#3.2 多路复用和多路分解)
    • [3.2.1 多路分解](#3.2.1 多路分解)
    • [3.2.2 多路复用](#3.2.2 多路复用)
    • [3.2.3 socket](#3.2.3 socket)
    • [3.2.4 无连接的多路复用和多路分解](#3.2.4 无连接的多路复用和多路分解)
    • [3.2.5 面向连接的多路复用与多路分解](#3.2.5 面向连接的多路复用与多路分解)
    • [3.2.6 Web服务器与TCP](#3.2.6 Web服务器与TCP)
  • [3.3 无连接运输:UDP](#3.3 无连接运输:UDP)
    • [3.3.1 特点](#3.3.1 特点)
    • [3.3.2 使用UDP的原因](#3.3.2 使用UDP的原因)
    • [3.3.3 UDP报文段结构](#3.3.3 UDP报文段结构)
    • [3.3.4 UDP校验和](#3.3.4 UDP校验和)

3.1 概述和运输层服务

  1. 端到端通信,无需网络的帮助,不在路由器中实现

  2. 运输层把待发送的报文转换成报文段(segment),运输层的packet就是segment

  3. Logical

    应用利用传输层提供的逻辑通信互发消息,无需关心这些消息的物理基础设施细节

  4. 运输层和网络层的关系

    • 运输层为运行在不同主机上的应用进程提供了逻辑通信(通信的真正实体是进程)

    • 网络层提供了主机之间的逻辑通信(不是通信的真正实体)

  5. 因特网运输层概述

    1. 网络层

      • 协议:IP

      • IP服务:尽力而为,不可靠

    2. 传输层

      • UDP(用户数据报协议)

        • 不可靠,无连接服务
      • TCP(传输控制协议)

        • 可靠,面向连接的服务

        • 附加服务

          • 可靠数据传输

          • 拥塞控制

          • 流量控制

3.2 多路复用和多路分解

3.2.1 多路分解

将运输层报文段中的数据交付到正确的套接字(socket)的工作

3.2.2 多路复用

从不同套接字收集数据块,并为每个数据集封装上首部信息从而生成报文段,再把报文段传递到网络层

3.2.3 socket

  1. 应用程序和网络之间的接口,让程序可以实现数据的收发

    • Socket = IP地址 + 端口号 + 协议,如192.168.1.1:8080/TCP
  2. 打开socket意味着OS分配一个buffer来接收数据,并把缓冲区地址返回给打开它的进程。因此存在socket-OS 的buffer映射关系

  3. 从socket接收数据意味着数据从OS buffer复制到应用buffer

  4. 无连接socket(如UDP)

    流程

    1. Server socket打开后就准备好接收携带应用消息的报文段

    2. Server OS为应用消息新建buffer

    3. Client socket发送消息前不通知server(即发送前不建立连接)

  5. 面向连接socket(如TCP)

    流程

    1. Server socket打开后就准备好接收携带连接消息的报文段

    2. Server OS为连接报文段新建buffer

    3. Client socket发送连接报文段建立连接

    4. Server OS新建一个连接socket,实际上是为即将到来的应用消息新建buffer

    一个client进程可对同一个server socket发起多个连接

3.2.4 无连接的多路复用和多路分解

  1. UDP套接字由一个二元组全面标识:{D.IP, D.P}

  2. D.IP:目的IP地址。

    D.P:目的端口号

3.2.5 面向连接的多路复用与多路分解

  1. TCP套接字由一个四元组表示:{S.IP, D.IP, S.P, D.P}

  2. S是源

3.2.6 Web服务器与TCP

  1. Web服务器本质上是处理HTTP消息的TCP服务器

  2. 作为TCP服务器意味着监听一个面向连接的server socket

  3. 功能

    • 接收client socket的连接

    • 创建新buffer

  4. 服务器架构

    • 单线程Web服务器

      用同一个执行进程处理server socket和连接socket

    • 多线程Web服务器

      由管理server socket的进程派生的独立线程处理client的连接socket

3.3 无连接运输:UDP

UDP是一种简单粗略、功能单一的运输层协议,在IP基础服务上仅提供最小限度增强功能

3.3.1 特点

  • 无连接

    • 发送报文段前不握手
  • 不可靠

3.3.2 使用UDP的原因

  1. 关于发送数据内容和发送时间的应用层控制更精细

    要求最小发送速率, 如视频会议

  2. 无需连接建立

    节省时间,TCP需要三次握手

  3. 无连接状态

    TCP每个连接需要服务器维护状态,UDP服务器可支持更多活跃用户

  4. 分组首部开销小

    UDP首部8字节,TCP首部20字节

3.3.3 UDP报文段结构

  1. S.P字段与D.P字段

    用于多路复用和多路分解

  2. 长度字段:只是UDP报文段总字节数(首部+数据)

  3. 校验和字段:接收方检查报文段是否出错(仅检测,不校正)

  4. 应用数据(报文)

3.3.4 UDP校验和

  1. 发送方除了发送应发送的报文段,还需要发送校验和

  2. 校验和:将报文段拼接数据报的其他内容构成16位,把这些16位字相加,溢出位加到最低位,最后把结果取反码

  3. 接收方将这些报文段和校验和相加,如果结果全为1则正确,否则包有错误

    (别忘了运输层报文段(segment)就是packet)

  4. 差错检测的必要性

    • 会出现比特错误

      • 在传输时

      • 在路由器buffer时

    • 端到端原则(end-end principle)

      • 必须在最终端点提供差错检测,而不是依靠中间节点

相关推荐
优雅的潮叭9 小时前
c++ 学习笔记之 模板元编程
c++·笔记·学习
君鼎9 小时前
计算机网络第五章:传输层学习总结
学习·计算机网络
xian_wwq9 小时前
【学习笔记】网络安全L3级模型功能解析
笔记·学习·安全
触想工业平板电脑一体机9 小时前
【触想智能】工业触控一体机在船舶海运设备上应用的特点和具体场景分析
android·网络·计算机外设·电脑·智能电视
逑之9 小时前
C语言笔记2:C语言数据类型和变量
c语言·开发语言·笔记
nvd119 小时前
Cookie 技术深度剖析与实战指南
网络
christine-rr9 小时前
linux常用命令(9)——查看系统与硬件信息
linux·运维·服务器·网络·后端
yuanmenghao9 小时前
自动驾驶中间件iceoryx - 同步与通知机制(一)
开发语言·网络·驱动开发·中间件·自动驾驶
kixixx9 小时前
如何解决安装Mingw64后simulink仍无法加速仿真的问题
笔记