一、 运输层的两个主要协议
(1) 用户数据报协议 UDP (User Datagram Protocol)
(2) 传输控制协议 TCP (Transmission Control Protocol)
两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)
。
TCP 传送的数据单位协议是 TCP 报文段(segment)
。
UDP 传送的数据单位协议是 UDP 报文
或用户数据报
。
1.1、TCP:一种面向连接的协议
1、提供面向连接的服务。
2、传送的数据单位协议是TCP 报文段 (segment)
。
3、TCP不提供
广播或多播服务。(仅提供对应连接进程端点的服务)
4、由于 TCP 要提供可靠的
、面向连接的运输服务
,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
1.1.1、TCP的主要特点
1)、TCP 是面向连接
的运输层协议。
2)、每一条 TCP 连接只能有两个端点
(endpoint),每一条 TCP 连接只能是点对点的(一对一)。
3)、TCP 提供可靠交付
的服务。
4)、TCP 提供全双工通信
。
5)、面向字节流
TCP 中的“流”(stream)指的是流入或流出进程的字节序列。 “面向字节流”的含义是:虽然应用程序和 TCP
的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。
1.1.2、TCP 的流量控制
定义:让发送方的发送速率不要太快,要让接收方来得及接受
实现:利用滑动窗口
实现流量控制(字节为单位的滑动窗口)
1.1.3、TCP 的拥塞控制
拥塞控制的一般原理:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至过载。
TCP 的拥塞控制方法:TCP采用基于窗口的方法
进行拥塞控制。该方法属于闭环控制方法
。
1.1.2、TCP 的连接建立:采用三报文握手
1.1.3、TCP 的连接释放:采用四报文握手
以一次简单的HTTP交互为例说明:
- 客户端–>syn–>服务器 (TCP层交互)
- 服务器–>syn ack–>客户端 (TCP层交互)
- 客户端–>ack–>服务器 (TCP层交互)
TCP三次握手建立连接后,
- 客户端发送GET/POST请求数据 (HTTP层交互)
- 服务器收到GET/POST请求,回复ack (TCP层交互)
- 服务器根据请求回复相应的数据 (HTTP层交互)
- 客户端收到服务器数据,回复ack (TCP层交互)
在完成HTTP数据交互后,TCP四次分手断开连接:
- 客户端–>fin ack–>服务器
- 服务器–>ack–>客户端
- 服务器–>fin ack–>客户端
- 客户端–>ack–>服务器
1.2、用户数据报协议 UDP
1)、UDP 只在 IP 的数据报服务之上增加了很少一点的功能:
复用和分用的功能
差错检测的功能
2)、虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
1.2.1、UDP 的主要特点
(1) UDP 是无连接的
,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。
(2) UDP 使用尽最大努力交付
,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
(3) UDP 没有拥塞控制
,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
(4) UDP 支持一对一、一对多、多对一和多对多的交互通信。
(5) UDP 的首部开销小
,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
(6) UDP 是面向报文的
。发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。