# 5.1 传输层提供的服务 ## 一、传输层概述 ### 1.1 传输层的位置 **OSI模型**:第四层 **TCP/IP模型**:传输层 ### 1.2 传输层的作用 **主要任务**: - 为应用进程之间提供逻辑通信 - 实现端到端(end-to-end)的通信 - 复用和分用 **特点**: - 进程到进程的通信 - 端到端的可靠传输 - 与应用层交互 --- ## 二、传输层的功能 ### 2.1 复用和分用 **复用(Multiplexing)**: - 多个应用进程共享同一个传输层协议 - 发送方:多个应用进程的数据通过传输层发送 **分用(Demultiplexing)**: - 传输层将数据分发给不同的应用进程 - 接收方:根据端口号将数据交给正确的应用进程 ### 2.2 端到端的可靠传输 **功能**: - 差错检测 - 确认和重传 - 流量控制 - 拥塞控制 **注意**: - 网络层提供的是主机到主机的通信 - 传输层提供的是进程到进程的通信 ### 2.3 寻址 **端口号(Port Number)**: - 标识应用进程 - 16位,0-65535 **端口分类**: - **熟知端口(Well-known Ports)**:0-1023 - **登记端口(Registered Ports)**:1024-49151 - **动态/私有端口(Dynamic/Private Ports)**:49152-65535 ### 2.4 连接管理 **面向连接的服务**: - 建立连接 - 数据传输 - 释放连接 **无连接的服务**: - 直接发送数据 - 不需要建立连接 --- ## 三、传输层协议 ### 3.1 TCP(Transmission Control Protocol) **特点**: - 面向连接 - 可靠传输 - 字节流服务 - 全双工通信 **功能**: - 差错控制 - 流量控制 - 拥塞控制 - 连接管理 **应用**: - HTTP、FTP、SMTP、Telnet等 ### 3.2 UDP(User Datagram Protocol) **特点**: - 无连接 - 不可靠传输 - 数据报服务 - 简单高效 **功能**: - 复用和分用 - 差错检测 **应用**: - DNS、DHCP、RIP、SNMP、视频流、实时通信等 ### 3.3 TCP与UDP的比较 | 特性 | TCP | UDP | |-----|-----|-----| | 连接 | 面向连接 | 无连接 | | 可靠性 | 可靠 | 不可靠 | | 有序性 | 有序 | 无序 | | 流量控制 | 有 | 无 | | 拥塞控制 | 有 | 无 | | 首部开销 | 大(20字节) | 小(8字节) | | 传输效率 | 较低 | 高 | | 延迟 | 较大 | 小 | | 应用场景 | 文件传输、网页浏览 | 实时应用、DNS | --- ## 四、传输层与网络层的关系 ### 4.1 层次关系 ``` 应用层(HTTP、FTP、SMTP) ↓ 传输层(TCP、UDP) ↓ 封装 网络层(IP) ↓ 封装 数据链路层 ↓ 封装 物理层 ``` ### 4.2 功能对比 | 特性 | 网络层 | 传输层 | |-----|--------|--------| | 通信范围 | 主机到主机 | 进程到进程 | | 寻址 | IP地址 | 端口号 | | 连接 | 无连接 | 面向连接/无连接 | | 可靠性 | 尽力而为 | 可靠/不可靠 | | 流量控制 | 无 | 有(TCP) | | 拥塞控制 | 有 | 有(TCP) | ### 4.3 为什么需要传输层 **网络层的不足**: - 只提供主机到主机的通信 - 不区分应用进程 - 不保证可靠传输 **传输层的补充**: - 提供进程到进程的通信 - 复用和分用 - 提供可靠传输(TCP) --- ## 五、套接字(Socket) ### 5.1 什么是套接字 **套接字**: - 应用进程与传输层之间的接口 - 标识一个通信端点 - 由IP地址和端口号组成 ### 5.2 套接字地址 **格式**: - IP地址:端口号 - 如:192.168.1.1:80 **唯一标识**: - 一个套接字唯一标识网络中的一个通信端点 ### 5.3 套接字对 **通信双方**: - 源套接字:源IP:源端口 - 目的套接字:目的IP:目的端口 - 套接字对唯一标识一个连接(TCP) ### 5.4 套接字类型 **流式套接字(SOCK_STREAM)**: - 使用TCP - 面向连接 - 可靠传输 **数据报套接字(SOCK_DGRAM)**: - 使用UDP - 无连接 - 不可靠传输 **原始套接字(SOCK_RAW)**: - 直接访问网络层 - 用于网络编程和协议开发 --- ## 六、传输层的服务质量 ### 6.1 QoS参数 **可靠性**: - 数据无差错、无丢失、无重复、按序到达 **延迟**: - 数据从发送到接收的时间 **带宽**: - 数据传输速率 **抖动**: - 延迟的变化 ### 6.2 不同应用的需求 | 应用 | 可靠性 | 延迟 | 带宽 | 抖动 | |-----|--------|------|------|------| | 文件传输 | 高 | 中 | 中 | 低 | | 电子邮件 | 高 | 低 | 低 | 低 | | Web浏览 | 高 | 中 | 中 | 低 | | 实时视频 | 中 | 低 | 高 | 低 | | IP电话 | 中 | 低 | 低 | 低 | | 网络游戏 | 中 | 低 | 低 | 低 | --- ## 七、考研重点 1. **传输层的作用**: - 进程到进程的通信 - 端到端的可靠传输 2. **传输层的功能**: - 复用和分用 - 端到端的可靠传输 - 寻址(端口号) - 连接管理 3. **传输层协议**: - TCP:特点、功能、应用 - UDP:特点、功能、应用 - TCP与UDP的比较 4. **传输层与网络层的关系** 5. **套接字**: - 概念 - 套接字地址 - 套接字对 - 套接字类型 6. **传输层的服务质量** --- *下一节:5.2 UDP协议*