运输层之UDP
1.进程之间的通信
- 运输层具有一个重要的功能:复用和分用。复用即是发送方的不同应用进程都可以使用同一个运输层协议传送数据,分用即是接收方的运输层在去除报文的首部后能够能够把数据正确的交付给应用进程。
- 运输层提供应用进程的逻辑通信,网络层提供主机之间的逻辑通信。运输层最终的目的是应用进程,而网络层最终的目的是主机。
- 不管是使用tcp还是udp,他们下面的ip层提供的都是不可靠传输。但是,因为tcp是面相连接的,所以尽管下面的网络层是不可靠的,但是这样的通信就相当于一条可靠的全双工信道。
- 软件端口:应用层的各种协议进程与运输实体进行的一种层间的交互地址。
- 端口号:运输层使用16位来表示端口号,只允许65535个不同的端口号,但是端口号不具有本地意义。
- 由于互联网上通信是采用C-S方式,所以端口可以分为两种端口,一种是服务端使用的端口,另外一种是客户使用的端口。
- 服务器使用的端口:熟知端口号(系统端口号),0—1023。登记端口号,1024-49151。
- 客户端使用的端口号:短暂端口号。这类端口号是留给客户暂时使用,动态选择。即客户端进程使用完之后即可给其它的客户端进程使用。
2.UDP
- 功能:分用与复用,差错检测。
- 特点:(1)无连接,无需建立连接。(2)尽最大努力交付,即不提供可靠保证。(3)面向报文,运输层提供的多长的报文,都一次性的把报文直接交付给网络层。(4)无拥塞控制(所以实时性很好),但是会导致拥塞控制。(5)支持一对一,一对多,多对一,多对多通信。(5)首部开销小,八个字节。
- UDP首部格式(伪首部是为了差错检测):