欢迎来到天天文库
浏览记录
ID:43760879
大小:1.09 MB
页数:35页
时间:2019-10-13
《网络互连技术教程 李健 第10章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章传输控制协议——TCP10.1TCP10.2TCP连接10.3TCP服务器的工作10.1TCP10.1.1TCP服务10.1.2报文格式TCP协议的传输单元是报文段(segment),两台主机通过报文段交互来建立连接。传输数据。发出确认和关闭连接。TCP的segment包括报文首部和报文数据两部分。码元比特(CodeBits)又称为控制位,共占用了6个比特位,包含的是用来控制连接和数据传输的6种标志,一般称为控制标志,这些标志分别占用1比特,对首部中其他字段进行解释,以指出报文段的目的和内容。这6个比特如图10-2所示。URGACKPSHRSTSYNFIN图10-2码元比特的内
2、容这6个比特的含义分别为:(1)URG:URG比特置1时,表示紧急指针字段可用;(2)ACK:ACK比特置1时,表示确认序号字段可用;(3)PSH:PSH比特置1时,表示本报文段请求急迫(PUSH)操作;(4)RST:连接复位;(5)SYN:序号同步;(6)FIN:发送方字节流结束。10.2TCP连接10.2.1TCP连接的建立与终止10.2.1.1TCP连接的建立过程要使用TCP协议进行通信,在传输数据之前,要先建立一条TCP连接。TCP连接的建立过程和打电话的过程类似。例如,你要给朋友张三打电话(建立与张三的连接),先拨通张三的号码(发送初始化报文段);张三接通,习惯的问一声:“喂
3、”(服务器端发送一个带确认的初始化报文段);你听到后也说一声:“喂”(接到服务器带确认的初始化报文段);然后就可以把你想说的事情告诉张三。TCP连接的建立是一个分为三个步骤的过程,称为“三次握手过程”。示意图10-3描述了这样一个“三次握手过程”,该图中主机A要发起一个和主机B之间的TCP连接。图10-3TCP连接建立的三次握手过程10.2.1.2TCP连接的终止当主机A向主机B发送完全部数据之后,就要发起终止连接的操作了。由于TCP连接的数据传输是全双工数据传输,因此,任何一方都可以自己停止发送,但是仍然可以接收另一台主机发来的数据,直到它也停止发送。整个连接关闭的过程如图10-4所
4、示。接上面的例子,假定主机A主机B发送了299个报文段,则主机B向主机A发送的最后一个数据段确认报文的序号是599,确认号应该是400。图10-4TCP连接关闭过程主机A没有数据要发送了,就要发送一个FIN数据流结束报文段,其中控制标志位中的FIN位置1,表示发送方数据流结束;ACK标志位置1,确认序号位600,序号是400。报文段可以表示为“FIN,SEQ=400,ACK=600”。主机B收到该FIN报文,要发送一个确认报文段,ACK置1,SEQ=600,ACK=401,报文段表示为“ACK=401”。主机B也没有数据要发送了,就发送自己的FIN报文段,SEQ=600,ACK=401
5、,报文段表示为“FIN,SEQ=601,ACK=401”。主机A确认该FIN报文段,SEQ=401,ACK=601。10.2.2TCP传输与控制10.2.2.1TCP传输分类1.TCP交互式数据流远程登陆Rlogin或Telnet属于交互式数据传输形式,在这种交互式方式下,每次从客户传到服务器的是一个字节的按键(而不是每次一行),而且,Rlogin或Telnet需要远程系统(服务器)显示客户端键入的字符。这样就会产生以下4个报文段:segment1:来自客户的交互按键;segment2:来自服务器的按键确认;segment3:来自服务器的按键回显;segment4:来自客户的按键回显确
6、认。我们分析一下可以知道,segment2是一个简单的确认段,segment3是一个包含小数据量的按键回显,可能是一个字节,也可能是多个字节。一般可以将报文段2和3进行合并,将按键确认与按键回显一起发送,这种合并的技术称为有时延的确认。我们看一个例子。主机ATelnet到主机B上,登录时发送用户名“user”字符串。主机B显示一行要求输入口令的字符串“Password:”。我们假设TCP连接已经建立,图10-7给出了从输入用户名开始观察交互数据的传输情况。Segment1的序号是0,它发送了1字节的字母“u”,所以服务器端发回的Segment2确认序号是1;Segment1仅发送了1个
7、字节数据,没有达到服务器端设定的MSS最大端长度。为了把字母“u”立刻提交给服务器端的应用程序,客户端将P控制位设置为1,要求服务器段执行一个“PUSH”操作,即把数据尽快交给应用程序。Segment2中,序号位1,发送字母“u”的回显,并且确认Client发送下一个数据段的起始序号为1,同时也将P控制位设置为1。Segment3是一个简单的确认报文段,“.”是一个简单的表示方法,指示控制位中的“S、F、R、P”均是0。Segment13~Se
此文档下载收益归作者所有