运输层协议概述
进程之间的通信
- 运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
- 两个主机进行通信实际上就是两个主机中的应用进程互相通信。
- 应用进程之间的通信又称为端到端的通信。
- 运输层协议和网络层协议的主要区别
运输层的两个主要协议
(1) 用户数据报协议 UDP(User Datagram Protocol)
- UDP 传送的数据单位协议是 UDP 报文或用户数据报。
- 无连接的传输,不提供可靠交付。
- 面向报文
- 无拥塞控制
- 支持多种连接形式
- 首部开销小
(2) 传输控制协议 TCP(Transmission Control Protocol)
- TCP 传送的数据单位协议是 TCP 报文段(segment)
- 建立连接的传输,增加开销
运输层的端口
软件端口与硬件端口
- 在协议栈层间的抽象的协议端口是软件端口。
- 路由器或交换机上的端口是硬件端口。
三类端口
- 熟知端口,数值一般为 0~1023。
- 登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
- 客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
用户数据报协议 UDP
UDP 概述
- 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
UDP 的首部格式
由8个字节组成
- 源端口 2 不需要时可选零,用于对方回信
- 目的端口 2
- 长度 2 用户数据报的长度
- 校验和 2 出错则丢弃