Compare Plans

TCP传输控制和UDP

更新时间:2024-10-14

2.3.3   传输控制过程

1.重传控制

前已述及,TCP采用超时重传机制,其关键问题是如何确定重传定时器的值。从理论上来说,应该取为报文往返传输时间(RTT-Round-TripTime)。在点到点数据链路中,RTT基本上是固定值;而在Internet中,RTT随网络负荷状态会有很大的变化。通常按下式进行动态调整:

RTT=aRTT+(1-a)M

式中,M为实测环回时间,就是收到段确认时间和段发出时间之差。a为平滑因子,典型值为a=7/8。

重传定时值可按下述两种方法确定:

.定时值=β*RTT,β=2。

定时值=RTT+4*D,D=aD+(l-a)IRTT-MI。

其中,第二种方法更为灵活,为目前大多数TCP实现所采用。

进一步要考虑的一个问题是,当重传后收到确认时如何动态估算RTT,其难点是无法判知该确认段是对原始报文段的确认还是对重发报文段的确认,也就是无法确定M。为此,目前采用的算法是:每重传一次,RTF增加一倍。

2.滑动窗口控制

在TCP中,滑动窗口大小是动态变化的,由接收方控制,其值等于接收方缓冲区的可用空间,藉以保证报文段到达接收方后不会溢出。其机理可由图2.38说明。

设接收方TCP实体分配有4KB缓冲区。发送方首次发送2KB报文段,接收方回送确认时就将窗口大小

1-2111011032534T.png

图2.38      滑动窗口控制

设定为2KB,告诉发送方缓冲区只剩2KB空间了。发送方第二次再送2KB报文段,接收方缓冲区全部占满,于是回送确认并置窗口大小为零,即闭塞发送方。当应用进程读走2KB数据层,接收方再主动发送一个控制段,告之窗口大小已开至2KB。

当窗口为零时,发送方允许发送两种报文段。一是紧急数据,其目的是中断远端进程。二是发送1字节的测试段,其目的是让对端再回送一次窗口大小,以防对方发送的窗口已打开的通告段丢失造成连接永久性的关闭。

3.传输控制的改进算法

TCP传输的一个重要性能是带宽利用率。由于IP报头和TCP段头要占40个字节(不计任选部分),因此一次传送的数据虽越大,传输资源的利用率就越高。但是TCP协议本身并没有考虑这个问题,它允许逐个字节的传送以加快传送速度,在某些情况下就会产生严重的问题。现以图2.39为例予以说明。

1-21110110360Tc.png

图2.39TCP传输控制协议的问题

图(a)表示一个至远程交互式编辑器的TELNET连接。本地用户每输入一个字符,TCP就将其送出(1字节数据)。编辑器侧TCP立即回送确认段(无数据)。当编辑器读入该字节后又回送窗口更新段(尤数据),最后编辑器处理完后将字符交TCP送回(1字节数据)。这样,为了送1个字符耗用了162字节的带宽。此问题出在发送方发送1字节的报文段。

图(b)假设发送方TCP一次发送大量数据,使接收方缓冲区满,窗口关闭。但是接收方进程处理时一次只读入1个字节。每读入1个字节,接收方TCP发现缓冲区有1个字节的空间,就立即发送窗口更新通告,于是发送方再送1个字节,窗口又关闭。如此,又造成逐个字节发送的情况。此问题出在接收方不动脑子,一发现有1个字节的缓存空间就迫不急待地发送窗口更新通告,故称为傻瓜窗口综合症(silly windowsyndrome)。

现已对上述两类问题提出解决方案:

(1)发送方策略:奈格尔(Nagle)算法

当发送方进程每次一个字节地向TCP写入数据时,TCP只发送第1个字节,将后续字节缓存。待收到第1字节的确认后,再将缓冲区中的所有字节装成一个报文段发出,然后继续缓存。如果接收方处理太慢,致使发送方缓存数据量已达窗口的一半或已为一个最大长度报文段,则可发送一个新的数据报。此算法已在TCP实现中广为使用。

(2)接收方策略:克拉克(Clark)方案

接收方须待缓冲区可用空间达最大报文段长度或达缓冲区容量一半时才向发送方通告窗口更新。

2.3.4    TCP拥塞控制

TCP拥塞控制也采用窗口机制,称为拥塞窗口,窗口大小根据网络拥塞情况动态调整。由于目前通信线路大都采用光纤,误码率极低,报文段重发的原因基本上是传输时延过长,因此可以用超时重发作为网络拥塞的检测标志。

拥塞窗口调整有两种常用算法:

1.慢速起动算法

拥塞窗口初值置为连接的最大段长。发送方一开始就发送一个最大报文段。如果在定时器到时前收到确认,则拥塞窗口大小加倍、发送方再发送两个最大报文段。一般来说,如果拥塞窗口为n个最大段长,发出n个最大报文段都收到正常确认,则拥塞窗口大小增加为2n;接若如果发出2n个最大报文段后发生超时重传,则拥塞窗口退回n。该算法名为慢速起动,实际上窗口大小呈几何级数增长,速度非常快。这是所有TCP实现必须支持的基本算法。

2.门限算法

在慢速算法的基础上增加一个门限参数。门限初值为64kB。当发生超时重传时,门限值减为当前拥塞窗口的一半,拥塞窗口复位到一个最大段长。然后用慢速起动算法逐渐加大拥塞窗口。当拥塞窗口大小达到门限值后,转为线性增长,也就是每发出一组长度等于拥塞窗口的报文并正常确认后,拥塞窗口增加一个最大段长。

图2.40说明这一过程。设,连接的最大段长为lkB,拥塞窗口初值为64kB,发生超时重传,于是门限减半为32kB,拥塞窗口退为

1-211101115J4501.png

图2.40  拥塞控制的门限算法

lkB,按慢速起动法几何增长。至第6次发送时拥塞窗口到达32kB,其后改为线性增长。至第13次发送40kB报文后发生重传,于是门限又减半为16kB,拥塞窗口重新回到1kB,重复以上过程。

需要指出的是,考虑到拥塞控制后,TCP层有两个窗口:传输滑功窗口和拥塞窗口,前者由接收方根据缓冲区可用空间动态调整,后者由发送方根据重传情况自适应调整。TCP实际允许发送的字节数为两个窗口中的较小值。

2.3.5用户数据协议(UDP)

UDP提供的是无连接的运输层服务,过程简单,但不可靠。许多只包含一次请求和一次响应的客户-服务器应用都采用UDP,因为它无需建连和拆连。话音、视频等实时信号传送只能用UDP,因为它们无法重传。

UDP的头部结构如图2.41所示,其长度为8个字节。源和目的端口的意义和TCP相同。由于它们是两个不同的协议(NSAP),因此可以独立分配各自的端口号。如果一个进程既能使用TCP,也能使用UDP服务,一般倾向于在两个协议中分配相同的端口号。UDP长度包括头部和数据部分。UDP校验和的计算和TCP相同,校验对象包括段头部、数据部分和图2.33所示的伪头部。

1-211101115935137.png

图2.41   UDP段的头部结构

 

下一篇

什么是万维网(WWW)

通信知识

什么是万维网(WWW)

WWW是Internet最为重要的应用,也是Internet飞速发展最直接的推动力,又和IP网络电话密切相关,它的操作模式已为用户广为接受,成为IP网络通信的典型使用环境。本节就WWW的基本原理和技术作一简要介绍。2.4.1 基本概念和术语1.发展背景WWW起源于1989年欧洲核物理研究中心(CERN)。为了方便散布于欧洲各国的科学家及时地交换工作报告、图纸、照片和其它文件,CERN发起建立了一 ...

相关内容

集群通信(高效数据传输的关键技术)

集群通信(高效数据传输的关键技术)

在当今互联网时代,数据传输的速度和效率对于各个领域的应用来说都至关重要。特别是在......

通信知识

2024-03-29

光通信设备(高速传输、稳定性、应用领域)

光通信设备(高速传输、稳定性、应用领域)

引言光通信设备是一种基于光纤传输技术的通信设备,它以光信号作为信息的传输载体,具......

通信知识

2024-03-19

ACL访问控制列表(网络安全中的重要保护措施)

ACL访问控制列表(网络安全中的重要保护措施)

什么是ACL访问控制列表ACL访问控制列表(Access Control Lis......

通信知识

2024-03-08

查看
目录