运输层负责向两台主机进程之间的通信提供通用的数据传输服务,通信的真正端点是主机中的进程。
为应用进程之间提供端到端的逻辑通信。
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议)。
- 复用:是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据(当然需要加上适当的首部)。
- 分用:是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
使用UPD和TCP协议的各种应用和应用层协议
TCP/IP的运输层用一个16号端口号来标志一个端口,端口号只具有本地意义,只是为了标志本计算机应用层中的各个进程在运输层交互时的层间接口。
常用的熟知端口号
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | SNMP(trap) | HTTPS |
---|---|---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 162 | 443 |
用户数据报协议UDP
特点:
- 无连接的
- 尽最大努力交付
- 面向报文的
- 没有拥塞控制
- 支持一对一、一对多、多对一和多对多的交互通信
- 首部开销小,只有8字节
UDP首部格式
传输控制协议TCP
特点:
- 面向连接的
- 点对点的
- 提供可靠交付的服务
- 全双工通信
- 面向字节流
TCP连接的端点:套接字(socket)或插口
套接字socket = (IP地址 : 端口号)
TCP首部格式
TCP可靠传输的实现
- 以字节为单位的滑动窗口
- 超时重传
- 选择确认SACK
TCP的流量控制
- 利用滑动窗口实现流量控制
- TCP的传输效率
TCP的拥塞控制
- 原理:对资源的需求 > 可用资源
- TCP的拥塞控制方法:
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
- 主动队列管理AQM
TCP拥塞控制流程图