资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1复习lDNS概念lDNS解析lDNS报文格式lDNS封装在Windows命令窗口输入( )命令来查看DNS服务器的IP。 ADNSserver BNslookup CDNSconfig DDNSip当DNS服务器发生故障时,是否可以访问网络上的其他计算机?如 果可以,需要什么条件?DNS解析程序的功能是_? A存放主机名字和域名 B仅用于由IP地址查找域名 C仅用于由域名查找IP地址 D实现主机名字与IP地址的互查2第九章 TCP协议 简介 TCP服务 TCP流量控制 TCP差错控制 TCP计时器 TCP拥塞控制 TCP报文格式 TCP连接 TCP操作 本章小结39.1 TCP简介lTCP/IP传输层提供了两个协议:UDP和TCP。 TCP( Transmission Control Protocol,传输控制协议)是 一种面向连面向连 接的、可靠接的、可靠的传输层协议, 参看 RFC 793。l传输层协议的三个功能:l创建进程到进程的通信。TCP使用端口号完成进程到进程的 通信。l提供控制机制。TCP提供控制,在传输层提供流量控制和差 错控制机制。TCP使用滑动窗口协议完成流量控制;使用确认 分组、超时和重传来完成差错控制。l负责为进程提供连接机制。传输层应该在发送端和接收端建 立连接,把从进程得到的数据流分为可传输单元,把它们编号 ,然后依次发送,最后在接收端接收,检查并放过那些没有差 错的单元,并形成数据流交付给接收进程。当全部数据流发送 完毕后,关闭此连接。TCP执行上述操作。49.1 TCP简介lTCP特点:面向连接完全可靠流型数据传输:TCP负责分段连续的字节流,并转发全双工:提供双向并发数据流l典型应用 HTTP(超文本传输协议);SMTP(简单邮件传输协议) ; TELNET以及文件传输系统(FTP)。l由于TCP协议提供的是面向连接和可靠的服务,因此它适用要求提供可靠数据传输的场合前面我们学到的哪个协议采用TCP封装的?59.2 进程到进程的通信l主机到主机的通信:IP负责主机到主机的通信,IP作为 网络层协议,只能将报文交付给主机。但是,这是一种不 完整的交付。进程到进程的通信:TCP负责将报文交付给适当的进程。69.2 进程到进程的通信C/S模式l完成进程到进程的通信可以有多种方法,最常用方法是客户/ 服务器模式(Client/Server),即本地计算机上客户进程,要 从远程计算机上的服务器进程得到服务。l目前操作系统支持多用户和多程序运行环境。由于大多数网 络应用程序都在同一台机器上运行,计算机上必须能够确保目 的地机器上的软件程序能从源地址机器处获得数据报,以及源 计算机能收到正确的回复。这是通过使用 TCP 的“端口号端口号”完成的。79.2 进程到进程的通信端口号lIANA将端口划分为三个范围:熟知的(或知名的)、注册的和动态的(或私用的)。详细内容参见 http:/www.iana.org/assignments/port-numbers F熟知端口:0-1023,由IANA指派和控制,分配给系统的主 要和核心服务。如80端口被指定HTTP服务。F注册端口:1024-49151,在IANA中注册以防止重复,但是 IANA不指派也不控制,分配给行业应用程序和进程。如 1433分配给Microsoft SQL Server进程。F动态端口:49152-65535,又称为短期端口,既不用注册也不用指派,可以由任何进程使用,用做某些连接的临时端口。89.2 进程到进程的通信端口号lTCP的熟知端口如下表所示。端口协议说明7Echo将收到的数据报回送到发送端9Discard丢弃收到的数据报13Daytime返回日期和时间20FTP,数据文件传送协议(数据连接)21FTP,控制文件传送协议(控制连接)23TELNET终端网络25SMTP简单邮件传送协议53 DNS域名服务器79FingerFinger80HTTP超文本传送协议110POP3邮局传输协议 111RPC远程过程调用119NNTP新闻传输协议99.2 进程到进程的通信套接字地址l一个IP地址和一个端口号合起来称为套接字地址。l要使用TCP服务,需要一对套接字地址:客户端套接字地址和服务器端套接字地址。l客户端套接字地址唯一定义了客户应用程序。l服务器端套接字地址唯一定义了服务器应用程序。109.3 TCP的服务l流交付服务l全双工服务l面向连接的服务l可靠服务119.3 TCP的服务l流交付服务TCP是面向流的协议。TCP允许发送进程以字节流的形式来传递数据,而接收进程把数据作为字节流来接收。发送缓存和接收缓存因为发送进程和接收进程产生和消耗数据的速度不一样,因 此TCP需要缓存来存储数据。在每一个方向都有两个缓存,即发送缓存和接收缓存。报文段TCP把若干字节构成一个分组,叫做报文段。TCP把每一个 报文段添加首部,然后把这个报文段交付给IP层传输。!注意:这些报文段并不一定是等长的。129.3 TCP的服务l全双工服务:TCP提供全双工服务,即数据在同一时间可双向 流动。每一个TCP都有发送和接收缓存,两个方向都可发送报文 段。l可靠服务:TCP是可靠的传输协议。它使用确认机制来检查数据是否安全和完整地到达。l面向连接服务:TCP是面向连接的协议。当A的进程要发送数 据到B的进程,或从B的进程接收数据时,执行下列事件:uA的TCP通知B的TCP,并得到B的TCP同意。uA的TCP和B的TCP互相交换数据。u在两个进程都没有数据要发送而缓存也变空后,这两个 TCP清空它们的缓存。 说明:TCP建立的是一条虚连接,不是物理连接。TCP报文 封装成IP后,IP数据报通过不同路径到达目的端,因此收到 的IP数据报可能顺序错,可能丢失,可能损伤,可能重传。139.4 给字节编号在TCP报文中,和报文段编号相关的有两个字段:序号和 确认号。这两个字段都涉及到字节号而不是报文段号。序号:当字节都被编号后 ,TCP给每一个报文段指 派一个序号。每个报文段 的序号就是在这个报文段 中的第一个字节数据的序 号。如:随机数为1023, 要发送2000字节的数据, 用四个报文段发送,前三 个报文段携带600字节, 最后一个携带200字节。 字节号:TCP把一个连接中发送和接收的所有数据字节都编 上号。在每一个方向的编号是相互独立的。编号不一定从0开 始,是从0到2321之间的随机数。如:随机数为1023,要发 送总的数据是2000字节,那么字节号就是从1023到3022。 下面给出每一个报文段的序号:报文段1报文段2报文段3报文段4序号:1023(范围:1023-1622)序号:1623(范围:1623-2222)序号:2223(范围:2223-2822)序号:2823(范围:2823-3022)149.4 给字节编号确认号:TCP通信是全双工的。当连接建立后,每一方都 同时发送数据和接收数据。每一方还使用确认号对它已经 收到的字节表示确认。这个确认号定义了这一方期望接收 的下一个字节的编号。确认号是累计的,即把正确收到的 最后一个字节的编号加1得到就是现在的确认号。如某一 方使用5643作为确认号,表示它已经收到了一直到5642以 前的所有字节。?问题:是否这一方已经收到了5642字节的数据?159.5 流量控制流量控制:流量控制定义了源端在收到从目的端发来的确认之 前,可以发送的数据量。TCP采用可变发送窗口的方式进行流 量控制。发送窗口在连接建立时由双方商定。但在通信的过程 中,接收端可根据自己的资源情况,随时动态地调整自己的接 收窗口(可增大或减小),然后告诉对方,使对方的发送窗口 和自己的接收窗口一致。 TCP使用窗口技术来控制流量,以便通信双方能够充分利用带 宽。它定义在缓存上的一个窗口,这个窗口叫做滑动窗口滑动窗口,当 发送数据和接收确认时这个窗口能够在缓存上滑动。TCP发送 数据的多少由这个滑动窗口协议定义。窗口大小决定了在收到 目的端确认之前,一次可以传送的数据段的最大数目。 169.5 流量控制源端不一定必须发送整个窗口值的数据。 发送窗口的大小可以由目的端来增大或减少。 目的端可以在任何时候发送确认。TCP滑动窗口的几个要点:滑动窗口协议有3个不同的功能,(1)在不可靠链路上可靠地传输帧;(2)用于保持帧的传输顺序(缓存错序到达的帧); (3)支持流量控制,它是一种接收方能够控制发送方使其降 低速度的反馈机制。TCP的滑动窗口是面向字节的。179.5 流量控制如果没有滑动窗口协议,发送端可以一直发送完它缓存中的所 有字节(到211),而不考虑接收端的情况。接收端可能满, 过量的字节将丢弃,这部分字节将重传。滑动窗口就是发送端 必须根据接收端可用的缓存空间调整自己的大小。发送缓存示例图: 发送缓存占16字节, 其中12字节被占用了,空闲 4字节.189.5 流量控制接收窗口:接收端可以再接收的字节数,即缓存中可用的字节 数。接收缓存为N字节,已占用M字节,则接收窗口为N-M字节 。若N=13,M=6,则接收窗口的值为7,如图所示。7个字节 接收窗口问题:接收窗口的大小等于接收缓存的大小吗?二者的关系?接收窗口的大小等于接收缓存中可用的字节数。19发送窗口:若发送窗口大于或等于接收窗口,则发送端就进行 流量控制。这个窗口包括已发送但未被确认的字节,以及可以 发送的字节。9.5 流量控制问题:假设发送窗口大小为7,现在发送窗口等于接收窗口 (7),是否现在发送端可以再发送7个字节?它只能发送4个字节,因为已发送3个字节。209.5 流量控制发送窗口的滑动:发送端又发送了2个字节(下一个是205), 然后收到接收端的确认(接收端期望接收字节203),而接收窗 口大小不变(仍为7)。发送端这时可以滑动它的窗口,而原来 字节200-203所占的位置可以被再使用。问题:发送端还可以发送哪些字节?发送字节205到209字节。219.5 流量控制发送窗口的大小调整(扩展和缩小):根据接收窗口的大小, 发送端要相应的调整其窗口值。如果接收窗口值增大,发送方 窗口大小也相应增大;若接收窗口值减小,发送方窗口大小也 相应减小。这种机制可以防止网络拥塞。发送方开始一次发送3 个字节,接收方只能处 理大小为2的窗口。接 收方丢弃第三个字节, 将第三个字节作为确认 号返回,并且指定窗口 大小为2。在以后的传 输中,发送方会自动调 整窗口大小。 发送窗口的关闭:接收窗口值为0,则发送端就关闭它的窗口。 当接收端宣布非零接收窗口之前,不再发送任何字节。229.5 流量控制实例分析:239.6 差错控制TCP使用差错控制提供可靠性。差错控制包括:检测受到损 伤的报文段、丢失的报文段、失序的报文段和重复的报文段。 差错控制还包括检测出差错后纠正差错的机制。TCP的差错检测通过三种工具完成:检验和、确认和超时。每一个报文段都包括检验和字段,用来检查受到损伤的 报文段。若报文受损,由目的端放弃此包。TCP使用确认方法证实收到的某些报文段,而且这些报 文段无损伤的到达目的端。TCP不使用否认机制。若报文段在超时截止前未被确认 ,则被认为是受到损伤或已丢失。249.6 差错控制l 受损伤的报文段u 源端发送报文段1-3, 各200字节。u接收端收到报文段1、2 ,根据检验和得到没有 差错。发回确认信息 1601,表明已正确收到 1201-1600字节的报文。u发现报文段3受损,当 报文段3的超时截止期 到,源端重复报文段3u在收到报文段3后,接 收端发确认信息1801。259.6 差错控制u丢失的报文段与受 损的报文段情况相似 。l丢失的报文段u不同的是受损报文 段是被目的端丢弃, 丢失的报文段是被某 一个中间节点丢失的 ,并且永远不会到达 目的端。269.6 差错控制重复的报文段:网络拥塞时,发送端迟迟没有收到接
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号