




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程 DA000002TCP/IP协议与子网规划ISSUE 2.1DA000002 TCP/IP协议与子网规划 ISSUE2.1ISSUE 2.1目 录目 录课程说明1课程介绍1课程目标1相关资料1第1章 TCP/IP协议21.1 TCP/IP协议与OSI参考模型21.2 应用层71.3 传输层91.4 网络层16第2章 子网规划222.1 IP地址介绍22i华为技术有限公司 版权所有, 未经许可不得扩散DA000002 TCP/IP协议与子网规划 ISSUE2.1课程说明课程说明课程介绍本课程主要介绍TCP/IP协议的基础知识。课程目标完成本课程的学习后,您应该能够:l 理解TCP/IP分层模型l 理解IP地址的分类与应用l 运用IP子网的规划原则对简单网络进行规划相关资料1华为技术有限公司 版权所有, 未经许可不得扩散DA000002 TCP/IP协议与子网规划 ISSUE2.1第2章 子网规划第1章 TCP/IP协议1.1 TCP/IP协议与OSI参考模型为了解决网络之间兼容性的问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO(International Standards Organization)于1984年提出了开放系统互连参考模型OSI/RM(Open System Interconnection Reference Model),它很快成为计算机网络通信的基础模型。TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。它是一个真正的开放系统,因为协议族的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到。它成为被称作“全球互联网”或“因特网(Internet)”的基础。与OSI参考模型一样,TCP(Transfer Control Protocol)/IP(Internet Protocol)协议(传输控制协议/网际协议)也分为不同的层次开发,每一层负责不同的通信功能。但是,TCP/IP协议简化了层次设计,只有五层:应用层、传输层、网络层、数据链路层和物理层。从上图可以看出,TCP/IP协议栈与OSI参考模型有清晰的对应关系,覆盖了OSI参考模型的所有层次。应用层包含了OSI参考模型所有高层协议。因为TCP/IP协议栈支持所有标准的物理层和数据链路层协议,而且物理层和数据链路层在前面已经做过简述,所以本章不对TCP/IP协议的物理层和数据链路层做进一步的描述。关于这两层协议和标准的深入细节,在后续章节会有讲解。OSI参考模型与TCP/IP协议栈的异同点:1. 相同点(1) 都是分层结构,并且工作模式一样,都要求层和层之间具备很密切的协作关系;(2) 有相同的应用层,传输层,网络层,数据链路层,物理层;(注意:这里为了方便比较,才将TCP/IP分为5层,在其他很多文献资料里都把数据链路层和物理层合并为数据链路层或网络接口层Network Access Layer); (3) 都使用包交换技术(Packet-Switched);(4) 网络工程师必须都要了解这两个模型。2. 不同点(1) TCP/IP把表示层和会话层都归入了应用层;(2) TCP/IP的结构比较简单,因为分层少;(3) TCP/IP标准是在Internet网络不断的发展中建立的,基于实践,有很高的信任度。相比较而言,OSI参考模型是基于理论上的,是作为一种向导!同OSI参考模型数据封装过程一样,TCP/IP协议在报文转发过程中,封装和去封装也发生在各层之间。发送方,加封装的操作是逐层进行的。各个应用程序将要发送的数据送给传输层;传输层(TCP/UDP)把数据分段为大小一定的数据段,加上本层的报文头。发送给网络层。在传输层报文头中,包含接收它所携带的数据的上层协议或应用程序的端口号,例如Telnet 的端口号是 23。传输层协议利用端口号来调用和区别应用层各种应用程序。网络层对来自传输层的数据段进行一定的处理(利用协议号区分传输层协议、寻找下一跳地址、解析数据链路层物理地址等),加上本层的IP报文头后,转换为数据包,再发送给链路层(以太网、帧中继、PPP、HDLC等)。链路层依据不同的数据链路层协议加上本层的帧头,发送给物理层以比特流的形式将报文发送出去。在接收方,这种去封装的操作也是逐层进行的。从物理层到数据链路层,逐层去掉各层的报文头部,将数据传递给应用程序执行。上图中,帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。在后面的章节中我们将详细讨论这些帧头的具体含义。以太网数据帧的物理特性是其长度必须在461500字节之间。所有的Internet标准和大多数有关TCP/IP的书都使用“octet”这个术语来表示字节。使用这个过分雕琢的术语是有历史原因的,因为TCP/IP的很多工作都是在DEC-10系统上进行的,但是它并不使用8 bit的字节。由于现在几乎所有的计算机系统都采用8 bit的字节。更准确地说,图中IP和网络接口层之间传送的数据单元应该是分组(Packet)。分组既可以是一个IP数据报,也可以是IP数据报的一个片(Fragment)。UDP数据与TCP数据基本一致,唯一的不同是UDP传给IP的信息单元称作UDP数据报(UDP datagram),而且UDP的首部长为8字节。由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此,IP在首部中存入一个长度为8bit的数值,称作协议域。l 1表示为ICMP协议l 2表示为IGMP协议l 6表示为TCP协议l 17表示为UDP协议类似地,许多应用程序都可以使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16bit的帧类型域。当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP Packets)。通过以太网传输的比特流称作帧(Frame)。在物理层转变为二进制比特流。物理层和数据链路层涉及到在通信信道上传输的原始比特流,它实现传输数据所需要的机械、电气、功能性及过程等手段,提供检错、纠错、同步等措施,使之对网络层显现一条无错线路;并且进行流量调控。网络层检查网络拓扑,以决定传输报文的最佳路由,执行数据转发。其关键问题是确定数据包从源端到目的端如何选择路由。网络层的主要协议有IP(Internet protocol)、ICMP(Internet Control Message Protocol,互联网控制报文协议)、IGMP(Internet Group Management Protocol,互联网组管理协议)、ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,反向地址解析协议)等。传输层的基本功能是为两台主机间的应用程序提供端到端的通信。传输层从应用层接受数据,并且在必要的时候把它分成较小的单元,传递给网络层,并确保到达对方的各段信息正确无误。传输层的主要协议有TCP(Transfer Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)。应用层负责处理特定的应用程序细节。应用层显示接收到的信息,把用户的数据发送到低层,为应用软件提供网络接口。应用层包含大量常用的应用程序,例如HTTP(Hypertext Transfer Protocol,超文本传输协议)、Telnet(远程登录)、FTP(File Transfer Protocol,文件传输协议)、TFTP(Trivial File Transfer Protocol,简单文件传输协议)等。1.2 应用层应用层为用户的各种网络应用开发了许多网络应用程序,例如文件传输、网络管理等,甚至包括路由选择。这里我们重点介绍常用的几种应用层协议。FTP(File Transfer Protocol,文件传输协议)是用于文件传输的Internet标准。FTP支持一些文本文件(例如ASCII、二进制等等)和面向字节流的文件结构。FTP使用传输层协议TCP在支持FTP的终端系统间执行文件传输,FTP与我们已描述的另一种应用不同,它采用两个TCP连接来传输一个文件。(1) 控制连接以通常的客户服务器方式建立。服务器以被动方式打开众所周知的用于FTP的端口(21),等待客户的连接。客户则以主动方式打开TCP端口21,来建立连接。控制连接始终等待客户与服务器之间的通信。该连接将命令从客户传给服务器,并传回服务器的应答。由于命令通常是由用户键入的,所以IP对控制连接的服务类型就是“最大限度地减小迟延”。(2) 每当一个文件在客户与服务器之间传输时,就创建一个数据连接。(其他时间也可以创建,后面我们将说到)。由于该连接用于传输目的,所以IP对数据连接的服务特点就是“最大限度提高吞吐量”。因此,FTP被认为提供了可靠的面向连接的服务,适合于远距离、可靠性较差线路上的文件传输。TFTP(Trivial File Transfer Protocol,简单文件传输协议)也是用于文件传输,但TFTP使用UDP提供服务,被认为是不可靠的,无连接的。TFTP通常用于可靠的局域网内部的文件传输。TFTP最初打算用于引导无盘系统(通常是工作站或X终端)。TFTP的代码(和它所需要的UDP、IP和设备驱动程序)都能适合只读存储器。它只使用几种报文格式,是一种停止等待协议。为了允许多个客户端同时进行系统引导,TFTP服务器必须提供一定形式的并发。因为UDP在一个客户与一个服务器之间并不提供唯一连接(TCP也一样),TFTP服务器通过为每个客户提供一个新的UDP端口来提供并发。TFTP协议没有提供安全特性。大多数执行指望TFTP服务器的系统管理员来限制客户的访问,只允许它们访问引导所必须的文件。TFTP也是我们升级设备的一种方式。SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)支持文本邮件的Internet传输。POP3(Post Office Protocol)是一个流行的Internet邮件标准。SNMP(Simple Network Management Protocol,简单网络管理协议)负责网络设备监控和维护,支持安全管理、性能管理等。Telnet是客户机使用的与远端服务器建立连接的标准终端仿真协议。Ping命令是一个诊断网络设备是否正确连接的有效工具。Tracert命令和Ping命令类似,tracert命令可以显示数据包经过的每一台网络设备的信息,是一个很好的诊断命令。HTTP协议支持WWW(World Wide Web,万维网)和内部网信息交互,支持包括视频在内的多种文件类型。HTTP是当今流行的Internet标准。DNS(Domain Name System,域名系统)把网络节点的易于记忆的名字转化为网络地址。WINS(Windows Internet Name Server,Windows Internet命名服务器),此服务可以将NetBIOS 名称注册并解析为网络上使用的IP地址。BootP(Bootstrap Protocol,引导协议)是使用传输层UDP协议动态获得IP地址的协议,是DHCP协议的前身。1.3 传输层传输层位于应用层和网络层之间,为终端主机提供端到端的连接,以及流量控制(由窗口机制实现)、可靠性(由序列号和确认技术实现)、支持全双工传输等等。传输层协议有两种:TCP和UDP。虽然TCP和UDP都使用相同的网络层协议IP,但是TCP和UDP却为应用层提供完全不同的服务。传输控制协议TCP:为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。目前,许多流行的应用程序都使用TCP。用户数据报协议UDP:提供了无连接通信,且不对传送数据包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。TCP协议通过以下过程来保证端到端数据通信的可靠性:(1) TCP实体把应用程序划分为合适的数据块,加上TCP报文头,生成数据段;(2) 当TCP实体发出数据段后,立即启动计时器,如果源设备在计时器清零后仍然没有收到目的设备的确认报文,重发数据段;(3) 当对端TCP实体收到数据后,发回一个确认。(4) TCP包含一个端到端的校验和字段,检测数据传输过程的任何变化。如果目的设备收到的数据校验和计算结果有误,TCP将丢弃数据段,源设备在前面所述的计时器清零后重发数据段。(5) 由于TCP数据承载在IP数据包内,而IP提供了无连接的、不可靠的服务,数据包有可能会失序。TCP提供了重新排序机制,目的设备将收到的数据重新排序,交给应用程序。(6) TCP提供流量控制。TCP连接的每一端都有缓冲窗口。目的设备只允许源设备发送自己可以接收的数据,防止缓冲区溢出。(7) TCP支持全双工数据传输。UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。TCP协议为终端设备提供了面向连接的、可靠的网络服务,UDP协议为终端设备提供了无连接的、不可靠的数据报服务。从上图我们可以看出,TCP协议为了保证数据传输的可靠性,相对于UDP报文,TCP报文头部有更多的字段选项。首先让我们来看一下TCP的报文头部主要字段:每个TCP报文头部都包含源端口号(Source port)和目的端口号(Destination port),用于标识和区分源端设备和目的端设备的应用进程。在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。序列号(Sequence number)字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。序列号是一个32bit的数字。既然每个传输的字节都被计数,确认序号(Acknowledgement number,32bit)包含发送确认的一端所期望接收到的下一个序号。因此,确认序号应该是上次已成功收到的数据字节序列号加1。URG紧急指针(urgent pointer)有效。ACK确认序号有效。PSH接收方应该尽快将这个报文段交给应用层。RST重建连接。SYN同步序号用来发起一个连接。这个标志和下一个标志。一般在建立连接时使用。FIN发端完成发送任务,断开连接时使用。TCP的流量控制由连接的每一端通过声明的窗口大小(windows size)来提供。窗口大小用数据包来表示,例如Windows size=3, 表示一次可以发送三个数据包。窗口大小起始于确认字段指明的值,是一个16bits字段。窗口大小可以调节。校验和(checksum)字段用于校验TCP报头部分和数据部分的正确性。如果有了差错要重传。这个和UDP不一样,UDP检测出差错以后直接丢弃,在单个局域网中传输是可以接受的,但是如果通过路由器,会产生很多错误,导致传输失败。因为在路由器中也存在软件和硬件的差错,以至于修改数据报中的数据。最常见的可选字段是MSS(Maximum Segment Size,最大报文大小)。MSS指明本端所能够接收的最大长度的报文段。当一个TCP连接建立时,连接的双方都要通告各自的MSS协商可以传输的最大报文长度。我们常见的MSS有1024(以太网可达1460字节)字节。相对于TCP报文,UDP报文只有少量的字段:源端口号、目的端口号、长度、校验和等,各个字段功能和TCP报文相应字段一样。UDP报文没有可靠性保证和顺序保证字段,流量控制字段等,可靠性较差。当然,使用传输层UDP服务的应用程序也有优势。正因为UDP协议较少的控制选项,在数据传输过程中,延迟较小,数据传输效率较高,适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序像DNS、TFTP、SNMP等;UDP协议也可以用于传输链路可靠的网络。TCP协议和UDP协议使用16bit端口号(或者socket)来表示和区别网络中的不同应用程序,网络层协议IP使用特定的协议号(TCP:6,UDP:17)来表示和区别传输层协议。任何TCP/IP实现所提供的服务都是11023之间的端口号,这些端口号由IANA(Internet Assigned Numbers Authority,Internet号码分配机构)分配管理。其中,低于255的端口号保留用于公共应用;255到1023的端口号分配给各个公司,用于特殊应用;对于高于1023的端口号,称为临时端口号,IANA未做规定。常用的TCP端口号有:HTTP 80,FTP 20/21,Telnet 23,SMTP 25,DNS 53等;常用的保留UDP端口号有:DNS 53,BootP 67(server)/ 68(client),TFTP 69,SNMP 161等。套接字(socket)分为源套接字和目的套接字:l 源套接字:源端口号+源IP地址l 目的套接字:目的端口号+目的IP地址源套接字和目的套接字用于唯一的确定一条TCP连接。关于IP地址,将在后面讲述。为了在上图所示的主机和服务器之间建立一个连接,首先需要两端设备进行同步。同步(synchronization)是通过各个携带有初始序列号的数据段交换过程实现的。主机发送一个序列号为a的报文段1;服务器发回包含序列号为b的报文段2,并用确认号a+1对主机的报文段1进行确认;主机接收服务器发回的报文段2,发送报文段3,用确认号b+1对报文段2进行确认。这样在主机和服务器之间建立了一条TCP连接,这个过程被称为三步握手(three-way handshake)。接下来,数据传输开始。数据传输结束后,应该终止连接。终止TCP连接需要4次握手。建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN(报文段4)来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端几经终止了那个方向的数据传送。发送FIN通常是应用层进行关闭的结果。收到一个FIN只意味着在这一方向上没有数据流动。一个TCP连接在收到一个FIN后仍能发送数据。而这对利用半关闭的应用来说是可能的,尽管在实际应用中只有很少的TCP应用程序这样做。首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这个FIN)执行被动关闭。当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个F I N将占用一个序号。同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个FIN(报文段6),客户必须发回一个确认,并将确认序号设置为收到序号加1(报文段7)。上图显示了终止一个连接的典型握手顺序。我们省略了序号。在这个图中,发送FIN将导致应用程序关闭它们的连接,这些FIN的ACK是由TCP软件自动产生的。连接通常是由客户端发起的,这样第一个SYN从客户传到服务器。每一端都能主动关闭这个连接(即首先发送FIN)。然而,一般由客户端决定何时终止连接,因为客户进程通常由用户交互控制。 TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:一个用于接收数据,另一个用于发送数据。TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。下面我们以数据单方向发送为例,介绍滑动窗口如何实现流量控制。假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。我们可以利用ICMP的源抑制机制进行拥塞管理。关于ICMP,我们将在后面介绍。1.4 网络层网络层位于TCP/IP协议栈数据链路层和传输层中间,网络层接收传输层的数据报文,分段为合适的大小,用IP报文头部封装,交给数据链路层。网络层为了保证数据包的成功转发,主要定义了以下协议:IP(Internet Protocol)协议:IP协议和路由协议协同工作, 寻找能够将数据包传送到目的端的最优路径。IP协议不关心数据报文的内容,提供无连接的、不可靠的服务。ARP协议(Address Resolution Protocol,地址解析协议):把已知的IP地址解析为MAC地址;RARP(Reverse Address Resolution Protocol,反向地址解析协议):用于数据链路层地址已知时,解析IP地址;ICMP(Internet Control Message Protocol,网际控制消息协议)定义了网络层控制和传递消息的功能。IGMP(Internet Group Management Protocol,网际组管理协议),一种组播应用协议。普通的IP头部长度为20个字节,不包含IP选项字段。版本号(Version)字段标明了IP协议的版本号,目前的协议版本号为4。下一代IP协议的版本号为6。报文长度指IP包头部长度,占4位。8位的服务类型(TOS,Type of Service)字段包括一个3位的优先权字段(COS,Class of Service),4位TOS字段和1位未用位。4位TOS分别代表最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。Telnet和Rlogin这两个交互应用要求最小的传输时延,因为人们主要用它们来传输少量的交互数据。另一方面,FTP文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理(SNMP)和路由选择协议。用户网络新闻(Usenet news, NNTP)是唯一要求最小费用的应用。总长度(Total length)是整个IP数据报长度,包括数据部分。由于该字段长16比特,所以I P数据报最长可达65535字节。尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分片。而且,主机也要求不能接收超过576字节的数据报。UDP限制用户数据报长度为512字节,小于576字节。但是,事实上现在大多数的实现(特别是那些支持网络文件系统NFS的实现)允许超过8192字节的IP数据报。标识符(Identification)字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。标志位:3比特多种控制位:0比特: 保留, 必须为01比特: (DF) 0 = 可以分片, 1 =不可以分片.2比特: (MF) 0 =最后的分片, 1 = 更多的分片.DF和MF的值不可能相同。 0 1 2 +-+-+-+ | | D | M | | 0 | F | F | +-+-+-+片偏移:指的是这个分片是属于这个数据流的哪里。生存时间(TTL,Time to Live)字段设置了数据包可以经过的路由器数目。一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃。协议字段确定在数据包内传送的上层协议,和端口号类似,IP协议用协议号区分上层协议。TCP协议的协议号为6,UDP协议的协议号为17。报头校验和(Head checksum)字段计算IP头部的校验和,检查报文头部的完整性。源IP地址和目的IP地址字段标识数据包的源端设备和目的端设备。关于IP地址,后面会有详述。地址解析协议ARP是一种广播协议,主机通过它可以动态地发现对应于一个IP地址的MAC层地址。假定主机A需要知道主机B的MAC地址,主机A发送称为ARP请求的以太网数据帧给网段上的每一台主机,这个过程称为广播。发送的ARP请求报文中,带有自己的IP地址到MAC地址的映射,同时还带有需要解析的目的主机的IP地址。目的主机B收到请求报文后,将其中的主机A的IP地址与MAC地址的映射存到自己的ARP高速缓存中,并把自己的IP地址到MAC地址的映射作为响应发回主机A。主机A收到ARP应答,就得到了主机B的MAC地址,同时,主机A缓存主机B的IP地址到MAC地址映射。RARP常用于X终端和无盘工作站等,这些设备知道自己MAC地址,需要获得IP地址。以上图为例,无盘工作站需要获得自己的IP地址,向网络中广播RARP请求,RARP服务器接收广播请求,发送应答报文,无盘工作站获得IP地址。对应于ARP、RARP请求以广播方式发送,ARP、RARP应答一般以单播方式发送,以节省网络资源。网际控制消息协议ICMP是一个网络层的协议,它提供了错误报告和其它回送给源点的关于 IP 数据包处理情况的消息。ICMP通常为IP层或者更高层协议使用,一些ICMP报文把差错报文返回给用户进程。ICMP报文通常被封装在IP数据包内传输。RFC 792 中有关于ICMP的详细说明。ICMP包含几种不同的消息,其中ping程序借助于echo request消息,主机可通过它来测试网络的可达性,ICMP Echo Reply 消息表示该节点是可达的。ICMP还定义了源抑制(source quench)报文。当路由器的缓冲区满后,送入的报文被丢弃,此时路由器向发送报文的主机发送源抑制报文,要求降低发送速率。第2章 子网规划2.1 IP地址介绍我们用的最多而且最熟悉的记数系统就是十进制计数系统了。十进制计数系统是基于10的冥级数:101,102 等。二进制计数系统是基于2的冥级数:21,22等。二进制中用0和1表示。如第一张图,有8位二进制,从左到右每个1表示的数字为28-1=128,27-1=64,26-1=32,25-1=16,24-1=8,23-1=4,22-1=2,21-1=1,然后每位相加就得到了255。如果二进制的某位为0,则此位对应的十进制为0。更加清楚的解释可以看下张胶片的具体例子。每个IP地址是一个写成4个8位字节的32比特值。这就意味着存在4个组,每个组包括8个二进制位。如上图,这个不难理解,在这里就不多具体讲述。前面我们已经了解了TCP/IP协议的网络层的相关协议,并且已经在OSI参考模型中了解到每一个协议栈的网络层都有网络层地址,TCP/IP协议也不例外。本节重点介绍TCP/IP协议栈的网络层地址-IP地址。IP地址是进行复杂的子网规划的基础。我们前面已经学习到,数据链路层有物理地址-MAC地址,也知道,MAC地址是全球唯一的。当有数据发送时,源网络设备查询对端设备的MAC地址,然后将数据发送过去。然而,MAC地址通常存在于一个平面地址空间,没有清晰的地址层次,只适合于本网段主机的通信,另外,MAC地址固化在硬件中,灵活性较差。对于不同网络之间的互连通信,我们通常使用基于软件实现的网络层地址-IP地址来通信,提供更大的灵活性。在我们学习IP地址前,假定您已经掌握了二进制、十进制、十六进制的相关知识。IP地址,又称逻辑地址,和MAC地址一样,IP地址也是独一无二的。每一台网络设备用IP地址来唯一的标识。IP地址由32个二进制位组成,这些二进制数字被分为四个八位数组(octets),又称为四个字节。IP地址可以这样表示:点分十进制形式:11二进制形式:00001010.01101110.10000000.01101111十六进制形式:0a.7e.80.7f通常我们把IP地址表示为点分十进制形式,很少表示成十六进制形式。由于IP地址有32个二进制位,理论上可以有232个IP地址可以使用,也就是43亿个IP地址。在互联网络上,如果每一台三层网络设备,例如路由器,为了彼此通信,储存每一个节点的IP地址,可以想象路由器会有多么大的路由表,这对路由器来说是不可能的。为了减少路由器的路由表数目,更加有效的进行路由,清晰的区分各个网段,决定对IP地址采用结构化的分层方案。IP地址的结构化分层方案将IP地址分为网络部分和主机部分,区分网络部分和主机部分需要借助地址掩码(Mask)。网络部分位于IP地址掩码前面的连续二进制“1”位,主机部分是后面连续二进制“0”位。IP地址的分层方案类似于我们常用的电话号码。电话号码也是全球唯一的。例如对于电话号前面的字段010代表北京的区号,后面的字段82882484代表北京地区的一部电话。IP地址也是一样,前面的网络部分代表一个网段,后面的主机部分代表这个网段的一台设备。IP地址采用分层设计,这样,每一台第三层网络设备就不必储存每一台主机的IP地址,而是储存每一个网段的网络地址(网络地址代表了该网段内的所有主机),大大减少了路由表条目,增加了路由的灵活性。IP地址的网络部分称为网络地址,网络地址用于唯一地标识一个网段,或者若干网段的聚合,同一网段中的网络设备有同样的网络地址。IP地址的主机部分称为主机地址,主机地址用于唯一的标识同一网段内的网络设备。例如,前面所述的A类IP地址:11,网络部分地址为10,主机部分地址为110.192.111。那么如何区分IP地址的网络地址和主机地址呢?最初互联网络设计者根据网络规模大小规定了地址类,把IP地址分为A、B、C、D、E五类。A类IP地址的网络地址为第一个八位数组(octet),第一个字节以“0”开始。因此,A类网络地址的有效位数为8-1=7位,A类地址的第一个字节为1126之间(127留作它用)。例如、8等为A类地址。A类地址的主机地址位数为后面的三个字节24位。A类地址的范围为55,每一个A类网络共有224个A类IP地址。B类IP地址的网络地址为前两个八位数组(octet),第一个字节以“10”开始。因此,B类网络地址的有效位数为16-2=14位,B类地址的第一个字节为128191之间。例如、8等为B类地址。B类地址的主机地址位数为后面的二个字节16位。B类地址的范围为 55,每一个B类网络共有216个B类IP地址。C类IP地址的网络地址为前三个八位数组(octet),第一个字节以“110”开始。因此,C类网络地址的有效位数为24-3=21位,C类地址的第一个字节为192223之间。例如、8等为C类地址。C类地址的主机地址部分为后面的一个字节8位。C类地址的范围为 55,每一个C类网络共有28=256个C类IP地址。D类地址第一个8位数组以“1110”开头,因此,D类地址的第一个字节为224239。D类地址通常作为组播地址。关于组播地址,在HCSE交换课程会有讨论。E类地址第一个字节为240255之间,保留用于科学研究。我们经常用到的是A、B、C三类地址。IP地址由国际网络信息中心组织(International Network Information Center,InterNIC)根据公司大小进行分配。过去通常把A类地址保留给政府机构,B类地址分配给中等规模的公司,C类地址分配给小单位。然而,随着互联网络飞速发展,再加上IP地址的浪费,IP地址已经非常紧张。现在进行IP地址规划时,我们通常在公司内部网络使用私有IP地址。私有IP地址是由InterNIC预留的由各个企业内部网自由支配的IP地址。使用私有IP地址不能直接访问Internet。原因很简单,私有IP地址不能在公网上使用,公网上没有针对私有地址的路由,会产生地址冲突问题。当访问Internet时,需要利用网络地址转换(NAT,Network Address Translation)技术,把私有IP地址转换为Internet可识别的公有IP地址。InterNIC预留了以下网段作为私有IP地址:A类地址55; B类地址 55; C类地址55等。使用私有IP地址,不仅减少了企业用于购买公有IP地址的投资,而且节省了IP地址资源。但是这并不能完全解决IP地址短缺问题,目前已经正式提出了IPv6协议。IPv6地址有128个二进制位,共约2128个IP地址,完全可以解决IP地址紧张问题。IP地址用于唯一的标识一台网络设备,但并不是每一个IP地址都是可用的,一些特殊的IP地址被用于各种各样的用途,不能用于标识网络设备。对于主机部分全为“0”的IP地址,称为网络地址,网络地址用来标识一个网段。例如,A类地址,私有地址, 等。对于主机部分全为“1”的IP地址,称为网段广播地址,广播地址用于标识一个网络的所有主机。例如,55 , 55等,路由器可以在或者等网段转发广播包。广播地址用于向本网段的所有节点发送数据包。对于网络部分为127的IP地址,例如往往用于环路测试目的。全“0”的IP地址代表所有的主机,华为Quidway系列路由器用地址指定默认路由。全“1”的IP地址55,也是广播地址,但55代表所有主机,用于向网络的所有节点发送数据包。这样的广播不能被路由器转发。如上所述,每一个网段会有一些IP地址不能用作主机IP地址。下面让我们来计算一下可用的IP地址。例如B类网段, 有16个主机位,因此有216个IP地址,去掉一个网络地址,一个广播地址55不能用作标识主机,那么共有216-2个可用地址。C类网段,有8个主机位,共有28=256个IP地址,去掉一个网络地址,一个广播地址55,共有254个可用主机地址。现在,我们可以这样计算每一个网段可用主机地址:假定这个网段的主机部分位数为n,那么可用的主机地址个数为2n-2个。网络层设备(例如路由器等)使用网络地址来代表本网段内的主机,大大减少了路由器的路由表条目。子网规划这是一个C类地址,前24bits是网络位,后8bits是主机位,这个很容易理解。我们在前面学过了二进制和十进制之间的转换,那么上图的IP地址和子网掩码的二进制和十进制的对应关系应该很容易看懂。所以再看一下子网掩码比特数中是8+8+8+4=28,这个指的是子网掩码中连续1的个数,这里是28位1。那么最后是子网掩码的另外一种表示方法,/28=40。如胶片中所示,IP地址和子网掩码都已经知道,那么网络地址就是IP地址的二进制和子网掩码的二进制进行“与”的计算。“与”的计算方法是11=1,10=0,00=0。那么胶片中IP地址和子网掩码的与计算为:11000000,10101000,00000001,00000111 1111111 ,11111111,11111111,11110000 11000000,10101000,00000001,00000000最后得到的就是网络地址。主机数的计算是通过子网掩码来计算的,首先我们要看这个子网掩码中最后有多少位是0。如上图,假设最后有位为,那么总的主机数为2n个,可用主机的个数我们要减去全的网络地址和全的广播地址,既2n个。这个例子非常明确的讲述了主机数的计算过程。我们知道A类地址标准的子网掩码,也就是说24bits的0(主机位)位;B类地址的标准子网掩码为,也就是说16bits的0(主机位)位;C类地址的标准子网掩码,也就是说8bits的0(主机位)位。胶片中的例子是一个C类地址,标准子网掩码有8bits的0(主机位)位,那么计算子网总数的时候就为2的8-4次方,8指的是标准子网掩码的0(主机位)位个数,4为实际主机位个数,进行相减后,就得到了子网位数,既可表示为28-4那么就得到了子网总数A,B类IP地址以此类推。对于没有子网的IP地址组织,外部将该组织看作单一网络,不需要知道内部结构。例如,所有到地址172.16 .X.X的路由被认为同一方向,不考虑地址的第三和第四个8位分组,这种方案的好处是减少路由表的项目。但这种方案没法区分一个大的网络内不同的子网网段,这使网络内所有主机都能收到在该大的网络内的广播,会降低网络的性能,另外也不利于管理。比如,一个B类网可容纳65000个主机在网络内。但是没有任何一个单位能够同时管理这么多主机。这就需要一种方法将这种网络分为不同的网段。按照各个子网段进行管理。从地址分配的角度来看,子网是网段地址的扩充。网络管理员根据组织增长的需要决定子网的大小。网络设备使用子网掩码(Subnet Masking)决定IP地址中哪部分为网络部分,哪部分为主机部分。子网掩码使用与IP地址一样的格式。子网掩码的网络部分和子网部分全都是1,主机部分全都是0。缺省状态下,如果没有进行子网划分,A类网络的子网掩码为,B类网络的子网掩码为,C类网络子网掩码为。利用子网,网络地址的使用会更有效。对外 仍为一个网络,对内部而言,则分为不同的子网。如图:网络 分为两个网段:、。如果公司的财务部使用 子网段;公司的工程部使用 子网段。这样可使路由器根据目的子网地址进行路由,从而限制一个子网的广播报文发送到其它网段,不对网络的效率产生影响。在这个例子中,网段地址是一个C类地址:。假设需要20个子网,其中每个子网5个主机,就要把主机地址的最后一个八位组分成子网部分和主机部分。子网部分的位数决定了子网的数目。在这个例子中,因为是C类地址,所以子网部分和主机部分总共是8位,因为242025,所以子网部分占有5位,最大可提供30(25 -2)个子网。剩余3位为主机部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年皮肤科疑难病例诊断与治疗综合测验答案及解析
- 2025年内分泌学内分泌疾病筛查与诊断试卷答案及解析
- 2025年精神科健康评估与干预实践模拟考试答案及解析
- 2025年精神科抑郁症药物治疗副作用观察考试卷答案及解析
- 民族团结统一课件
- 新质生产力从理论到实践
- 2025年眼科医学知识综合考察答案及解析
- 2025年内科常见疾病诊断与治疗综合考试卷答案及解析
- 安全负责人任命书讲解
- 管理核心内容讲解
- 倾听与问题讲义
- 糖尿病合并足底烫伤护理查房
- 激光拉曼光谱
- 合同诈骗控告书范本
- 转专业学生回原专业申请表(模板)
- GB∕T 5336-2022 汽车车身修理技术条件
- 部编版六年级道德与法治上册第2课《宪法是根本法》精品课件【带视频】
- 南亚环氧树脂
- 常见体表肿物
- 信息检索技术讲义
- 商业银行基于华为OceanStor的关键业务同城切换方案
评论
0/150
提交评论