传输层的功能
逻辑通信
传输层为不同主机上的应用进程之间提供逻辑通信,使它们感觉像是在直接通信。
复用与分用
- 复用(Multiplexing):多个应用进程使用同一个传输层协议发送数据
- 分用(Demultiplexing):传输层将接收到的数据交付给正确的应用进程
差错检测
传输层对报文段进行差错检测,确保数据完整性。
两种协议
传输层向应用层提供两种不同的协议:
- TCP:面向连接的可靠传输
- UDP:无连接的不可靠传输
传输层的寻址与端口
端口的作用
传输层使用端口号来标识主机中的应用进程。
端口号分类
| 类别 | 范围 | 说明 |
|---|---|---|
| 熟知端口号 | 0-1023 | IANA 分配,服务器使用(如 HTTP 80、FTP 21) |
| 登记端口号 | 1024-49151 | IANA 登记,避免重复分配 |
| 短暂端口号(临时端口) | 49152-65535 | 客户端临时使用 |
常见熟知端口号
| 服务 | 端口号 | 传输层协议 |
|---|---|---|
| FTP | 21 | TCP |
| TELNET | 23 | TCP |
| SMTP | 25 | TCP |
| DNS | 53 | UDP |
| TFTP | 69 | UDP |
| HTTP | 80 | TCP |
| POP3 | 110 | TCP |
| SNMP | 161 | UDP |
套接字 Socket
Socket = {IP 地址 : 端口号}
一个套接字唯一标识一个网络进程。
无连接服务与面向连接服务
| 对比 | TCP(面向连接) | UDP(无连接) |
|---|---|---|
| 连接建立 | 需要三次握手 | 无需建立连接 |
| 可靠性 | 可靠传输 | 不可靠传输 |
| 流量控制 | 有(滑动窗口) | 无 |
| 拥塞控制 | 有 | 无 |
| 传输单位 | 报文段 | 用户数据报 |
| 首部开销 | 20B | 8B |
| 适用场景 | 文件传输、邮件、Web | 实时多媒体、DNS、TFTP |