文章目录
1. 基本概念
两台主机进行通信时,真正通信的是两台主机中的应用进程。网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供逻辑通信。
运输层的复用和分用功能:
- 复用:发送方不同的应用进程都可以使用同一个运输层协议传送数据;
- 分用:接收方的运输层在剥去报文首部后能把数据正确地交付给目的应用进程;
端口是为了标志计算机应用层中的各个进程和运输层交互时的层间接口。两台主机的进程通信时,不仅要知道对方的 IP 地址以找到对方的计算机,还要知道对方的端口号以找到对方计算机中的应用进程。
运输层的端口号可分为两类:
1.服务器使用的端口号
一类为熟知端口号或系统端口号,数值为 0~1023
,指派给了 TCP/IP
最重要的一些应用程序,让所有的用户都知道。例如 FTP
为 21
,HTTP
为 80
,HTTPS
为 443
。
另一类为 登记端口号,数值为 1024~49151
,为没有熟知端口号的应用程序使用。
2.客户端使用的端口号
数值为 49152~65535
。这类端口号留给客户进程选择暂时使用。
2. UDP 协议
运输层主要有两个协议:用户数据报协议 UDP
和传输控制协议 TCP
。用户数据报协议 UDP
只在 IP
的数据包服务上增加了复用和分用以及差错检测的功能。
2.1 主要特点
UDP
是无连接的,发送数据前后不需要建立和释放连接;UDP
使用尽最大努力交付,不保证可靠交付;UDP
支持一对一、一对多、多对一、多对多的交互通信;UDP
是面向报文的,发送方的UDP
对应用程序交下来的报文,在添加首部后就向下交付IP
层,接收方类似。因此应用程序必须选择合适大小的报文;UDP
没有拥塞控制,网络出现的拥塞一般不会影响源主机的发送效率;
2.2 UDP 的首部格式
用户数据报 UDP
有两个字段:数据字段和首部字段。首部由四个字段组成,每个字段的长度是两个字节,分别为源端口、目的端口、长度和校验和。