运输层简介
运输层的通信实体不再是主机,而是主机中的进程。运输层的通信是一台主机的进程和另一台主机的进程进行数据交换。
运输层作用
- 运输层向上层的应用层提供通信服务
- 运输层为进程提供端到端的通信
运输层协议
- 传输控制协议(TCP):面向连接的可靠传输协议
- 用户数据报协议(UDP):无连接的不可靠协议
应用层对UDP和TCP的使用
应用 | 应用层协议 | 运输层协议 |
---|---|---|
域名解析 | DNS | UDP |
文件传送 | TFTP(简单文件传送协议) | UDP |
万维网 | HTTP | TCP |
电子邮件 | SMTP | TCP |
文件传送 | FTP(文件传送协议) | TCP |
UDP
UDP,用户数据报协议(User Packet Protocol)。UDP在IP的数据报基础上只加入了很少的功能,包括复用分用和差错检测。它有以下的特点:
- 无连接:UDP在发送数据前不需要建立连接,这减少了建立连接和释放连接带来的开销
- 尽最大努力交付:UDP没有差错重传的机制,它只能尽最大努力交付数据,所以是不可靠传输。虽然没有重传机制导致了不可靠传输,但是这样也减少了主机需要维护的状态参数,减轻了主机的负担
- 面向报文:UDP将上层服务传递的报文加上首部后就能发送,它不会对数据进行拆分或合并
- 首部开销小:UDP报文的首部只有8字节
- 一对多、多对一、一对一通信
TCP
TCP,传输控制协议(Transport Controller Protocol)。TCP是比较复杂的协议,它加入了可靠传输、流量控制、拥塞控制的机制。
- 面向连接:TCP在发送数据之前要建立TCP连接,通信完成需要释放连接。TCP建立连接要经过三次握手的过程,释放连接要经过四次挥手
- 可靠传输:TCP通过确认报文、停止等待(自动重传)等方式实现了可靠传输
- 面向字节流:TCP会将应用层的数据划分成大小不等的数据块,数据块以字节为单位。TCP会将这些数据块封装后按序发送,但是不能保证数据块到达的顺序
- 点对点:因为建立连接,TCP只能进行端到端的通信
TCP与UDP对比
UDP | TCP | |
---|---|---|
有无连接 | 无连接 | 有连接 |
是否可靠 | 尽最大努力交付 | 可靠传输 |
传输方式 | 面向报文 | 面向字节流 |
端点 | 一对一、一对多 | 点对点 |
首部大小 | 首部小,仅8字节 | 首部开销大 |