计算机网络期末复习——第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)

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

相关推荐
发光小北2 小时前
Modbus TCP 转 Profinet 主站网关如何应用?
网络·网络协议·tcp/ip
码途漫谈5 小时前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程
易连EDI—EasyLink5 小时前
易连EDI–EasyLink实现OCR智能数据采集
网络·人工智能·安全·汽车·ocr·edi
@insist1235 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
SmartRadio5 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
_.Switch6 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
思茂信息6 小时前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
金色光环7 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
数智化精益手记局7 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
糖炒栗子03267 小时前
【笔记】高分卫星影像 TIF 切片处理
笔记