版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章网络互联与系统调试
主编:周鸿旋本章学习要点了解面向连接和面向无连接服务的基本概念。掌握IP数据报的基本组成及结构,掌握IP数据报的传输、封装和重组。掌握TCP、UDP和ICMP协议原理、组成和应用熟练使用Windwos下的基本网络命令和工具。5.1面向连接和面向无连接的解决方案网络互联的动力:更大范围的资源共享网络互联:HOST-LAN、LAN-LAN/WAN为什么需要网络互联互联网(internet):两个或多个网络构成互联网。为什么会存在多种不同的网络(协议)?历史原因:不同公司的网络产品大量使用。价格原因:网络产品价格低使很多人有权决定使用何种网络。技术原因:不同网络采用不同技术、不同硬件、不同协议。5.1面向连接和面向无连接的解决方案
连接:通信系统中两个对等实体为数据交换而采用的结合方式。连接是计算机网络通信中一个非常重要的概念,表明了通信双方的以何种方式建立通信的渠道。计算机网络的通信要么是面向连接的,要么是无连接的。这些方法揭示了网络上实现通信的两种途径。网络互联解决方案5.1.1面向连接的解决方案通信之前建立连接,通信过程中保持连接,通信结束拆除连接。5.1.2面向非连接的解决方案通信双方不需要建立和维持连接网络互联方法—级联虚电路级联虚电路(ConcatenatedVirtualCircuits)的工作过程建立连接当目的主机不在本子网内时,则在子网内找一个离目的网络最近的路由器,与之建立一条虚电路;该路由器与外部网关建立虚电路;该网关与下一个子网中的一个路由器建立虚电路。重复上述操作,直到到达目的主机。传输数据相同连接的分组
沿同一虚电路按
照顺序传输;网关根据需要转
换分组格式和虚
电路号。拆除连接网络互联方法—无连接网络互联无连接网络互联(ConnectionlessInternetworking)的工作过程无连接网络互联的工作过程与数据报子网的工作过程相似。每个分组独立路由,不保证分组按顺序到达,提高网络利用率。其中,连接不同子网的多协议路由器做协议转换,包括分组格式转换和地址转换等。级联虚电路与无连接网络互联的比较级联虚电路优点路由器预留缓冲区等资源,保证服务质量。分组按序号传输。分组的报文头部较短。缺点路由器需要大量内存存储虚电路信息。一旦发生拥塞,没有其它路由,健壮性差。如果网络中有一个不可靠的数据报子网,级连虚电路很难实现。无连接网络互联优点能够容忍拥塞,并能适应拥塞。健壮性好。可用于多种网络互联。无连接网络互联的缺点分组的报文头部较长。不能保证分组按序号到达。不能保证服务质量。面向连接服务无连接服务参考模式电话系统邮政系统特点静态分配资源;传输前需要建立连接动态分配资源可靠性提供可靠的报文流服务不能防止报文的丢失、损坏、重复和失序对目的地址的要求仅在连接阶段需要完整的目的地址需要为每一个报文提供完整的目的地址适用场合在一段时间内向同一目的地发送大量报文;实时性要求少量零星报文分类及示例1.可靠消息流-文件传输2.可靠字节流-远程登录3.不可靠连接-数字化声音1.数据报-广播/组播2.可靠的数据报-挂号邮件3.请求应答-数据库查询面向连接与无连接服务比较5.2IP数据报
IP是网络互连协议(InternetProtocol)的简称。IP协议具有良好的适应性,因此,IP协议得到广泛使用,成为支撑Internet的基础。IP协议提供的是一种无连接的、不可靠的、尽力发送的服务,把数据从源端发送到目的端。IP数据报在经过网络传输时,有可能因为网络拥塞、链路故障等原因而造成丢失或出错。对此,IP协议仅具有有限的错误报告功能,它调用ICMP协议来实现差错报告。数据报内容的差错捡测和恢复则交给高层(传输层协议--TCP)去完成。IP是TCP/IP协议集的核心协议之一,协议的内容包括:基本传输单元的格式,也就是IP报文的类型与定义、IP报文的地址以及分配方法、IP报文的路由转发以及IP报文的分段与重组。IP数据报(packet)是IP协议的基本处理单元,它由两部分组成:报文头和数据部分,如图5-4所示。所有的TCP、UDP及ICMP数据都以IP数据报格式传输。
IP数据报IP数据报的格式
IP数据报(packet)是IP协议的基本处理单元,它由两部分组成:报文头和数据部分。上图给出了IP数据报的格式。IP数据报的报文头包含一些必要的控制信,它本身有20个字节的固定部分和变长的可选项(option)部分构成。
1、版本号(Version):IP协议的版本号,它占用4位。
2、长度字段:头长度(HeaderLength)和总长度(TotalLength)。头长度字段占用4位,表示报文头的长度。它的数值是以4字节为单位表示长度,即IP报文头中真正的字节数应该等于头长度值乘以4。IP报文头又分为固定部分和选项(option)部分,固定部分正好是20个字节,而选项部分为变长,因此需要有用一个字段来给出IP报文头的长度。而且若选项部分长度不为4的倍数,则还应根据需要填充(padding)1到3个字节以凑成4的倍数。总长度字段表示整个IP报文的长度(即包括报文头又包括数据部分),它以字节为单位。总长度字段占用16位,所以IP数据报最长可达64K字节。
3、服务类型(TypeofService)和优先级:IP报文头中的服务类型字段规定了对于本数据报的处理方式。该字段总共为1个字节,被分为5个子域。其结构如下图:
生存周期防止死循环的发生
数据报生存时间(TTL,Timetolive):IP协议中提出了的生存时间TTL(TimeToLive)的控制,它限制了一个报文在网络中的存活时间。报文头的生存时间被初始化设置为最大值255。在报文每经过一个路由器时,其TTL值减1,直到它的值减为0时,则丢弃该报文。这样,即使在网络中出现循环路由,循环转发的IP报文也会在有限的时间内被丢弃。头部校验和头校验和(HeaderChecksum):头校验和字段用于保证头部数据的正确性。
保证IP数据报报头的完整性,节省路由器处理IP数据报报头时间地址
源IP地址
目标IP地址
源和目的地址(Source/DestinationIPAddress):源端地址和目的地址,分别表示该报文的发送者及接收者。
分段(fragment):可以在任何必要的中间路由器上进行,而重组仅在目的主机处进行。在IP包头中,共有三个字段用来实现对数据报的分段和重组:标识符(identification)、标志域(flag)和分段偏移值(fragmentoffset)。
标识符:是一个无符号整型值,它是IP协议赋予报文的标识,属于同一个报文的分段具有相同的标识符。标识符的分配绝不能重复,IP协议每发送一个IP报文,则要把该标识符的值加1,作为下个报文的标识符。
报文标志域:为三个比特,但只有低两位比特有效。每个比特的意义如下:比特0(MF位), 最终分段标志(MoreFragment)
比特1(DF位), 禁止分段标志(Don’tFragment)
比特2, 未用
当DF位被置为1,则该报文不能被分段。假如此时IP数据报的长度大于网络的MTU值,则根据IP协议把该报文丢弃,同时向源端返回出错信息。
MF标志位置为0时,说明该分段是原报文的最后一个分段。
分段偏移值:指出本分段的第1个字节在初始的IP报文中的偏移值,该偏移量以8字节为单位。协议类型(Protocol):协议类型字段的内容指出IP报文中数据部分是属于哪一种协议(高层协议)的,接收端则根据该协议类型字段的值来确定应该把IP报文中的数据交给哪个上层协议去处理。常见的上层协议包括TCP,UDP,ICMP,IGMP等。其对应的协议类型分别为6,17,1,2。5.2.2IP数据报在INTERNET上的传输
要点:要有目标地址IP经过路由要转换目的地掩码下一跳直接连接直接连接目的地掩码下一跳直接连接直接连接
R1路由表
R3路由表
IP报文要交给数据链路层,封装成帧之后才能发送。理想情况,IP报文正好放在一个物理帧中,这样可以使得网络传输的效率最高。而实际的物理网络所支持的最大帧长各不相同。例如,以太网帧中最多可以容纳1500字节,而一个FDDI帧中可以容纳4470字节的数据。我们把这个上限称为物理网络的最大传输单元MTU(MaximumTransferUnit)。有些网络的MTU非常小,其值可能只有128个字节。
5.2.3IP数据报的分段与重组上图给出了一个对IP报文进行分段的网络环境示例。在上图(a)中,两个以太网通过一个远程网互联起来。以太网的MTU都是1500,但是中间的远程网络的MTU为620个字节。如果主机A现在发送给B一个长度超过620字节的IP报文,首先在经过路由器R1时,就必须把该报文分成多个分段。
在进行分段时,每个数据片的长度依照物理网络的MTU而确定。由于IP报文头中的偏移字段的值实际上是以8字节为单位,所以要求每个分段的长度必须为8的整数倍(最后一个分段除外,它可能比前面的几个分段的长度都小,它的长度可能为任意值)。图(b)是一个包含有1400字节数据的IP报文,在经过图(a)所示网络环境中路由器R1后,该报文的分段情况。从图中可以看出,每个分段都包括各自的IP报文头。而且该报文头和原来的IP报文头非常相似,除了MF标志位、分段偏移、校验和,等几个字段外,其它内容完全一样。
重组(Reasembly)是分段的逆过程,把若干个IP分段重新组合后还原成原来的IP报文。
在目的端收到一个IP报文时,可以根据其分段偏移和MF标志位来判断它是否一个分段。如果MF位是0,并且分段偏移为0,则表明这是一个完整的IP数据报。否则,如果分段偏移不为0,或者MF标志位为1,则表明它是一个分段。这时目的地端需要实行分段重组。IP协议根据IP报文头中的标识符字段的值来确定哪些分段属于同一个原始报文,根据分段偏移来确定分段在原始报文中的位置。如果一个IP数据报的所有分段都正确地到达目的地,则把它重新组织成一个完整的报文后交给上层协议去处理。5.3TCP与UDP学习要点:端到端通信的概念TCP提供的服务内容TCP的流量控制和可靠性实现UDP的协议特点和提供服务5.3TCP/UDP消除网络层的多样性和不可靠性。提供从源主机到目的端主机可靠的、价格合理的、与实际使用的网络无关的信息传输。应用层传输层下三层应用层传输层下三层RRRRR向上提供标准的传输服务向下屏蔽不同的通信子网用户层应用程序传输服务传输实体(transportentity)完成传输层功能对等通信实体的硬软件。利用网络提供的点到点的分组传输服务向高层提供端到端的传输服务。传输层提供两种服务面向连接的传输服务(TCP)包括三个阶段:连接建立,数据传输,释放连接。其中释放连接的方式有两种:不对称方式:任何一方都可以关闭双向连接。对称方式:每个方向的连接单独关闭,双方都执行Disconnect才能关闭整条连接。无连接的传输服务(UDP)
TCP协议提供的服务
TCP是传输层协议,实现端到端(end-to-end)通信;在端主机上实现;屏蔽下层网络提供的服务质量的差别,为应用程序提供稳定可靠的服务。但不能实现组播功能。
TCP对上层提供面向连接可靠的通信服务。使用“三次握手”的方式建立一个连接,数据传输完成之后,任何一方都可以断开该连接;端到端全双工连接。
完全可靠性(completereliability)
TCP具有差错恢复、排序等功能。
TCP协议对每个传输的字节进行编号。在每个报文中,描述第一个字节的序号随该报文一起传输,称为报文序号。每个TCP报文中还带有个确认号,表示接收方希望接收的下一个字节的序号,同时它也说明所有在该序号之前的数据都已经正确地接收到,否则,重新传输该报文。
5.3.1传输控制TCP协议
TCP是面向连接的协议;采用“三次握手”(three-wayhandshake)方式来建立连接。工作过程用图表示。
在TCP协议中用一个发送方的序号和一个接收方的序号合起来唯一地标识一条连接。在图中,设主机B中运行一个服务进程,它一直处于被动打开(passiveopen)状态,不断检测是否有客户进程提交来的连接请求,若有,则立即作出响应。
例如,当主机A中的客户进程要想跟B建立一个TCP连接时:1、TCP的可靠性实现
(1)主机A向B发送一个同步命令,即SYN=1的一个TCP连接请求报文,同时为该报文生成一个序号SEQ(SequenceNumber),例如SEQ=x,放在报文头中一起发送出去。(2)如果主机B接收本次连接请求,则返回一个同步加确认报文(SYN=1且ACK=1),这就是“第二次握手”。其中,序号主机B生成,例如SEQ=y,与x的值无关。用第一个报文序号值加1来作为对它的确认。(3)最后,主机A再向B发送第二个报文(序号加1,即SEQ=x+1),同时还要对从主机B发来的报文进行确认。
实际上,TCP协议建立连接的过程就是一个通信双方序号同步的过程。建立连接的每一方都发送自已的初始序列号,并把收到的对方的初始序列号作为相应的确认序列号,向对方发送确认。如下示:
(1)A->BSYN 我的序列号为x;
(2)B->ASYN&ACK我的序列号为y,你的序列号为x;
(3)A->BACK 我的序列号为x+1,你的序列号为y;这就是TCP协议所谓的“三次握手”方法。TCP协议规定在连接接收方发送的确认序号的值等于初始序号的值加1。三次握手协议中的初始序号和确认序号保证了建立连接的过程中不会造成混淆。
TCP采用长度可变的发送窗口–滑动窗口,来进行流量控制,窗口大小的单位是字节。TCP协议中滑动窗口的含义是指发送方在未收到接收方返回的确认信息的情况下,最多能发送多少字节的数据。实际上,在每个TCP报文头中的窗口(window)字段的值就是当前设定的接收窗口的大小。
在图中,表示发送端需要发送的数据总共有800字节,分为8个报文段。假设事先约定好窗口大小为500字节,即允许发送端在未收到确认之前最多可以连续发送500个字节的数据。图中,发送窗口当前的位置表示前两个报文段(其字节序号为1~200)已经发送过,并收到了接收端的确认。假如发送方又发送了两个报文段但未收到确认,则现在它最多还能发送3个报文段。发送端在收到接收方返回的确认后,就可以将发送窗口向前滑动。
实际上,发送窗口在建立连接时由通信双方商定,更重要的是,在通信过程中,接收端可以根据本地资源的情况动态地调整自己的接收窗口的大小,并通知对方,使对方的发送窗口和自己的接收窗口一致。
2、TCP缓冲、流控与窗口 重发(retransmission)
当TCP发送数据时,发送方通过一种重发方案来补偿包的丢失,且通讯的双方都要参与。当接收方TCP收到数据时,它要回发给发送方一个确认(acknowledgement)。当发送方发送数据时,TCP就启动一个定时器。在定时器到点之前,如果没有收到一个确认,则发送方重发数据。 自适应(adaptive)重发
TCP通过测量收到一个应答所需的时间来为每一活动的连接估计一个往返延迟(round-tripdelay)。当发送一个消息时,TCP记录发送的时间。当应答到来时,TCP从当前时间减去记录的发送时间来为连接产生往返延迟的一个新估计。3、数据丢失与重发TCP协议提供的是端到端的可靠连接,TCP协议通过套接字(Socket)将希望通信的两个应用程序连在一起,通过这种连接来交换数据。TCP/IP的套接字建立双方的连接,以达到各类通讯要求,一个应用程序通过定义三部分来产生一个套接字:主机IP地址、服务类型(面向连接的服务是TCP,无连接服务是UDP)、应用程序所用的端口。
4、端口连接和套接字(Socket)
在一台主机上,多个应用程序同时使用TCP或UDP协议进行通信。传输层协议接收到数据后,如何区分发送给哪个应用程序,TCP/UDP中引入了端口(port)的概念。每个端口由一个16-bit的无符号整型值来标识,被称作端口号,它用来标识传输层协议和应用程序之间的数据接口。我们可以简单地认为,在本地主机中,一个应用程序对应着唯一的一个端口号。请注意,端口号是由不同的主机上的TCP协议独立分配的,所以无法实现全局唯一,而实际上也无需全局唯一,只要在本地唯一即可。
端口号和IP地址合起来,即(host,port)对,就可以唯一地标识TCP的一个连接的端点(endpoint)。例如,端点(2,80)表示的是IP地址为2的主机上的80号TCP端口。一个连接是用它的两个端点来表示的。例如,闽江大学的一台IP地址为()机器与软件学院的一台IP地址为(0)的机器之间建立连接,它由端点定义成:
(:1089)和(0:21)
在TCP/IP协议的实现中,引入了套接字(socket)来表示一个端点,即IP地址和端口号合起来构成一个套接字,我们用通信双方(发送方/接收方)的一对套接字在全网范围内唯一标识一个连接。使用TCP协议的网络应用程序分为两类:客户程序、服务程序。
客户程序可以任意选择其进行通信的端口号;
服务器程序则使用较固定的端口号:TELNET--23,FTP--21,Email--25等等。TCP连接与端口著名的TCP端口号著名TCP的端口号端口号关键字描述20FTP-DATA文件传输协议数据21FTP文件传输协议控制23TELNET远程登录协议25SMTP简单邮件传输协议53DOMAIN域名服务器80HTTP超文本传输协议110POP3邮局协议111RPC远程过程调用119NNTP新闻传送协议5、连接释放与优雅关闭
在数据传输结束后,通信双方都可以主动发出释放连接的请求。
TCP协议用FIN报文(即TCP报文头中的FIN标志位置1)来请求关闭一个连接。对方在收到一个FIN报文后,应该马上给出回应,即确认报文(ACK=1),同时关闭该方向上的连接。如图所示。通信双方可以依次地先后关闭一个连接,也会同时提出关闭连接的请求,这两种情况的处理都是一样的。最后,当连接在两个方向上都关闭了后,关于该连接的所有记录就都被TCP协议软件删除了。
用户数据报协议UDP(UserDatagramProtocol)提供应用程序之间传送数据报的基本机制。
UDP:简单;无连接传输层协议与IP协议相比,UDP仅增加了两方面的内容:一个是端口(port)的概念,另一个就是检验和。利用协议端口,UDP能够区分在同一台主机上运行的多个程序;使用检验和机制,UDP协议在把数据向应用程序提交之前,先对数据做一些差错检查。
UDP工作:从应用层收到的数据,加上UDP头,发送出去。不对发送数据缓冲,且保留各个消息之间的边界,不会把应用层多次发送的数据合并成一个包发送出去。
通过UDP协议,可以发送组播数据。所以需要使用组播服务的应用程序一般都建立在UDP协议之上。协议端口
协议端口是传输层引入的一个非常重要的概念。
UDP协议用不同的协议端口(protocolport)来代表不同的应用程序,每个协议端口由一个正整数标识。发送方不仅要知道目的地主机的IP地址,还要知道相应的协议端口号。每个IP报文都要必须带有目的地主机的端口号,当然同时还要带有发送方自身的端口号,为了使接收进程知道把回应向谁发送。5.3.2UDP协议著名的UDP端口号著名TCP的端口号UDP端口号关键字描述53DOMAIN域名服务器67BOOTPS引导协议服务器68BOOTPC引导协议客户机69TFTP简单文件传输协议161SNMP简单网络管理协议162SNMP-TRAP简单网络管理协议陷阱
5.4控制报文协议ICMP5.4.1差错及其控制不可靠的数据投递服务面向无连接的传输服务尽最大努力投递服务5.4.2ICMP差错与控制当路由器有一个ICMP消息需要发送时,它创建一个IP数据包,把该ICMP消息封装在IP数据包中再进行传输。5.4.2ICMP差错与控制ICMP差错报文的主要特点:ICMP差错报告作为一般数据传输,不享受特别优先权和可靠性。在传输过程中,数据报可能被丢失、重复、延迟或乱序传递。ICMP差错报告数据中除包含故障IP数据报报头外,还包含故障IP数据报数据区的前64字节数据。通常,利用这64个字节数据可以了解高层协议(TCP或UDP)的的一些重要信息,有助于差错处理。ICMP差错报告是伴随着抛弃出错IP数据报而产生的。IP软件发现差错时的处理非常简单,首先立即丢弃该数据报,然后调用ICMP向源主机报告出错信息。5.4.2ICMP差错与控制1.ICMP差错报告(1)目的地不可达报文(2)超时报文(3)参数出错报文2.ICMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论