




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复习,dns概念 dns解析 dns报文格式 dns封装,在windows命令窗口输入( )命令来查看dns服务器的ip。 adnsserver bnslookup cdnsconfig ddnsip,当dns服务器发生故障时,是否可以访问网络上的其他计算机?如果可以,需要什么条件?,dns解析程序的功能是_? a存放主机名字和域名 b仅用于由ip地址查找域名 c仅用于由域名查找ip地址 d实现主机名字与ip地址的互查,第九章 tcp协议,简介 tcp服务 tcp流量控制 tcp差错控制 tcp计时器 tcp拥塞控制 tcp报文格式 tcp连接 tcp操作 本章小结,9.1 tcp简介,tcp/ip传输层提供了两个协议:udp和tcp。 tcp(transmission control protocol,传输控制协议)是 一种面向连接的、可靠的传输层协议, 参看 rfc 793。 传输层协议的三个功能: 创建进程到进程的通信。tcp使用端口号完成进程到进程的通信。 提供控制机制。tcp提供控制,在传输层提供流量控制和差错控制机制。tcp使用滑动窗口协议完成流量控制;使用确认分组、超时和重传来完成差错控制。 负责为进程提供连接机制。传输层应该在发送端和接收端建立连接,把从进程得到的数据流分为可传输单元,把它们编号,然后依次发送,最后在接收端接收,检查并放过那些没有差错的单元,并形成数据流交付给接收进程。当全部数据流发送完毕后,关闭此连接。tcp执行上述操作。,9.1 tcp简介,tcp特点: 面向连接 完全可靠 流型数据传输:tcp负责分段连续的字节流,并转发 全双工:提供双向并发数据流 典型应用 http(超文本传输协议);smtp(简单邮件传输协议) ;telnet以及文件传输系统(ftp)。 由于tcp协议提供的是面向连接和可靠的服务,因此它适用要求提供可靠数据传输的场合,前面我们学到的哪个协议采用tcp封装的?,9.2 进程到进程的通信,主机到主机的通信:ip负责主机到主机的通信,ip作为网络层协议,只能将报文交付给主机。但是,这是一种不完整的交付。,进程到进程的通信:tcp负责将报文交付给适当的进程。,9.2 进程到进程的通信c/s模式,完成进程到进程的通信可以有多种方法,最常用方法是客户/服务器模式(client/server),即本地计算机上客户进程,要从远程计算机上的服务器进程得到服务。,目前操作系统支持多用户和多程序运行环境。由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据报,以及源计算机能收到正确的回复。这是通过使用 tcp 的“端口号”完成的。,9.2 进程到进程的通信端口号,iana将端口划分为三个范围:熟知的(或知名的)、注册的和动态的(或私用的)。详细内容参见/assignments/port-numbers,熟知端口:0-1023,由iana指派和控制,分配给系统的主要和核心服务。如80端口被指定http服务。,注册端口:1024-49151,在iana中注册以防止重复,但是iana不指派也不控制,分配给行业应用程序和进程。如1433分配给microsoft sql server进程。,动态端口:49152-65535,又称为短期端口,既不用注册也不用指派,可以由任何进程使用,用做某些连接的临时端口。,9.2 进程到进程的通信端口号,tcp的熟知端口如下表所示。,9.2 进程到进程的通信套接字地址,一个ip地址和一个端口号合起来称为套接字地址。 要使用tcp服务,需要一对套接字地址:客户端套接字地址和服务器端套接字地址。 客户端套接字地址唯一定义了客户应用程序。 服务器端套接字地址唯一定义了服务器应用程序。,9.3 tcp的服务,流交付服务 全双工服务 面向连接的服务 可靠服务,9.3 tcp的服务,流交付服务 tcp是面向流的协议。tcp允许发送进程以字节流的形式来传递数据,而接收进程把数据作为字节流来接收。 发送缓存和接收缓存 因为发送进程和接收进程产生和消耗数据的速度不一样,因此tcp需要缓存来存储数据。在每一个方向都有两个缓存,即发送缓存和接收缓存。 报文段 tcp把若干字节构成一个分组,叫做报文段。tcp把每一个报文段添加首部,然后把这个报文段交付给ip层传输。 !注意:这些报文段并不一定是等长的。,9.3 tcp的服务,全双工服务:tcp提供全双工服务,即数据在同一时间可双向流动。每一个tcp都有发送和接收缓存,两个方向都可发送报文段。,可靠服务:tcp是可靠的传输协议。它使用确认机制来检查数据是否安全和完整地到达。,面向连接服务:tcp是面向连接的协议。当a的进程要发送数据到b的进程,或从b的进程接收数据时,执行下列事件:,a的tcp通知b的tcp,并得到b的tcp同意。 a的tcp和b的tcp互相交换数据。 在两个进程都没有数据要发送而缓存也变空后,这两个tcp清空它们的缓存。,说明:tcp建立的是一条虚连接,不是物理连接。tcp报文封装成ip后,ip数据报通过不同路径到达目的端,因此收到的ip数据报可能顺序错,可能丢失,可能损伤,可能重传。,9.4 给字节编号,在tcp报文中,和报文段编号相关的有两个字段:序号和确认号。这两个字段都涉及到字节号而不是报文段号。,序号:当字节都被编号后,tcp给每一个报文段指派一个序号。每个报文段的序号就是在这个报文段中的第一个字节数据的序号。如:随机数为1023,要发送2000字节的数据,用四个报文段发送,前三个报文段携带600字节,最后一个携带200字节。,字节号:tcp把一个连接中发送和接收的所有数据字节都编上号。在每一个方向的编号是相互独立的。编号不一定从0开始,是从0到2321之间的随机数。如:随机数为1023,要发送总的数据是2000字节,那么字节号就是从1023到3022。,下面给出每一个报文段的序号:,9.4 给字节编号,确认号:tcp通信是全双工的。当连接建立后,每一方都同时发送数据和接收数据。每一方还使用确认号对它已经收到的字节表示确认。这个确认号定义了这一方期望接收的下一个字节的编号。确认号是累计的,即把正确收到的最后一个字节的编号加1得到就是现在的确认号。如某一方使用5643作为确认号,表示它已经收到了一直到5642以前的所有字节。,?问题:是否这一方已经收到了5642字节的数据?,9.5 流量控制,流量控制:流量控制定义了源端在收到从目的端发来的确认之前,可以发送的数据量。tcp采用可变发送窗口的方式进行流量控制。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整自己的接收窗口(可增大或减小),然后告诉对方,使对方的发送窗口和自己的接收窗口一致。,tcp使用窗口技术来控制流量,以便通信双方能够充分利用带宽。它定义在缓存上的一个窗口,这个窗口叫做滑动窗口,当发送数据和接收确认时这个窗口能够在缓存上滑动。tcp发送数据的多少由这个滑动窗口协议定义。窗口大小决定了在收到目的端确认之前,一次可以传送的数据段的最大数目。,9.5 流量控制,源端不一定必须发送整个窗口值的数据。 发送窗口的大小可以由目的端来增大或减少。 目的端可以在任何时候发送确认。,tcp滑动窗口的几个要点:,滑动窗口协议有3个不同的功能, (1)在不可靠链路上可靠地传输帧; (2)用于保持帧的传输顺序(缓存错序到达的帧); (3)支持流量控制,它是一种接收方能够控制发送方使其降低速度的反馈机制。,tcp的滑动窗口是面向字节的。,9.5 流量控制,如果没有滑动窗口协议,发送端可以一直发送完它缓存中的所有字节(到211),而不考虑接收端的情况。接收端可能满,过量的字节将丢弃,这部分字节将重传。滑动窗口就是发送端必须根据接收端可用的缓存空间调整自己的大小。,发送缓存示例图: 发送缓存占16字节, 其中12字节被占用了,空闲4字节.,9.5 流量控制,接收窗口:接收端可以再接收的字节数,即缓存中可用的字节数。接收缓存为n字节,已占用m字节,则接收窗口为n-m字节。若n=13,m=6,则接收窗口的值为7,如图所示。,7个字节接收窗口,问题:接收窗口的大小等于接收缓存的大小吗?二者的关系?,接收窗口的大小等于接收缓存中可用的字节数。,发送窗口:若发送窗口大于或等于接收窗口,则发送端就进行流量控制。这个窗口包括已发送但未被确认的字节,以及可以发送的字节。,9.5 流量控制,问题:假设发送窗口大小为7,现在发送窗口等于接收窗口(7),是否现在发送端可以再发送7个字节?,它只能发送4个字节,因为已发送3个字节。,9.5 流量控制,发送窗口的滑动:发送端又发送了2个字节(下一个是205),然后收到接收端的确认(接收端期望接收字节203),而接收窗口大小不变(仍为7)。发送端这时可以滑动它的窗口,而原来字节200-203所占的位置可以被再使用。,问题:发送端还可以发送哪些字节?,发送字节205到209字节。,9.5 流量控制,发送窗口的大小调整(扩展和缩小):根据接收窗口的大小,发送端要相应的调整其窗口值。如果接收窗口值增大,发送方窗口大小也相应增大;若接收窗口值减小,发送方窗口大小也相应减小。这种机制可以防止网络拥塞。,发送方开始一次发送3个字节,接收方只能处理大小为2的窗口。接收方丢弃第三个字节,将第三个字节作为确认号返回,并且指定窗口大小为2。在以后的传输中,发送方会自动调整窗口大小。,发送窗口的关闭:接收窗口值为0,则发送端就关闭它的窗口。当接收端宣布非零接收窗口之前,不再发送任何字节。,9.5 流量控制,实例分析:,9.6 差错控制,tcp使用差错控制提供可靠性。差错控制包括:检测受到损伤的报文段、丢失的报文段、失序的报文段和重复的报文段。 差错控制还包括检测出差错后纠正差错的机制。,tcp的差错检测通过三种工具完成:检验和、确认和超时。 每一个报文段都包括检验和字段,用来检查受到损伤的报文段。 若报文受损,由目的端放弃此包。 tcp使用确认方法证实收到的某些报文段,而且这些报文段无损伤的到达目的端。 tcp不使用否认机制。若报文段在超时截止前未被确认,则被认为是受到损伤或已丢失。,9.6 差错控制,受损伤的报文段,源端发送报文段1-3,各200字节。 接收端收到报文段1、2,根据检验和得到没有差错。发回确认信息1601,表明已正确收到1201-1600字节的报文。 发现报文段3受损,当报文段3的超时截止期到,源端重复报文段3 在收到报文段3后,接收端发确认信息1801。,9.6 差错控制,丢失的报文段与受损的报文段情况相似。,丢失的报文段,不同的是受损报文段是被目的端丢弃,丢失的报文段是被某一个中间节点丢失的,并且永远不会到达目的端。,9.6 差错控制,重复的报文段:,网络拥塞时,发送端迟迟没有收到接收端发来的某个报文段的ack包,它可能会认为这个序号的报文段丢失了,于是它会重新发送,这种情况可能会导致接收端在网络恢复正常后收到两个同样序号的报文段,此时接收端会自动丢弃第二次发送的报文段。序号除了具有保证报文段传输可靠性的功能,序号还有消除网络中的重复报文段(同步复制)的作用。,序号和应答号为tcp提供了一种纠错机制,提高了tcp的可靠性。,9.6 差错控制,目的端发出丢失确认。tcp使用累计确认系统。每一个确认是证实一直到由确认号指明的字节为止的所有字节都已收到。,丢失确认,失序的报文段:tcp使用ip的服务,但ip是无连接的网络层协议。因此,目的端收到的tcp报文段是失序的。目的端tcp处理失序报文段的方法:它对失序报文段不确认,直到收到它以前的所有报文段为止。,9.7 计时器,tcp使用了四种计时器:重传、坚持、保活和时间等待。,重传计时器:它处理重传时间,即对报文段确认的等待时间。当tcp发送报文时,创建这个特定报文段的重传计时器。可能发生两种情况:,重传时间的计算:由于采用不同的路径连接,因此不能对所有连接采用相同的重传时间。tcp使用动态重传时间,即每一个连接的重传时间不同,即使对同一个连接,重传时间也是动态变化的。基于往返时间(rrt)的重传时间可成为动态的。,重传时间2 rtt,若在计时器截止时间到之前收到了确认,则撤销此计时器。 若在收到确认前计时器截止时间到,则重传此报文段,并复位计时器。,9.7 计时器,rtt的计算:rtt也要动态计算。有两种方法。,tcp使用时间戳选项。 由tcp发送报文段启动计时器,测量从发送报文段到确认的时间。每一个报文段有一个往返时间。计算下一个报文段的重传时间的rtt计算如下, 通常是90 :,rtt以前的rtt(1 )当前的 rtt,karn算法:假定一个报文段在重传时未被确认,因而又被重传。当发送端tcp收到这个确认时,它无法确认是对原来报文段的确认,还是对重传报文段的确认。karn解决了此问题。在计算新的rtt时,不考虑重传报文段的rtt,不要更新rtt的值,除非你发送了一个报文段并在不需要重传时收到了确认。,9.7 计时器,坚持计时器:,tcp为每一个连接使用一个坚持计时器; 当发送方的tcp收到一个窗口大小为零的确认时,就需要启动坚持计时器; 当坚持计时器期限到时,发送方的tcp就发送一个特殊的探测报文段。,9.7 计时器,保活计时器:防止在两个tcp间的连接实现长时间的空闲。假定客户打开了服务器的连接,传送了一些数据,然后就保持沉默了,也许这个客户出故障了。在这种情况下,这个连接就始终处于打开状态,在服务器端采用保活计时器可以解决这个问题。服务器收到客户信息时,就将计时器复位。超时设置为x小时。当服务器过了x小时,还未收到客户响应,就间隔一定时间发送10个探测报文段,还没收到响应,就终止此连接。,时间等待计时器:在连接终止期间使用。当tcp关闭连接时,并不认为这个连接马上就关闭了。在时间等待期间中,连接处于一种中间过渡状态。,9.8 拥塞控制,拥塞是由于网络中的路由器超载而引起的严重延迟现象。拥塞的发生会造成数据的丢失,数据的丢失会引起超时重传,而超时重传的数据又会进一步加剧拥塞,如果不加以控制,最终将会导致系统的崩溃。,拥塞避免:拥塞造成的数据丢失,仅仅靠超时重传是无法解决的。因此,tcp提供了拥塞控制机制。,tcp的拥塞控制,仍然是利用发送方的窗口来控制注入网络的数据流的速度。减缓注入网络的数据流后,拥塞就会被解除。,9.8 拥塞控制,引入拥塞控制后,发送窗口的大小取决于两个方面的因素: 接收方的处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗项目经理面试指南及医学案例分析模拟题解析
- 2025年中级销售代表面试实战模拟题集
- 2026届四川省成都市航天中学校高一化学第一学期期中检测模拟试题含解析
- 2025注册验船师考试(B级船舶检验法律法规)仿真试题及答案一
- 北京市门头沟区2024-2025学年八年级上学期期中考试生物考试题目及答案
- 公务员模拟面试题及答案
- 2025年IT运维行业IT运维工程师招聘考试模拟题集
- 公务员面试题及答案视频
- 2025年人事行政专员招聘笔试模拟题及解析
- 2026届湖南省醴陵市第二中学化学高三上期中学业质量监测模拟试题含解析
- 2025重庆对外建设集团招聘41人笔试参考题库附带答案详解(10套)
- 《无人机飞行控制技术》全套教学课件
- 石油行业较大危险因素辨识与主要防范措施
- 2025年教育管理领导力案例分析试题及答案
- 护士分配科室管理办法
- 颅内动脉瘤护理病例讨论
- 教师军训团建活动方案
- 新产品开发立项报告
- 2025届广东省深圳市罗湖区英语八年级第二学期期末教学质量检测试题含答案
- 期权开户考试题及答案
- 建筑工程装饰预算课件
评论
0/150
提交评论