传输层概述:传输层功能、端口与套接字、UDP与TCP。
5.1 传输层提供的服务
5.1.1 传输层的功能
传输层位于应用层和网络层之间,是面向通信部分的最高层,也是用户功能中的最低层。
传输层与网络层的区别:
- 网络层:提供主机之间的逻辑通信。
- 传输层:在网络层基础上,为运行在不同主机上的进程之间提供逻辑通信,即端到端的通信。
传输层的主要功能:
- 复用与分用:
- 复用:发送方不同的应用进程使用同一个运输层协议传送数据(加上适当首部)。
- 分用:接收方运输层剥去首部后,将数据正确交付给目的应用进程。
- 差错检测:对收到的报文(首部和数据字段)进行差错检测。
- TCP:发现错误则要求重传。
- UDP:发现错误则直接丢弃。
注意:网络层IP数据报首部只检验首部,不检验数据部分。
- 提供面向连接和无连接的服务:
- 面向连接:TCP
- 无连接:UDP
- 屏蔽网络细节:向高层用户隐藏下层网络核心的细节(如网络拓扑、路由协议等),使应用进程看到的是端到端的逻辑通信信道。
重要区别:网络层无法同时实现两种服务(要么虚电路,要么数据报),而传输层可以同时提供TCP和UDP两种服务。
5.1.2 传输层寻址与端口
1. 端口的概念
- 端口:应用层进程与传输层交互的“门”,是通信的抽象终点,用端口号标识。
- 端口类型:
- 软件端口:传输层使用的抽象端口,在协议栈层间交互。
- 硬件端口:路由器或交换机上不同硬件设备交互的接口。
端口是应用进程与传输层交互的地点,具有一定容量的缓存。
2. 端口号
- 长度:16位,范围0~65535(共65536个,0不使用)。
- 特点:端口号只具有本地意义,不同计算机的相同端口号无关联。
端口号分类:
| 类别 | 范围 | 说明 |
|---|---|---|
| 熟知端口号 | 0~1023 | 指派给TCP/IP重要应用程序 |
| 登记端口号 | 1024~49151 | 供没有熟知端口号的应用程序使用,需在IANA登记 |
| 客户端端口号 | 49152~65535 | 客户进程运行时动态选择,通信结束后释放 |
常见熟知端口号:
| 应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | HTTPS |
|---|---|---|---|---|---|---|---|---|
| 端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 443 |
3. 套接字
- 定义:IP地址与端口号的绑定,唯一标识一个主机上的一个应用进程。
- 表示:
Socket = (IP地址 : 端口号)
4. 服务访问点(SAP)
| 层次 | 服务访问点 |
|---|---|
| 数据链路层 | 帧的“类型”字段 |
| 网络层 | IP数据报的“协议”字段 |
| 传输层 | 端口号 |
| 应用层 | 用户界面 |
5.1.3 无连接服务与面向连接服务
| 特性 | UDP(无连接) | TCP(面向连接) |
|---|---|---|
| 连接建立 | 不需要,直接发送 | 需要三次握手建立连接 |
| 连接释放 | 不需要 | 需要四次挥手释放连接 |
| 可靠性 | 不保证,无确认 | 可靠,有确认和重传 |
| 差错处理 | 发现错误直接丢弃 | 要求重传错误报文 |
| 开销 | 小,首部简单 | 大,需维护连接状态、计时器等 |
| 适用场景 | 实时应用(流媒体、DNS) | 可靠传输应用(HTTP、FTP、SMTP) |
应用层协议与传输层协议对应关系:
| 应用 | 协议 | 传输层 |
|---|---|---|
| 域名系统 | DNS | UDP |
| 文件传送 | TFTP | UDP |
| 路由选择 | RIP | UDP |
| IP地址配置 | DHCP | UDP |
| 网络管理 | SNMP | UDP |
| 远程文件服务器 | NFS | UDP |
| IP电话、流媒体 | 专用协议 | UDP |
| 多播 | IGMP | UDP |
| 电子邮件 | SMTP | TCP |
| 远程终端 | TELNET | TCP |
| 万维网 | HTTP | TCP |
| 文件传送 | FTP | TCP |
习题
传输层的主要功能是(A. 在通信主机之间提供端到端的逻辑通信)
以下关于传输层端口号的说法,错误的是(D. 端口号的范围是 0 - 1023)
(实际范围是065535,01023是熟知端口号)在传输层中,能够实现复用和分用功能的是(A. 端口号)
笔记结束