关闭

关闭

关闭

封号提示

内容

首页 003

003.PDF

003

njljc 2010-12-18 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《003pdf》,可适用于IT/计算机领域,主题内容包含下载第章IP:网际协议引言IP是TCPIP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输(见图)。许多刚符等。

下载第章IP:网际协议引言IP是TCPIP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输(见图)。许多刚开始接触TCPIP的人对IP提供不可靠、无连接的数据报传送服务感到很奇怪特别是那些具有X或SNA背景知识的人。不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时如某个路由器暂时用完了缓冲区IP有一个简单的错误处理算法:丢弃该数据报然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A然后是B)每个数据报都是独立地进行路由选择可能选择不同的路线因此B可能在A到达之前先到达。在本章我们将简要介绍IP首部中的各个字段讨论IP路由选择和子网的有关内容。还要介绍两个有用的命令:ifconfig和netstat。关于IP首部中一些字段的细节将留在以后使用这些字段的时候再进行讨论。RFCPostela是IP的正式规范文件。IP首部IP数据报的格式如图所示。普通的IP首部长为个字节除非含有选项字段。图IP数据报格式及首部中的各字段位版本位首部长度位服务类型(TOS)位总长度(字节数)位片偏移位首部检验和位标志位标识位协议位源IP地址位目的IP地址选项(如果有)数据位生存时间字节分析图中的首部。最高位在左边记为bit最低位在右边记为bit。个字节的bit值以下面的次序传输:首先是~bit其次~bit然后~bit最后是~bit。这种传输次序称作bigendian字节序。由于TCPIP首部中所有的二进制整数在网络中传输时都要求以这种次序因此它又称作网络字节序。以其他形式存储二进制整数的机器如littleendian格式则必须在传输数据之前把首部转换成网络字节序。目前的协议版本号是因此IP有时也称作IPv。节将对一种新版的IP协议进行讨论。首部长度指的是首部占bit字的数目包括任何选项。由于它是一个比特字段因此首部最长为个字节。在第章中我们将看到这种限制使某些选项如路由记录选项在当今已没有什么用处。普通IP数据报(没有任何选择项)字段的值是。服务类型(TOS)字段包括一个bit的优先权子字段(现在已被忽略)bit的TOS子字段和bit未用位但必须置。bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。bit中只能置其中bit。如果所有bit均为那么就意味着是一般服务。RFCReynoldsandPostel描述了所有的标准应用如何设置这些服务类型。RFCAlmquist对该RFC进行了修正更为详细地描述了TOS的特性。图列出了对不同应用建议的TOS值。在最后一列中给出的是十六进制值因为这就是在后面将要看到的tcpdump命令输出。图服务类型字段推荐值Telnet和Rlogin这两个交互应用要求最小的传输时延因为人们主要用它们来传输少量的交互数据。另一方面FTP文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理(SNMP)和路由选择协议。用户网络新闻(Usenetnews,NNTP)是唯一要求最小费用的应用。现在大多数的TCPIP实现都不支持TOS特性但是自BSDReno以后的新版系统都对它进行了设置。另外新的路由协议如OSPF和ISIS都能根据这些字段的值进行路由决策。在节中我们提到SLIP一般提供基于服务类型的排队方法允许对交互通信第章IP:网际协议使用下载应用程序最小时延最大吞吐量最高可靠性最小费用进制值控制数据任意块数据命令阶段数据阶段UDP查询TCP查询区域传输差错查询任何IGP数据在处理大块数据之前进行处理。由于大多数的实现都不使用TOS字段因此这种排队机制由SLIP自己来判断和处理驱动程序先查看协议字段(确定是否是一个TCP段)然后检查TCP信源和信宿的端口号以判断是否是一个交互服务。一个驱动程序的注释这样认为这种“令人厌恶的处理方法”是必需的因为大多数实现都不允许应用程序设置TOS字段。总长度字段是指整个IP数据报的长度以字节为单位。利用首部长度字段和总长度字段就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长比特所以IP数据报最长可达字节(回忆图超级通道的MTU为。它的意思其实不是一个真正的MTU它使用了最长的IP数据报)。当数据报被分片时该字段的值也随着变化这一点将在节中进一步描述。尽管可以传送一个长达字节的IP数据报但是大多数的链路层都会对它进行分片。而且主机也要求不能接收超过字节的数据报。由于TCP把用户数据分成若干片因此一般来说这个限制不会影响TCP。在后面的章节中将遇到大量使用UDP的应用(RIPTFTPBOOTPDNS以及SNMP)它们都限制用户数据报长度为字节小于字节。但是事实上现在大多数的实现(特别是那些支持网络文件系统NFS的实现)允许超过字节的IP数据报。总长度字段是IP首部中必要的内容因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为字节(见图)但是IP数据可能会更短。如果没有总长度字段那么IP层就不知道字节中有多少是IP数据报的内容。标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加。在节介绍分片和重组时再详细讨论它。同样在讨论分片时再来分析标志字段和片偏移字段。RFCPostela认为标识字段应该由让IP发送数据报的上层来选择。假设有两个连续的IP数据报其中一个是由TCP生成的而另一个是由UDP生成的那么它们可能具有相同的标识字段。尽管这也可以照常工作(由重组算法来处理)但是在大多数从伯克利派生出来的系统中每发送一个IP数据报IP层都要把一个内核变量的值加不管交给IP的数据来自哪一层。内核变量的初始值根据系统引导时的时间来设置。TTL(timetolive)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为或)一旦经过一个处理它的路由器它的值就减去。当该字段的值为时数据报就被丢弃并发送ICMP报文通知源主机。第章我们讨论Traceroute程序时将再回来讨论该字段。我们已经在第章讨论了协议字段并在图中示出了它如何被IP用来对数据报进行分用。根据它可以识别是哪个协议向IP传送数据。首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。为了计算一份数据报的IP检验和首先把检验和字段置为。然后对首部中每个bit进行二进制反码求和(整个首部看成是由一串bit的字组成)结果存在检验和字段中。当收到一份IP数据报后同样对首部中每个bit进行二进制反码的求和。由于接收方在计算过使用TCPIP详解卷:协议下载程中包含了发送方存在首部中的检验和因此如果首部在传输过程中没有发生任何差错那么接收方计算的结果应该为全。如果结果不是全(即检验和错误)那么IP就丢弃收到的数据报。但是不生成差错报文由上层去发现丢失的数据报并进行重传。ICMP、IGMP、UDP和TCP都采用相同的检验和算法尽管TCP和UDP除了本身的首部和数据外在IP首部中还包含不同的字段。在RFCBraden,BormanandPatridge中有关于如何计算Internet检验和的实现技术。由于路由器经常只修改TTL字段(减)因此当路由器转发一份报文时可以增加它的检验和而不需要对IP整个首部进行重新计算。RFCMalloryandKullberg为此给出了一个很有效的方法。但是标准的BSD实现在转发数据报时并不是采用这种增加的办法。每一份IP数据报都包含源IP地址和目的IP地址。我们在节中说过它们都是bit的值。最后一个字段是任选项是数据报中的一个可变长的可选信息。目前这些任选项定义如下:•安全和处理限制(用于军事领域详细内容参见RFCKent)•记录路径(让每个路由器都记下它的IP地址见节)•时间戳(让每个路由器都记下它的IP地址和时间见节)•宽松的源站选路(为数据报指定一系列必须经过的IP地址见节)•严格的源站选路(与宽松的源站选路类似但是要求只能经过指定的这些地址不能经过其他的地址)。这些选项很少被使用并非所有的主机和路由器都支持这些选项。选项字段一直都是以bit作为界限在必要的时候插入值为的填充字节。这样就保证IP首部始终是bit的整数倍(这是首部长度字段所要求的)。IP路由选择从概念上说IP路由选择是简单的特别对于主机来说。如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网)那么IP数据报就直接送到目的主机上。否则主机把数据报发往一默认的路由器上由路由器来转发该数据报。大多数的主机都是采用这种简单机制。在本节和第章中我们将讨论更一般的情况即IP层既可以配置成路由器的功能也可以配置成主机的功能。当今的大多数多用户系统包括几乎所有的Unix系统都可以配置成一个路由器。我们可以为它指定主机和路由器都可以使用的简单路由算法。本质上的区别在于主机从不把数据报从一个接口转发到另一个接口而路由器则要转发数据报。内含路由器功能的主机应该从不转发数据报除非它被设置成那样。在小节中我们将进一步讨论配置的有关问题。在一般的体制中IP可以从TCP、UDP、ICMP和IGMP接收数据报(即在本地生成的数据报)并进行发送或者从一个网络接口接收数据报(待转发的数据报)并进行发送。IP层在内存中有一个路由表。当收到一份数据报并进行发送时它都要对该表搜索一次。当数据报来自某个网络接口时IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。如果确实是这样数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的第章IP:网际协议使用下载目的不是这些地址那么()如果IP层被设置为路由器的功能那么就对数据报进行转发(也就是说像下面对待发出的数据报一样处理)否则()数据报被丢弃。路由表中的每一项都包含下面这些信息:•目的IP地址。它既可以是一个完整的主机地址也可以是一个网络地址由该表目中的标志字段来指定(如下所述)。主机地址有一个非的主机号(见图)以指定某一特定的主机而网络地址中的主机号为以指定网络中的所有主机(如以太网令牌环网)。•下一站(或下一跳)路由器(nexthoprouter)的IP地址或者有直接连接的网络IP地址。下一站路由器是指一个在直接相连网络上的路由器通过它可以转发数据报。下一站路由器不是最终的目的但是它可以把传送给它的数据报转发到最终目的。•标志。其中一个标志指明目的IP地址是网络地址还是主机地址另一个标志指明下一站路由器是否为真正的下一站路由器还是一个直接相连的接口(我们将在节中详细介绍这些标志)。•为数据报的传输指定一个网络接口。IP路由选择是逐跳地(hopbyhop)进行的。从这个路由表信息可以看出IP并不知道到达任何目的的完整路径(当然除了那些与主机直接相连的目的)。所有的IP路由选择只为数据报传输提供下一站路由器的IP地址。它假定下一站路由器比发送数据报的主机更接近目的而且下一站路由器与该主机是直接相连的。IP路由选择主要完成以下这些功能:)搜索路由表寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。)搜索路由表寻找能与目的网络号相匹配的表目。如果找到则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行讨论。)搜索路由表寻找标为“默认(default)”的表目。如果找到则把报文发送给该表目指定的下一站路由器。如果上面这些步骤都没有成功那么该数据报就不能被传送。如果不能传送的数据报来自本机那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。完整主机地址匹配在网络号匹配之前执行。只有当它们都失败后才选择默认路由。默认路由以及下一站路由器发送的ICMP间接报文(如果我们为数据报选择了错误的默认路由)是IP路由选择机制中功能强大的特性。我们在第章对它们进行讨论。为一个网络指定一个路由器而不必为每个主机指定一个路由器这是IP路由选择机制的另一个基本特性。这样做可以极大地缩小路由表的规模比如Internet上的路由器有只有几千个表目而不会是超过万个表目。举例首先考虑一个简单的例子:我们的主机bsdi有一个IP数据报要发送给主机sun。双方都在使用TCPIP详解卷:协议下载同一个以太网上(参见扉页前图)。数据报的传输过程如图所示。当IP从某个上层收到这份数据报后它搜索路由表发现目的IP地址()在一个直接相连的网络上(以太网)。于是在表中找到匹配网络地址(在下一节中我们将看到由于以太网的子网掩码的存在实际的网络地址是但是这并不影响这里所讨论的路由选择)。数据报被送到以太网驱动程序然后作为一个以太网数据帧被送到sun主机上(见图)。IP数据报中的目的地址是sun的IP地址()而在链路层首部中的目的地址是bit的sun主机的以太网接口地址。这个bit的以太网地址是用ARP协议获得的我们将在下一章对此进行描述。现在来看另一个例子:主机bsdi有一份IP数据报要传到ftpuunet主机上它的IP地址是。经过的前三个路由器如图所示。首先主机bsdi搜索路由表但是没有找到与主机地址或网络地址相匹配的表目因此只能用默认的表目把数据报传给下一站路由器即主机sun。当数据报从bsdi被传到sun主机上以后目的IP地址是最终的信宿机地址()但是链路层地址却是sun主机的以太网接口地址。这与图不同在那里数据报中的目的IP地址和目的链路层地址都指的是相同的主机(sun)。图从bsdi到ftpuunet()的初始路径第章IP:网际协议使用下载图数据报从主机bsdi到sun的传送过程目的网络=,,以太网链路层首部目的目的IP首部下一站=(默认)下一站=(默认)链路层首部IP首部链路层首部IP首部目的以太网=以太网的目的IP=下一站=(默认)下一站=(默认)IP首部目的IP=目的IP=目的以太网=以太网的以太网以太网调制解调器调制解调器当sun收到数据报后它发现数据报的目的IP地址并不是本机的任一地址而sun已被设置成具有路由器的功能因此它把数据报进行转发。经过搜索路由表选用了默认表目。根据sun的默认表目它把数据报转发到下一站路由器netb该路由器的地址是。数据报是经过点对点SLIP链路被传送的采用了图所示的最小封装格式。这里我们没有给出像以太网链路层数据帧那样的首部因为在SLIP链路中没有那样的首部。当netb收到数据报后它执行与sun主机相同的步骤:数据报的目的地址不是本机地址而netb也被设置成具有路由器的功能于是它也对该数据报进行转发。采用的也是默认路由表目把数据报送到下一站路由器gateway()。位于以太网上的主机netb用ARP获得对应于的bit以太网地址。这个以太网地址就是链路层数据帧头上的目的地址。路由器gateway也执行与前面两个路由器相同的步骤。它的默认路由表目所指定的下一站路由器IP地址是(我们将在图中证实使用Traceroute程序时它就是gateway使用的下一站路由器)。对于这个例子需要指出一些关键点:)该例子中的所有主机和路由器都使用了默认路由。事实上大多数主机和一些路由器可以用默认路由来处理任何目的除非它在本地局域网上。)数据报中的目的IP地址始终不发生任何变化(在节中我们将看到只有使用源路由选项时目的IP地址才有可能被修改但这种情况很少出现)。所有的路由选择决策都是基于这个目的IP地址。)每个链路层可能具有不同的数据帧首部而且链路层的目的地址(如果有的话)始终指的是下一站的链路层地址。在例子中两个以太网封装了含有下一站以太网地址的链路层首部但是SLIP链路没有这样做。以太网地址一般通过ARP获得。在第章我们在描述了ICMP之后将再次讨论IP路由选择问题。我们将看到一些路由表的例子以及如何用它们来进行路由决策的。子网寻址现在所有的主机都要求支持子网编址(RFCMogulandPostel)。不是把IP地址看成由单纯的一个网络号和一个主机号组成而是把主机号再分成一个子网号和一个主机号。这样做的原因是因为A类和B类地址为主机号分配了太多的空间可分别容纳的主机数为和。事实上在一个网络中人们并不安排这么多的主机(各类IP地址的格式如图所示)。由于全或全的主机号都是无效的因此我们把总数减去。在InterNIC获得某类IP网络号后就由当地的系统管理员来进行分配由他(或她)来决定是否建立子网以及分配多少比特给子网号和主机号。例如这里有一个B类网络地址()在剩下的bit中bit用于子网号bit用于主机号格式如图所示。这样就允许有个子网每个子网可以有台主机。图B类地址的一种子网编址使用TCPIP详解卷:协议下载B类位位位主机号子网号网络号=许多管理员采用自然的划分方法即把B类地址中留给主机的bit中的前bit作为子网地址后bit作为主机号。这样用点分十进制方法表示的IP地址就可以比较容易确定子网号。但是并不要求A类或B类地址的子网划分都要以字节为划分界限。大多数的子网例子都是B类地址。其实子网还可用于C类地址只是它可用的比特数较少而已。很少出现A类地址的子网例子是因为A类地址本身就很少(但是大多数A类地址都是进行子网划分的)。子网对外部路由器来说隐藏了内部网络组织(一个校园或公司内部)的细节。在我们的网络例子中所有的IP地址都有一个B类网络号。但是其中有超过个子网多于台主机分布在这些子网中。由一台路由器提供了Internet的接入如图所示。在这个图中我们把大多数的路由器编号为Rnn是子网号。我们给出了连接这些子网的路由器同时还包括了扉页前图中的九个系统。在图中以太网用粗线表示点对点链路用虚线表示。我们没有画出不同子网中的所有主机。例如在子网上就超过台主机而在子网上则超过台主机。与个C类地址相比用一个包含个子网的B类地址的好处是它可以缩小Internet路由表的规模。B类地址被划分为若干子网的事实对于所有子网以外的Internet路由器都是透明的。为了到达IP地址开始部分为的主机外部路由器只需要知道通往IP地址的路径。这就是说对于网络只需一个路由表目而如果采用个C类地址则需要个路由表目。因此子网划分缩减了路由表的规模(在小节中我们将介绍一种新技术即使用C类地址也可以缩减路由表的规模)。子网对于子网内部的路由器是不透明的。如图所示一份来自Internet的数据报到达gateway它的目的地址是。路由器gateway需要知道子网号是然后把它送到kpno。同样kpno必须把数据报送到R最后由R把它送到R。图网络noaoedu()中的大多数子网安排第章IP:网际协议使用下载子网掩码任何主机在引导时进行的部分配置是指定主机IP地址。大多数系统把IP地址存在一个磁盘文件里供引导时读用。在第章我们将讨论一个无盘系统如何在引导时获得IP地址。除了IP地址以外主机还需要知道有多少比特用于子网号及多少比特用于主机号。这是在引导过程中通过子网掩码来确定的。这个掩码是一个bit的值其中值为的比特留给网络号和子网号为的比特留给主机号。图是一个B类地址的两种不同的子网掩码格式。第一个例子是noaoedu网络采用的子网划分方法如图所示子网号和主机号都是bit宽。第二个例子是一个B类地址划分成bit的子网号和bit的主机号。图两种不同的B类地址子网掩码的例子尽管IP地址一般以点分十进制方法表示但是子网掩码却经常用十六进制来表示特别是当界限不是一个字节时因为子网掩码是一个比特掩码。给定IP地址和子网掩码以后主机就可以确定IP数据报的目的是:()本子网上的主机()本网络中其他子网中的主机()其他网络上的主机。如果知道本机的IP地址那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知)也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。举例假设我们的主机地址是(一个B类地址)而子网掩码为(其中bit为子网号bit为主机号)。•如果目的IP地址是那么我们就知道B类网络号是相同的()但是子网号是不同的(和)。用子网掩码在两个IP地址之间的比较如图所示。•如果目的IP地址是那么B类网络号还是一样的()而且子网号也是一样的()但是主机号是不同的。•如果目的IP地址是(一个C类地址)那么网络号是不同的因而进一步的比较就不用再进行了。图使用子网掩码的两个B类地址之间的比较使用TCPIP详解卷:协议下载位位位位位位B类子网掩码子网掩码B类网络号网络号子网号主机号主机号子网号B类网络号末尾指明的子网号末尾位位位网络号相符子网号不相等B类B类子网掩码给定两个IP地址和子网掩码后IP路由选择功能一直进行这样的比较。特殊情况的IP地址经过子网划分的描述现在介绍个特殊的IP地址如图所示。在这个图中表示所有的比特位全为表示所有的比特位全为netid、subnetid和hostid分别表示不为全或全的对应字段。子网号栏为空表示该地址没有进行子网划分。图特殊情况的IP地址我们把这个表分成三个部分。表的头两项是特殊的源地址中间项是特殊的环回地址最后四项是广播地址。表中的头两项网络号为如主机使用BOOTP协议确定本机IP地址时只能作为初始化过程中的源地址出现。在节中我们将进一步分析四类广播地址。一个子网的例子这个例子是本文中采用的子网以及如何使用两个不同的子网掩码。具体安排如图所示。图作者所在子网中的主机和网络安排如果把该图与扉页前图相比就会发现在图中省略了从路由器sun到上面的以太网之间的连接细节实际上它们之间的连接是拨号SLIP。这个细节不影响本节中讨论的子网划分第章IP:网际协议使用下载IP地址可以为描述网络号子网号主机号源端目的端OK不可能网络上的主机(参见下面的限制)主机号OK不可能网络上的特定主机(参见下面的限制)任何值OKOK环回地址(节)不可能OK受限的广播(永远不被转发)netid不可能OK以网络为目的向netid广播netidsubnetid不可能OK以子网为目的向netid、subnetid广播netid不可能OK以所有子网为目的向netid广播以太网子网以太网子网作者所在子网SLIP子网问题。我们在节讨论ARP代理时将再回头讨论这个细节。问题是我们在子网中有两个分离的网络:一个以太网和一个点对点链路(硬件连接的SLIP链路)(点对点链接始终会带来问题因为它一般在两端都需要IP地址)。将来或许会有更多的主机和网络但是为了不让主机跨越不同的网络就得使用不同的子网号。我们的解决方法是把子网号从bit扩充到bit把主机号从bit减为bit。这就叫作变长子网因为网络中的大多数子网都采用bit子网掩码而我们的子网却采用bit的子网掩码。RFCBradenandPostel允许一个含有子网的网络使用多个子网掩码。新的路由器需求RFCAlmquist则要求支持这一功能。但是问题在于并不是所有的路由选择协议在交换目的网络时也交换子网掩码。在第章中我们将看到RIP不支持变长子网RIP第版和OSPF则支持变长子网。在我们的例子中不存在这种问题因为在我的子网中不要求使用RIP协议。作者子网中的IP地址结构如图所示位子网号中的前bit始终是。在剩下的bit中我们用二进制表示以太网表示点对点SLIP链路。这个变长子网掩码在网络中不会给其他主机和路由器带来问题只要目的是子网的所有数据报都传给路由器sun(IP地址是)如图所示。如果sun知道子网中的主机有bit子网号那么一切都好办了。图变长子网子网中的所有接口的子网掩码是或xffffffe。这表明最右边的bit留给主机号左边的bit留给网络号和子网号。图中所有接口的IP地址和子网掩码的分配情况如图所示。图作者子网的IP地址第栏标为是“主机”但是sun和bsdi也具有路由器的功能因为它们是多接口的可以把分组数据从一个接口转发到另一个接口。这个表中的最后一行是图中的广播地址:它是根据以太网子网号()和图中的低位置(++++=)得来的(我们在第章中将看到这个地址被称作以子网为目的的广播地址(subnetdirectedbroadcastaddress))。使用TCPIP详解卷:协议下载位=位位B类子网掩码位子网号ID网络号=主机号ID主机IP地址子网掩码网络号子网号主机号注释在子网上在作者所在子网上在以太网上点对点点对点以太网上的广播地址ifconfig命令到目前为止我们已经讨论了链路层和IP层现在可以介绍TCPIP对网络接口进行配置和查询的命令了。ifconfig()命令一般在引导时运行以配置主机上的每个接口。由于拨号接口可能会经常接通和挂断(如SLIP链路)每次线路接通和挂断时ifconfig都必须(以某种方法)运行。这个过程如何完成取决于使用的SLIP软件。下面是作者子网接口的有关参数。请把它们与图的值进行比较。环回接口(节)被认为是一个网络接口。它是一个A类地址没有进行子网划分。需要注意的是以太网没有采用尾部封装(节)而且可以进行广播而SLIP链路是一个点对点的链接。SLIP接口的标志LINK是一个允许压缩slip的数据(CSLIP参见节)的配置选项。其他的选项有LINK(如果从另一端收到一份压缩报文就允许采用CSLIP)和LINK(所有外出的ICMP报文都被丢弃)。我们在节中将讨论SLIP链接的目的地址。安装指南中的注释对最后这个选项进行了解释:“一般它不应设置但是由于一些不当的ping操作可能会导致吞吐量降到。”bsdi是另一台路由器。由于a参数是SunOS操作系统具有的功能因此我们必须多次执行ifconfig并指定接口名字参数:这里我们看到以太网接口(we)的一个新选项:SIMPLEX。这个BSD标志表明接口不能收到本机传送的数据。在BSD中所有的以太网都这样设置。一旦这样设置后如果接口发送一帧数据到广播地址那么就会为本机拷贝一份数据送到环回地址(在小节我们将举例说明这一点)。在主机slip中SLIP接口的设置基本上与上面的bsdi一致只是两端的IP地址进行了互换:slipsbinifconfigslsl:flags=<UP,POINTOPOINT,LINK>inet>netmaskffffffe最后一个接口是主机svr上的以太网接口。它与前面的以太网接口类似只是SVR版的ifconfig没有打印RUNNING标志:svrusrsbinifconfigemdemd:flags=<UP,BROADCAST,NOTRAILERS>inetnetmaskffffffebroadcast第章IP:网际协议使用下载在所有接口报告的选项ifconfig命令一般支持TCPIP以外的其他协议族而且有很多参数。关于这些细节可以查看系统说明书。netstat命令netstat()命令也提供系统上的接口信息。i参数将打印出接口信息n参数则打印出IP地址而不是主机名字。这个命令打印出每个接口的MTU、输入分组数、输入错误、输出分组数、输出错误、冲突以及当前的输出队列长度。在第章将用netstat命令检查路由表那时再回头讨论该命令。另外在第章将用它的一个改进版本来查看活动的广播组。IP的未来IP主要存在三个方面的问题。这是Internet在过去几年快速增长所造成的结果(参见习题)。)超过半数的B类地址已被分配。根据估计它们大约在年耗尽。)bit的IP地址从长期的Internet增长角度来看一般是不够用的。)当前的路由结构没有层次结构属于平面型(flat)结构每个网络都需要一个路由表目。随着网络数目的增长一个具有多个网络的网站就必须分配多个C类地址而不是一个B类地址因此路由表的规模会不断增长。无类别的域间路由选择CIDR(ClasslessInterdomainRouting)提出了一个可以解决第三个问题的建议对当前版本的IP(IP版本)进行扩充以适应世纪Internet的发展。对此我们将在节进一步详细介绍。对新版的IP即下一代IP经常称作IPng主要有四个方面的建议。年月发行的IEEENetwork(vol,no)对前三个建议进行了综述同时有一篇关于CIDR的论文。RFCDixon对前三个建议进行了比较。)SIP简单Internet协议。它针对当前的IP提出了一个最小幅度的修改建议采用位地址和一个不同的首部格式(首部的前比特仍然包含协议的版本号其值不再是)。)PIP。这个建议也采用了更大的、可变长度的和有层次结构的地址而且首部格式也不相同。)TUBA代表“TCPandUDPwithBiggerAddress”它基于OSI的CLNP(ConnectionlessNetworkProtocol无连接网络协议)一个与IP类似的OSI协议。它提供大得多的地址空间:可变长度可达个字节。由于CLNP是一个现有的协议而SIP和PIP只是建议因此关于CLNP的文档已经出现。RFCCallon提供了TUBA的有关细节。文献Perlman的第章对IPv和CLNP进行了比较。许多路由器已经支持CLNP但是很少有主机也提供支持。使用TCPIP详解卷:协议下载)TPIX由RFCUllmann对它进行了描述。虽然SIP采用了bit的址址但是它还改变了TCP和UDP的格式:两个协议均为bit的端口号bit的序列号bit的确认号以及TCP的bit窗口。前三个建议基本上采用了相同版本的TCP和UDP作为传输层协议。由于四个建议只能有一个被选为IPv的替换者而且在你读到此书时可能已经做出选择因此我们对它们不进行过多评论。虽然CIDR即将实现以解决目前的短期问题但是IPv后继者的实现则需要经过许多年。小结本章开始描述了IP首部的格式并简要讨论了首部中的各个字段。我们还介绍了IP路由选择并指出主机的路由选择可以非常简单:如果目的主机在直接相连的网络上那么就把数据报直接传给目的主机否则传给默认路由器。在进行路由选择决策时主机和路由器都使用路由表。在表中有三种类型的路由:特定主机型、特定网络型和默认路由型。路由表中的表目具有一定的优先级。在选择路由时主机路由优先于网络路由最后在没有其他可选路由存在时才选择默认路由。IP路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的IP地址始终不变但是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络的数据报都使用默认的下一站路由器。A类和B类地址一般都要进行子网划分。用于子网号的比特数通过子网掩码来指定。我们为此举了一个实例来详细说明即作者所在的子网并介绍了变长子网的概念。子网的划分缩小了Internet路由表的规模因为许多网络经常可以通过单个表目就可以访问了。接口和网络的有关信息通过ifconfig和netstat命令可以获得包括接口的IP地址、子网掩码、广播地址以及MTU等。在本章的最后我们对Internet协议族潜在的改进建议下一代IP进行了讨论。习题环回地址必须是吗?在图中指出有两个网络接口的路由器。子网号为bit的A类地址与子网号为bit的B类地址的子网掩码有什么不同?阅读RFCTsuchiya学习分配子网号和主机号的有关推荐技术。子网掩码是否对A类地址有效?你认为为什么小节中打印出来的环回接口的MTU要设置为?TCPIP协议族是基于一种数据报的网络技术即IP层其他的协议族则基于面向连接的网络技术。阅读文献Clark找出数据报网络层提供的三个优点。第章IP:网际协议使用下载第章IP:网际协议引言IP首部IP路由选择子网寻址子网掩码特殊情况的IP地址一个子网的例子ifconfig命令netstat命令IP的未来小结

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/14
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料