传输层是网络体系中较为重要的一层,而在传输层中有两个非常重要的协议:TCP和UDP。
1. 传输层概述
传输层向应用层提供通信服务,属于面向通信的最高层,用户功能中的最底层。针对于网络层来讲,真正通信的是两个主机,IP数据报首部明确标记两个主机的IP地址,而针对于传输层,真正通信的是进程。传输层有个很重用的功能:即复用和分用;复用即指不同的应用进程都可以通过同一个传输层协议传送数据,而分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交给目的应用进程。
网络层与传输层又有怎样的联系呢?
首先,如图:
我们可以看到,IP协议作用的范围是两个主机,而传输层协议作用的范围是主机中的进程,传输层还要对收到的报文进行差错检测,而在网络层,IP数据报首部中的检验和字段,只检验首部是否出现差错,而不检验数据部分。
2. 相关的应用层协议及其端口号总结
3. 用户数据报协议UDP
在IP数据报的基础上,用户数据包协议UDP添加了复用和分用以及差错检测的功能,UDP的主要特点是:
(1)UDP是面向无连接的;
(2)UDP使用尽最大努力交付,所以UDP是不可靠的传输层协议
(3)UDP是面向报文的:注意:应用程序需选择合适大小的报文,若报文太长,UDP将其交给IP层后,IP层传送时需要进行分片,会降低IP层的效率;若报文太短,会使IP数据报的首部太长,也会降低IP数据报的效率。
(4)UDP没有拥塞控制,因此网络中出现的拥塞现象,不会使源主机的发送速率降低
(5)UDP支持一对一、一对多、多对一、多对多的交互通信
(6)UDP的首部开销小,只有8个字节,比TCP首部的20个字节要短
4. UDP的首部格式
UDP只有两个字段,数据字段和首部字段,首部字段只有8个字节,由四个字段组成(如图所示),每个字段占有2个字节,当运输层收到UDP数据报时,会根据首部中的目的端口,把UDP中的数据报传输至相应的端口,上交给应用进程。如果接收方发现收到的UDP的目的端口号不正确,则丢弃该报文。由ICMP发送端口不可达的报文给发送方。UDP数据报之前增加12个字节的伪首部(其只是在计算检验和时,临时添加在UDP数据报前面,既不向下传送,也不向上递交)。
5. TCP传输控制协议概述
TCP的主要特点:
(1)TCP是面向连接的传输层协议
(2)每一条TCP连接只能是一对一的
(3)TCP提供可靠交付
(4)TCP提供全双工通信
(5)TCP面向字节流
6. TCP报文段首部格式
TCP虽面向字节流,但传送的单元是报文段,也分为首部和数据部分,首部的前20字节是固定的,因此TCP首部最小长度是20字节,如图所示