络的性能会更好些。 3.5 TCP的流量控制
TCP采用可变发送窗口的方式进行流量控制。发送窗口是指当发送端在未收到确认时还能够继续发送报文段的个数。窗口大小的单位是字节。在TCP报文段首部的窗口字段写入的数值就是当前设定的接收窗口数值。
发送窗口在连接建立时由双方商定。在通信的过程中接收端可根据自己的资源情况,随时动态地调整自己的接收窗口,然后告诉对方,使对方的发送窗口和自己的接收窗口一致。
实现流量控制并非仅仅为了使接收端来得及接收。如果发送端发出的报文过多会使网络负荷过重。由此会引起报文段的时延增大,这将会使主机不能及时地收到确认,因此会重发更多的报文段,而这又会进一步加剧网络的拥塞。为了避免发生拥塞,主机应当降低发送速率。 3.5 TCP连接管理
运输连接的建立和释放是每一次面向连接通信中必不可少的过程,运输连接的管理就使运输连接的建立和释放都能正常的进行。 在连接建立的过程中要解决以下三个问题: (1) 要使每一方都知道对方的存在;
(2) 要允许双方协商一些参数(如,最大报文段长度,最大窗口的大等); (3) 能够运输实体资源(如缓冲区大小,连接表中的项目等)进行分配。
在数据连接建立的过程叫做三次握手:
(1) 主机A的TCP向主机B发送请求连接报文段,其首部中的同步比特SYN应置
1,同时选择一个序号X,商定为起始序号;
(2) 主机B的TCP收到连接请求报文段后,如果同意则发回确认,在确认报文
段中置1,确认序号为X+1,同时为自己选择一个序号Y。
(3) 主机A的TCP收到此报文段后还要向B给出确认,其确认序号为Y+1; (4) 各主机的TCP通知上层应用进程连接已建立。
在数据传输结束后,通信的双方都可以发出释放连接的请求。与建立连接相类似,释放过程也是三次握手:
(1) 假设A先发出释放请求,则在发给B的TCP报文段首部的终止比特FIN1; (2) B收到请求后发出确认,此时A到B的连接就释放了,连接处于半关闭状
态;
(3) 若B也发出释放请求,A收到后发出确认。这时反向连接也释放了。整个
连接就全部释放了。 3.6 用户数据报协议UDP
用户数据报协议UDP只在IP的数据报服务的基础上增加很少的一点功能,看图1,很形象的说明了UDP和TCP之间的差别。UDP的可靠服务必须由应用层来完成。
UDP的首部字段很简单,只有8个字节,由四个字段组成,每个字段都是两个字节。分别为:源端口字段,目的端口字段,长度字段,检验和字段。 4.1 应用层的概述
应用层协议并不是解决用户各种具体运用的协议,解决具体应用问题的应该是应用进程,应用层则是规定应用进程在通信时所遵循的协议。 4.2 应用层协议简介
4.2.1 文件传送协议FTP、TFTP
FTP是Internet上使用最广泛的文件传送协议,它屏蔽了各计算机系统的字节,因而适合于异构网络中任意计算机之间传送文件,它支持许多不同文件类型和文件组织形式。FTP是基于TCP的,它使用的端口号为21。
TFTP是FTP功能的一个子集,简化了FTP实现的复杂性,TFTP使用的是UDP数据报,因此TFTP要有自己的差错纠正措施。TFTP只支持文件传输,而不支持交互,因此没有庞大的命令集,其端口号为69。 4.2.2 简单邮件传输协议SMTP
SMTP就是在两个报文传送代理MTA之间的通信协议。SMTP规定了十四条命令和二十一种应答信息,由一个三位数字的代码开始,后面附上(也可不附上)很简单的文字说明。SMTP通信的三个主要阶段是:(1)连接建立;(2)邮件传送;(3)连接释放。 4.2.3 远程登录TELNET
TELNET是一个简单的终端协议。用户用TELNET就可以在其所在地通过TCP连接注册到远地的另一个主机上。TELNET能把用户的击键传到远地主机,同时也
能把远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
结束语:TCP协议与IP协议是TCP/IP体系结构中的关键,正是由于IP网际协议解决了异构网之间的连接与寻址问题,TCP运输协议解决了端到端的可靠字节服务,使得Internet得到了广泛的应用。TCP/IP协议将不断地得到完善,IPV6将成为下一代的IP,其功能将更加强大。