一、UDP的主要特点
1、UDP是无连接的,减少了开销和发送数据之前的时延
2、UDP使用尽最大努力交付,但是不保证可靠交付
3、UDP是面向报文的。从应用层到运输层再到IP层都只是添加一个相应的首部即可
4、UDP没有拥塞机制,源主机以恒定的速率发送数据,允许在网络发生拥塞时丢失一些数据,但是不允许数据有太大的延迟
5、UDP支持一对一、一对多、多对一和多对多的交互通信。
6、UDP的首部开销小,只有八个字节。
二、UDP的首部格式
主机中的多个应用进程把用户数据通过各自的端口传输到了运输层后,就共用同一个网络层协议,把收到的UDP用户数据报组装成不同的IP数据报发送到互联网,这就是UDP的复用功能。
主机的网络层收到多个IP数据报后,提取出数据部分(UDP用户数据报),然后根据其首部中的目的端口号,分别传送到相应的端口,以便上层的应用进程到端口读取数据,这就是UDP的分用功能。
UDP有两个字段:数据字段和首部字段。首部字段很简单,只有八个字节,由四个字段组成,每个字段的长度都为2字节。
(1)源端口
在需要对方回信时选用,不需要时可以全部设置为0
(2)目的端口
在终点交付报文时必须使用
(3)长度
UDP用户数据报的长度,最小值为8(仅由首部)
(4)检验和
通过在数据报之前添加12个字节的伪首部,伪首部既不向下传送也不向上递交,UDP的检验和是把首部和数据部分一起检验,检测UDP用户数据报在传输中是否有错
三、TCP协议的特点
1、TCP是面向连接的运输层协议
应用程序在使用TCP协议之前,必须先建立TCP连接,在传输数据完成之后必须释放已经建立的TCP连接。TCP连接的端点叫做嵌套字(socket)
嵌套字socket = (IP地址:端口号)
每一条TCP连接唯一地址被通信两端的两个端点所确定
TCP连接::={socket1,socket2} = {(IP1:port1),(IP2,port2)}
同一个ip地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。
2、每一条TCP连接是点对点的
3、TCP提供可靠交付的服务
通过TCP连接传送的数据,无差错、不丢失、不重复并且按序到达。
(1)停止等待协议
(i)无差错情况
(ii)出现差错
A只要超过一段时间仍然没有收到确认就认为刚才发送的分组丢失了,因而重传前面发送的分组,叫做超时重传。
因此,A在发送完一个分组后,必须暂时保留已经发送的分组的副本(在发送超时时使用),而且分组和确认分组必须进行编号,超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些。
(iii)确认丢失和确认迟到
(2)连续ARQ协议
连续A