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

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

相关推荐
云小逸4 小时前
【网络通信】同一网段与不同网段的通信原理
网络·网络安全
zr5268554476 小时前
PCIe-PN卡(三格电子)
网络
无名的小三轮6 小时前
防火墙基础实验:智能选路下的透明DNS选路配置
网络
一轮弯弯的明月6 小时前
TCP传输大致过程、流量控制与拥塞控制
网络·tcp/ip·计算机网络·学习心得
犀思云6 小时前
如何通过网络即服务平台实现企业数字化转型?
运维·网络·人工智能·系统架构·机器人
皇帝要考研6 小时前
【ISO 13400-2:2019】核心配置项
网络·网络协议
犀思云7 小时前
企业端到端NaaS连接的优势与应用
网络·人工智能·机器人·智能仓储·专线
三水不滴7 小时前
Redis缓存更新策略
数据库·经验分享·redis·笔记·后端·缓存
Godspeed Zhao7 小时前
现代智能汽车系统——总线技术1
网络·汽车·php
JoySSLLian7 小时前
IP SSL证书:一键解锁IP通信安全,高效抵御网络威胁!
网络·人工智能·网络协议·tcp/ip·ssl