《网络协议》全套PPT电子课件教案-复习.ppt_第1页
《网络协议》全套PPT电子课件教案-复习.ppt_第2页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习,tcp tcp服务 流量控制、差错控制、拥塞控制、计时器,tcp使用4种计时器:重传计时器、坚持计时器、保活计时器和( ) a.延迟计时器 b.时间等待计时器 c.端口计时器 d.服务时间计时器,确认号为1000表示 已成功收到999字节 b. 已成功收到1000字节 c. 已成功收到1001字节 d. 以上都不是,使用()计时器可防止两个tcp之间的连接有长时期空闲。 重传 b.坚持 c. 保活 d.时间等待,第九章 tcp协议,简介 tcp服务 tcp流量控制 tcp差错控制 tcp计时器 tcp拥塞控制 tcp报文格式 tcp连接 tcp服务 本章小结,9.9 tcp的报文格式,两个设备间使用tcp传送的数据单元叫做报文段(segment)。报文包含20-60字节的首部。报文段格式如下:,9.9 tcp的报文格式,源端口地址:在源主机上运行的进程所使用的端口号。同udp源端口地址的使用。,目的端口地址:目的主机上运行的进程使用的端口号。,序号:定义指派给本报文段第一个数据字节的一个数。,确认号:定义源进程期望从对方接收的报文段的序号。,首部长度:指出tcp首部共有多少个4字节字。首部长度可以在20-60个字节之间。,保留:保留后用。,9.9 tcp的报文格式,窗口值:定义对方必须维持的窗口值。16位长,因此窗口值的最大长度是65535字节。,检验和:检验和。,紧急指针:只有当紧急标志置位时,这个字段才有效。这时的报文段中包含紧急数据。紧急指针定义一个数,把这个数加到序号上得出报文段数据部分中最后一个紧急字节。,控制:定义6种不同的控制位或标志。,实例分析,9.9 tcp的报文格式,选项结束:1字节选项,用于最后一个选项,将三种信息通知给目的端。,首部中没有更多选项 剩余部分的32位字是无用数据 从应用程序传递来的数据开始于下一个32位字开始的地方,选项:在tcp首部中可以有多达40字节的可选信息,它们用来把附加信息传递给目的端,或对齐其他选项。,9.9 tcp的报文格式,无操作:1字节选项,用做选项之间的填充。填充为16的倍数,最大报文段长度(mss):16位长选项,定义可以被目的端接收的tcp报文段的最长数据段。,最大报文段长度(mss)表示tcp传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的mss。我们已经见过mss都是1024。其实,mms并不是任何条件下都可协商。当建立一个连接时,每一方都有用于通告它期望接收的mss选项(mss选项只能出现在syn报文段中)。,最大报文段长度,9.9 tcp的报文格式,窗口扩大因子:16位长选项,为了增大窗口值,使用窗口扩大因子。客户端可以在发起syn握手的时候协商窗口扩大因子,数值可以是从0到16之间的任一值(用于表示扩大窗口的位移量),新窗口大小为: 新窗口值首部中定义的 窗口值2窗口扩大因子,这个选项只能够出现在一个syn报文段中,因此当连接建立起来后,在每个方向的扩大因子是固定的。为了使用窗口扩大,tcp通信的两端必须在它们的syn报文段中发送这个选项。主动建立连接的一方在其syn中发送这个选项,被动建立连接的一方只能够在收到带有这个选项的syn之后才可以发送这个选项。每个方向上的扩大因子可以不同。,9.9 tcp的报文格式,时间戳:10字节选项。源端发送报文段时填入此字段,目的端接收时存储此字段,当目的端发送此报文段的确认时,就输入前面在回送回答字段中存储的值。源端将当前时间与这个值的差值即rtt。,发送方在第1个字段中放置一个32bit的值,接收方在应答字段中回显这个数值。包含这个选项的tcp首部长度将从正常的20字节增加为32字节。时间戳是一个单调递增的值。由于接收方只需要回显收到的内容,因此不需要关注时间戳单元是什么。这个选项不需要在两个主机之间进行任何形式的时钟同步。rfc 1323推荐在1毫秒和1秒之间将时间戳的值加1。,9.10 tcp的连接,连接建立 连接终止 连接复位,tcp是面向连接的协议。面向连接即在源端和目的端之间建立了一条虚路径。属于一个报文的所有报文段都沿着这条虚路径发送。整个报文使用一条虚路径使得确认过程以及对损伤或丢失报文的重传更加容易。 tcp中,面向连接的传输通过两个过程来完成:连接建立和连接终止。,9.10 tcp连接 建立,在tcp开始传输数据前,两个终端之间必须先建立一个连接。建立连接的过程可以确保通信双方能同时向对方传送和接收数据。对于一个要建立的连接,通信双方必须用各自的初始化序列号和来自对方成功传输确认的应答号来同步。习惯上将同步信号写为syn,应答信号写为ack。 整个同步的过程完成四个动作:,步骤2、3在同一时间发生,可以合成一个步骤。,主机a发送报文段宣布它原意建立连接,包括关于从a到b的通信量的初始化信息。,主机b发送报文段确认a的请求。,主机a发送报文段确认b 的请求。,主机b发送报文段包括关于从b到a的通信量的初始化信息。,9.10 tcp连接 建立,整个同步的过程称为三次握手,下图说明这个过程:,主机a发送syn给主机b:我的序列号seq是x。,主机a发送syn、ack给主机b:我的序列号seq是x1,应答号ack是y1。从此连接建立,开始传输数据。,主机b发送syn、ack给主机a:我的序列号seq是y,应答号ack是x1(我等待接收第x1号序列)。,tcp的任何一方都可以开始或终止通信。任何机器上的tcp都能被动地等待握手或主动的发起握手。一旦连接建立,数据可以对等地双向流动。,实例分析,9.10 tcp连接 终止,参加交互数据的任何一方都可以关闭连接。要在两个方向上都关闭连接需要四个动作:,在这四个步骤中,步骤2、3不能合并,因为步骤2和3可能在同一时间出现,也可能不出现。连接可在一个方向关闭,但在另一个方向仍然是打开的。,主机a发送报文段,宣布它愿意终止连接。,主机b发送报文段,确认a的请求。然后一个方向的连接关闭了,但另一个方向的连接还没关闭。主机b还能够向a发送数据。,主机a发送报文段,确认b 的请求。,当主机b发完它的数据后,就发送报文段,表示愿意关闭此连接。,9.10 tcp连接 终止,终止连接即四次握手:,当主机a的应用程序数据已经发送完毕时,主机a发送不带任何数据的有ack和fin附加标记的报文段给主机b(fin-finish),当主机b的应用程序没有数据需要再发送给主机a时,它就向主机a发送不带数据的fin报文段(要彻底关闭连接)。,主机b收到a发来的报文段后,先向主机a发送一个不带数据的确认报文ack给b,同时通知相应的应用程序:对方要求关闭连接(先发送ack为了防止在这段时间内,对方重传fin报文段)。,主机a收到fin报文段后,向主机b发送一个不带数据的ack报文给主机b,表示连接彻底关闭。,实例分析,9.10 tcp连接 复位,tcp可以把一个连接复位(复位:当前的连接已经被破坏了)。在下面三种情况后发生复位:,某一端的tcp请求与并不存在的端口进行连接。在另一端的tcp就可以发送报文段,它的rst位置1,以取消这个请求。,由于出现异常,某端的tcp可能愿意把连接异常终止。它就可以发送rst报文段来关闭这一连接。,某端的tcp可能发现在另一端的tcp已经空闲了很长时间,它就可以发送rst报文段来撤销此连接。,9.10 tcp连接 超时与重传,如果在传输过程中丢失了某个序列号的数据段,导致发送端在给定时间间隔内得不到那个数据段的应答,那么那个丢失数据段就会被要求重发。数据段会被保存在发送端的缓冲区中,直到发送端接受到应答号,它才会释放这个缓冲区。这种机制被称为肯定确认与重新传输 (positive acknowledgement and retransmission, par) ,它是许多通信协议用来确保可信度的一种技术.,序列号的第二个作用就是消除网络中的重复包(同步复制)。例如在网络拥塞时,发送端迟迟没有收到接收端发来的某个数据段的ack包,它可能会认为这个序列号的数据段丢失了,于是它会重新发送,这种情况可能会导致接收端在网络恢复正常后收到两个同样序列号的数据段,此时接收端会自动丢弃第二个一样数据段。 序列号和应答号为tcp提供了一种纠错机制,提高了tcp的可靠性。,9.10 tcp连接 状态转换图,9.11 tcp的操作,封装和拆装:,缓存:tcp为每一个连接创建发送缓存和接收缓存。,9.11 tcp的操作,复用和分用:多个应用程序需要使用tcp的服务,而只有一个tcp协议,因此需要复用和分用。,9.11 tcp的操作,推送数据:发送端应用程序可以请求推送操作(push)。表示发送端tcp不必等待窗口被填满,它每创建一个报文段就立即发送。发送端tcp必须设置推送位(psh)以告诉接收端tcp,这个报文段所包括的数据必须尽快交付给接收应用程序,而不必等待更多的数据到来。,典型应用:服务器推送(server push),推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息。服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接。当服务器需要再次发送一批数据时,浏览器显示数据并保持连接。以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推。 现在众多的http服务器都采用了推送服务。,9.11 tcp的操作,紧急数据 tcp提供了“紧急方式(urgent mode)”,它使一端可以告诉另一端有些具有某种方式的“紧急数据”已经放置在普通的数据流中,需要尽快处理。另一端被通知这个紧急数据在数据流中,由接收方决定如何处理。 可以通过设置tcp首部中的两个字段来发出这种紧急数据已经被放置在数据流中的通知。urg位被置1,并且一个16bit的紧急指针被置为一个正的偏移量,该偏移量必须与tcp首部中的序号字段相加,以便得出紧急数据的最后一个字节的序号。 紧急指针通常由应用层的程序处理,例如telnet和rlogin这样的程序,当它们从服务器到客户使用紧急方式时,意味着在这个方向上的数据流很可能要被客户的tcp停止。但如果服务器进程进入了紧急方式,尽管它不能够发送任何数据,服务器tcp也会立即发送紧急指针和urg标志。而客户tcp接收到这个通知时就会通知客户进程,于是客户可以从服务器读取其输入、打开窗口并使数据流动。,9.12 tcp与udp协议的比较,tcp与udp相同:传输层协议,使用端口号进行通信。 tcp与udp的不同:,本章小结,tcp操作 tcp控制:差错、流量、时间 tcp报文格式 tcp连接,作业,什么是tcp连接建立的三次握手?什么是tcp连接终止的四次握手? 写出几个你常用的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论