首页 > 电脑教程/ 正文
在TCP/IP协议簇中有两个传输协议:传输控制协议(介阴s而ssion Control Protocol,TCP)和用户数据报协议(User Datag阻m Protocol,UDP)。TCP是面向连接的,而UDP是无连接的。本节详细讨论TCP协议的控制机制,并简要介绍UDP协议的特点。
TCP协议提供面向连接的可靠的传输服务,适用于各种可靠的或不可靠的网络。TCP用户送来的是字节流形式的数据,这些数据缓存在TCP实体的发送缓冲区中。一般情况下,TCP实体自主地决定如何把字节流分段,组成TPDU发送出去。在接收端,也是由TCP实体决定何时把积累在接收缓冲区中的字节流提交给用户。分段的大小和提交的频度是由具体的实现根据性能和开销权衡决定的,TCP规范中没有定义。显然,即使两个TCP实体的实现不同,也可以互操作。
另外,TCP也允许用户把字节流分成报文,用推进(PUSH)命令指出报文的界限。发送
端TCP实体把PUSH标志之前的所有未发数据组成TPDU立即发送出去,接收端TCP实体同样根据PUSH标志决定提交的界限。
TCP只有一种类型的PDU,11月做TCP段,段头(也叫TCP头或传输头)的格式如图5一21所示,其中的字段如下。
(l)源端口(16位):说明源服务访问点。
(2)目标端口(16位);表示目标服务访问点。
(3)发送顺序号(32位):本段中第一个数据字节的顺序号。
(4)应答顺序号(32):捎带应答的顺序号,指明接收方期望接收的下一个数据字节的顺序号。
(5)偏置值(4位):传输头中32位字的个数。因为传输头有任选部分,长度不固定,所以需要偏置值。
(6)保留字段(6位):未用,所有实现必须把这个字段置全0。
(7)标志字段(6位):表示各种控制信息,其中
URG:紧急指针有效。
ACK:应答顺序号有效。
PSH:推进功能有效。
RST:连接复位为初始状态,通常用于连接故障后的恢复。
SYN:对顺序号同步,用于连接的建立。
F创:数据发送完,连接可以释放。
(8)窗口(16位):为流控分配的信贷数。
(9)检查和(16位):段中所有16位字按模21气l相加的和,然后取1的补码。
(10)紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中的一个位置,此位置之前的数据是紧急数据。
(11)任选项(长度可变):目前只有一个任选项,即建立连接时指定的最大段长。
(12)补丁:补齐32位字边界。
下面对某些字段作进一步的解释.端口编号用于标识TCP用户,即上层协议,一些经常使用的上层协议,例如Telnet(远程终端协议)、F开(文件传输协议)或SMTP(简单邮件传输协议)等都有固定的端口号,这些公用端口号可以在RFC(Request For Collunent)中查到,任何实现都应该按规定保留这些公用端口编号,除此之外的其他端口编号由具体实现分配。
前面提到,TCP是对字节流进行传送,因而发送顺序号和应答顺序号都是指字节流中的某个字节的顺序号,而不是指整个段的顺序号。例如,某个段的发送顺序号为1000,其中包含500个数据字节,则段中第一个字节的顺序号为1000,按照逻辑顺序,下一个段必然从第1500个数据字节处开始,其发送顺序号应为1500。为了提高带宽的利用率,TCP采用积累应答的机制。例如从A到B传送了4个段,每段包含20个字节数据,这4个段的发送顺序号分别为30,50,70和90。在第4次传送结束后,B向A发回一个ACK标志置位的段,其中的应答顺序号为110(即90+20),一次应答了4次发送的所有字节,表示从起始字节到109字节都已正确接收。
同步标志SYN用于连接建立阶段。TCP用三次握手过程建立连接,首先是发起方发送
一个SYN标志置位的段,其中的发送顺序号为某个值x,称为初始顺序号ISN(Initial Sequence
Number),接收方以SYN和ACK标志置位的段响应,其中的应答顺序号应为X+1(表示期望从第X+l个字节处开始接收数据),发送顺序号为某个值Y(接收端指定的IsN)。这个段到达发起端后,发起端以ACK标志置位,应答顺序号为Y+1的段回答,连接就正式建立了.可见,所谓初始顺序号是收发双方对连接的标识,也与字节流的位置有关。因而对发送顺序号更准确的解释应该是:当SYN未置位时,表示本段中第一个数据字节的顺序号:当SYN置位时,它是初始顺序号IsN,而段中第一个数据字节的顺序号应为IsN+1,正好与接收方期望接收的数据字节的位置对应,如图5一22所示.
所谓紧急数据,是指TCP用户认为很重要的数据,例如键盘中断等控制信号。当TCP段中的URG标志置位时,紧急指针表示距离发送顺序号的偏置值,在这个字节之前的数据都是紧急数据。紧急数据由上层用户使用,TCP只是尽快地把它提交给上层协议。
窗口字段表示从应答顺序号开始的数据字节数,即接收端期望接收的字节数,发送端根据这个数字扩大自己的窗口。窗口字段、发送顺序号和应答顺序号共同实现信贷滑动窗口协议。
检查和的检查范围包括整个TCP段和伪段头(Pseudo一header)。伪段头是护头的一部分,如图5一23所示。伪段头和TCP段一起处理有一个好处,如果企把TCP段提交给错误的主机,TCP实体可根据伪段头中的源地址和目标地址字段检查出错误。
由于TCP是和IP配合工作的,所以有些用户参数由TCP直接传送给正层处理,这些参数包含在理头中,例如优先级、延迟时间、吞吐率、可靠性和安全级别等。TCP头和IP头合在一起,代表了传送一个数据单元的开销,共40个字节。
图5一24所示为TCP的连接状态图。事实上,在TCP协议运行过程中,有多个连接处于不同的状态。
UDP也是常用的传输层协议,它对应用层提供无连接的传输服务,虽然这种服务是不可靠的、不保证顺序的提交,但这并没有减少它的使用价值。相反,由于协议开销少而在很多场合相当实用,特别是网络管理方面,大都使用UDP协议。
UDP运行在IP协议层之上,由于它不提供连接,所以只是在护协议之上加上端口寻址能力,这个功能表现在UDP头上,如图5一25所示。
UDP头包含源端口号和目标端口号。段长指整个UDP段的长度,包括头部和数据部分。检查和与TCP相同,但是任选的,如果不使用检查和,则这个字段置O。由于U,的检查和只作用于IP头,并不包括数据部分,所以当UDP的检查和字段为0时,实际上对用户数据不进行校验。
更多 TCP和UDP是什么相关文章
- 提高计算机性能的4种方法
- 学电脑得学多长时间呢?
- 一个当兵回来的人没什么特长没什么文化应该干点什么好?
- 郑州哪一家电脑学校学费比较合理呢?
- 电脑入门知识:路由器安全漏洞的严重性.
- 怎么解决电脑字体模糊?
- 如何让ADSL开机后自动拨号连接网络呢?
- 软件开发学习一般分几个阶段?
- 程序设计应该怎么学呢?
- 如何把硬盘残留数据彻底摧毁
- 能上QQ却不能上网怎么办
- 两个容易被忽视的linux安全权限配置问题
- 网页设计与开发实例教程
- 如何制作网站?
- 教你破解Win7系统常见问题
- 10个java程序员不得不知的调试小技巧
- 计算机网络的分类和应用
- 数字调制技术详细介绍
- 差错控制有哪些表现
- IP协议是什么
- 密钥怎么管理才安全
- 防火墙是什么
- 入侵该如何检测
- 网络管理功能域
- 管理数据库MIB-2
- 网络诊断和配置命令
- 网络需求分析
- 网络规划案例
- 搜索
-
- 热门标签