专题3 TCP/IP原理
本专题内容:
通过学习本专题掌握OSI七层参考模型,以太网工作原理,Cisco建网三层模型,以及综合布线基础。
本专题分成以下几个部分:
一、TCP/IP发展简史
二、DOD参考模型
三、IP地址
一、TCP/IP 发展简史
60年代末,美国国防部(DOD)对建立分组交换的广域网很感兴趣,其基本想法是通过连接多个地域的分散网络,那么局部地区的网络故障不影响其他部分网络的正常运行。主要是由于当时正处于冷战的形势下,他们要求建立能够在部分地区被袭击的情况下,仍正常运行的军事网络。
高级研究项目局(Advanced Research Projects Agency,ARPA)开始了这个称为ARPAnet的网络项目的研究,由于这个项目要求在不同的计算机之间进行通信,而不同的计算机上会运行不同的操作系统,因此就存在不同系统之间如何按照同样的规则进行交流的问题。因此最重要的问题就是开发所有的系统都遵守的标准协议,让它来实现应用程序对应用程序的通信,并独立于具体的计算机平台。因此,他们开发了独立于特定计算机系统的标准协议,以实现各种计算机之间的通信。
由于存在多种应用程序,因此协议也并非一个,而是一组协议。而TCP协议和IP协议就是他们开发的这些协议中最重要的两个,因此通常就以TCP/IP来称呼整个协议族,称为TCP/IP协议,这正是当前流行的Internet 使用的协议标准。
二、DOD参考模型
1、参考模型的概念
参考模型是关于计算机之间如何进行通信的一种形象化表示方式,它将进行通信所需要的每一步骤按照层次的概念组织起来。如果一个步骤处理的事情是负责物理线路的具体传输,就认为属于模型中的低层,反过来,如果一个步骤是与具体的应用程序打交道,就认为属于模型中的高层,在高层和低层之间按照逻辑关系,还有一些中间层次。
将通信过程划分为不同层次的原因是因为通信过程是一个复杂的过程,对于用户来讲,能使用WWW浏览信息,能发送电子邮件就能满足需要,他们只关心这些应用程序,而不关心具体的通信过程;另外一些软件驻留在后台处理通信过程中必要的任务,如建立连接,发送数据等,而不关心数据是如何发送出去的;还有一些硬件专门用来负载信号的传递;这样不同的软硬件有着层次分明的调用关系,自然就形成了层次的概念,而参考模型正是对这些层次进行区分和定义。
2、DOD参考模型
OSI 模型并未确定任何通信标准或协议;相反,它只是提供了通信任务应该遵循的一些指导性建议。OSI 模型只是一种模型或框架,它确定了要执行的功能,理解这一点很重要。它并未详细说明如何执行这些功能。
在 OSI 模型出现前,美国国防部定义了它自己的网络模型,即 DOD 模型。DOD 模型与 TCP/IP 协议套件有紧密的联系,按照对网络的不同理解,可以有不同的参考模型,将通信分为不同的层次结构,其中影响最大的就是国际标准化组织开发的OSI标准七层模型和TCP/IP中使用DOD四层模型。
DOD模型的四层分别为:
l 应用层(Application)
l 主机到主机层(Host to Host)
l 网络互连层(Internet)
l 网络访问层(Network Access)
1)网络访问层
TCP/IP并没有定义任何网络访问层的协议,这个层的协议大部分是由其他通信组织定义的,这反而使TCP/IP 能适合几乎全部硬件平台。网络访问层和硬件相关,负责基本的通信,这一层最常见硬件的是以太网和使用普通电话线的拨号连接。对于以太网,这一层定义了介质访问控制地址(MAC地址),用于标识不同的计算机。有了网络访问层,计算机之间就有了物理连接,计算机之间就为相互交换数据提供了条件。
2)网际层(Internet层)
Internet层负责确定一台计算机能在网络上的位置,并找出通向它的路径,然后才能够相互交换数据。这种路径选择功能既复杂又重要,因此实现这个功能的IP协议是整个TCP/IP协议组中的最基本协议。
网际协议(IP)负责系统间无连接方式的通信。它相当于 OSI 模型中网络层的一部分,它负责网络间的信息移动。通过检查网络层地址来完成这种通信,该地址确定了发送消息的系统和路径。
IP 提供与网络层相同的功能并帮助获取系统间的消息,但是它不保证这些消息能够成功传送。IP 还可以将这些消息分成多个段,然后在目的地重组这些段。另外,每一段可以采用不同的网络路径在系统间传送。如果这些段到达时乱了次序,IP 则会在目的地将这些信息包重组成正确的序列。
3)主机-主机层
这一层负责维护不同计算机上的两个进程的通信,它的主要作用就是将应用程序与网络的复杂性相隔离,应用层只需发出请求,而不必顾及任务是如何完成的。这一层包括两个协议:传输控制协议TCP和数据报协议UDP。
TCP协议是一种面向连接、有分组顺序控制和差错控制的安全准确的协议,因此必须在网络上传送额外的维护信息,网络开销大,但也是最常用的网络协议。TCP协议在不同机器之间建立了虚拟连接,它使用一个16位的端口地址(port number)来区分不同连接。应用程序必须使用一个或几个端口地址用来提供网络服务,因此对于常用的网络服务,其使用的端口地址就是固定的。
UDP协议不建立连接,因此也不保证数据正确完整,相对来讲网络开销小,然而对于不可靠的网络连接,数据完整性无法保证。UDP也使用端口地址发送和接受属于不同应用程序的数据。
4)应用层
应用层就是为了让应用程序在不同的计算机上运行并相互通信而实现的多种协议,每种协议都对应一类应用程序。并且随着Internet上的应用程序的不断增加,应用协议的种类也越来越多。
大部分TCP/IP应用程序是属于客户机/服务器类型的,这种类型的应用程序包含两个部分,其中服务器程序通常运行在服务器系统的后台,称为守护程序(daemon)。守护进程运行在后台,随时接受客户连接以提供服务;客户软件就是应用程序的用户接口,用户通过它使用服务器上的资源。
三、IP地址
1、为什么要使用IP地址
一个IP地址是用来标识网络中的一个通信实体,比如一台主机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,也都必须使用IP地址来进行标识,如同我们写一封信,要标明收信人的通信地址和发信人的地址,而邮政工作人员则通过该地址来决定邮件的去向。
同样的过程也发生在计算机网络里,每个被传输的数据包也要包括的一个源IP地址和一个目的IP地址,当该数据包在网络中进行传输时,这两个地址要保持不变,以确保网络设备总是能根据确定的IP地址,将数据包从源通信实体送往指定的目的通信实体。
2、IP地址的表示方法
IP协议给网络上的每个计算机都分配了一个唯一的IP地址,这个地址是一个分为四部分的32位长的数,为方便记忆,通常使用以点号划分的十进制来表示,如:211.158.10.5,这样IP地址就表示的比较清晰。
每个IP地址被划分为两个部分,一个为网络地址(Network Address),用于表示计算机所从属的网络号,一个为节点地址(Node Address,也成为主机地址),用于指明该网络上某个特定主机的主机号;网络地址和节点地址通过网络掩码(netmask)进行区分,对应网络掩码二进制位为“1”的IP地址部分为网络部分,其他的为节点部分。例如网络掩码255.255.255.0将192.168.1.200 的网络部分分为192.168.1和200两部分,因此其网络地址为192.168.1.0,节点部分为0.0.0.200。
同一个网络中的网络地址应该相同,但节点地址应该不同,因而子网掩码可以决定这个网络中可以拥有的主机的数量,即节点地址的范围减2,其中节点地址二进制位全为0的地址为网络地址,表示这个网络本身,而节点地址二进制位全为1的地址为广播地址,用于在网络中发送广播包。
3、IP地址的分类
为了给不同规模的网络提供必要的灵活性,IP地址的设计者将IP地址空间划分为五个不同的地址类别,如下表所示,其中A,B,C三类最为常用:
IP地址 类型 |
第一字节 十进制范围 |
二进制 固定最高位 |
二进制 网络位 |
二进制 主机位 |
A类 |
0-127 |
0 |
8位 |
24位 |
B类 |
128-191 |
10 |
16位 |
16位 |
C类 |
192-223 |
110 |
24位 |
8位 |
D类 |
224-239 |
1110 |
组播地址 |
E类 |
240-255 |
1111 |
保留试验使用 |
网络号由因特网权力机构分配,目的是为了保证网络地址的全球唯一性。主机地址由各个网络的管理员统一分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。
在IP协议中,为了便于管理,为不同种类的IP地址定义了缺省的网络掩码,而定义的具备不同网络掩码的IP地址就组成不同的网络类别。
A类网络:1.0.0.0到127.0.0.0,缺省网络掩码为255.0.0.0,每个网络可以容纳16, 777,214台计算机;
B类网络:128.0.0.0到191.0.0.0,缺省网络掩码为255.255.0.0,每个网络可以容纳65,534台计算机;
C类网络:192.0.0.0到223.0.0.0,缺省网络掩码为255.255.255.0,每个网络只能容纳254台计算机;
4、特殊IP地址
在 TCP/IP 网络中有几个地址具有特殊含义:
l 以零开头的地址表示当前网络中的本地节点。例如,0.0.0.23 指当前网络中的 23 号工作站。地址 0.0.0.0 指当前工作站。
l 在进行故障排除和网络诊断时,以 127 开头的地址非常重要。形式上将网络地址块 127.x.x.x 定义为 A 类地址,保留了该地址块以用于内部回送(loopback)。
l 将地址上所有位全置为 1(也就是值 255)代表"所有"地址。所以,192.18.255.255 意味着将消息发送给 192.18. 网络上的所有节点;类似的,255.255.255.255 意味着将消息发送给因特网上的每个节点。这些地址用于多点广播消息和服务公告。
注意:给系统分配节点号时,不要使用 0 或 255,它们都是保留数字,具有特殊含义。
5、“专用”IP 地址
如果您的网络没有连接到因特网而且最近也不会连接的话,则可以自由选择任何合法的网络地址。只是要确保您内部网络信息包不会跑到实际的因特网中即可。要确保即便信息包确实跑出也不会有任何危害,应该使用为专用而保留的那些网络地址的某个号码。因特网赋号管理局(Internet Assigned Numbers Authorit,IANA) 已经在 A、B 和 C 类地址中保留了一些网络号,您无需注册就可以使用这些地址。这些地址只有在专用网络中才有效,而且(理论上)不会路由到实际的因特网站点中。
A 10.0.0.0
B 172.16.0.0 - 172.31.0.0
C 192.168.0.0 - 192.168.255.0
请注意第二块和第三块分别包含 16 个和 256 个网络。
从这些网络号码中选择一个地址对于那些完全没有连接到因特网的网络是十分有用的。通过将单个主机用做网关,仍然可以实现访问另一个网络(如因特网)。对于本地网络而言,可以通过内部专用 IP 地址来访问该网关,而外部世界则通过正式注册的地址(由带宽供应商分配)知道该网关。
6、划分子网
VLSM(Variable Length Subnet Mask, 可变长子网掩码),这是一种产生不同大小子网的网络分配机制。VLSM将允许给点到点的链路分配子网掩码255.255.255.252,而给Ethernet网络分配255.255.255.0。VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用。但是需要注意的是使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2,OSPF,EIGRP和BGP。
为了提高IP地址的使用效率,可将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三部分:网络位、子网位和主机位。引入子网概念后,网络位加上子网位才能全局唯一地标识一个网络。把所有的网络位用1来标识,主机位用0来标识,就得到了子网掩码。如下图所示的子网掩码转换为十进制之后为:255.255.255.224。
划分子网是将大型的、实际的网络分成较小的逻辑网络的过程。划分网络的原因有以下几点:联网技术的电气(物理层)限制;为简便起见,希望在建筑物的每一层(或每个部门或针对每个应用)放置一个独立的网络而划分网络;减少网络段负载;或需要用高速线路连接远程位置。
划分网段的结果是使整个网络变成由一些小型子网块组成的网络,从而易于管理。这些较小的子网之间的通信通过网关和路由器进行。同样,一个组织可以有几个物理上在同一个网络中的子网,以便将网络功能逻辑地分成多个工作组。
7、CIDR无类别编址
1992年引入了CIDR,它意味着在路由表层次的网络“类”的概念已经被取消,代之以“网络前缀”的概念。Internet中的CIDR(Classless Inter-Domain Routing, 无类别域间路由)的基本思想是取消地址的分类结构,取而代之的是允许以可变长分界的方式分配网络数。它支持路由聚合,可限制Internet主干路由器中必要路由信息的增长。
IP地址中A类已经分配完毕,B类也已经差不多了, 剩下的C类地址已经成为大家瓜分的目标。显然,对于一个国家、地区、组织来说分配到的地址最好是连续的, 那么如何来保证这一点呢?
于是提出了CIDR的概念。CIDR是Classless Inter Domain Routing 的缩写, 意为无类别的域间路由。
“无类型”的意思是现在的选路决策是基于整个32位IP地址的掩码操作。而不管其IP地址是A类、B类或是C类,都没有什么区别。
它的思想是: 把许多C类地址合起来作B类地址分配。采用这种分配多个IP地址的方式,使其能够将路由表中的许多表项归并(summarization)成更少的数目。
8、IP地址计算实例
1)题型1:一个主机的IP地址是202.112.14.156,掩码是255.255.255.240,要求计算这个主机所在网络的网络地址和广播地址。
常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法:255.255.255.240的掩码所容纳的IP地址有256-240=16个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是64的倍数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的主机地址在这个范围内,因此略小于156而又是16的倍数的只有144,所以得出网络地址是202.112.14.144。而广播地址就是下一个网络的网络地址减1。而下一个16的倍数是160,因此可以得到广播地址为202.112.14.159。
2)题型2:要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有25台主机,那么对于这个子网就需要25+1+1+1=28个IP地址。(注意加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。)28小于32(32等于2的5次方),所以主机位为3位。而256-32=224,所以该子网掩码为255.255.255.224。
9、IPv6
由于历史的原因,中国在IPv4的发展中处于后进的状态,在国际上发言权不多,导致在IP地址的供需上严重失衡。截止2002年8月,拥有13亿人口的中国,只有大约2502万个IP地址(B类地址不足200个,A类地址一个都没有),而美国斯坦福大学一个学校就多达1700万个,IBM公司则高达3300万个。由此可见,中国是世界上面临IP地址缺乏问题最严重的国家之一。
如何把握IPv6的发展机遇,带动中国信息产业的发展,提升通信产业界的整体竞争力,从而使得中国在下一代互联网发展中占有一席之地,这是一个很大而又很重要的课题。
1)IPv6标准简介
从1995年到1998年,全球因特网的用户数每6个月翻一番,在2000年后,因特网用户数的增长开始减慢。当因特网以指数方式增长时,人们非常担忧网址会耗尽,因为现在的基于IPv4的网络地址空间仅有32位。在2002年初,全球大约使用了因特网IP地址的30%,在亚太地区,该数字达到了60%。考虑到IP地址耗尽的问题,IETF的 IPng工作组在1998年底制定了下一代因特网标准草案,这就是IPv6标准。
IPv6采用128位地址长度,地址几乎可以视为无限。在IPv6的设计过程中,地址短缺问题得到了完全的解决,还考虑了在IPv4中解决不好的其它问题,如点到点IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
2)IPv4和IPv6比较
特性 |
IPv4 |
IPv6 |
地址长度 |
32位 |
128位 |
地址空间 |
理论上提供43亿个网络地址,实际要少得多 |
非常多,可以为地球上每平方米提供1000个网络地址 |
服务质量 |
无服务质量保障机制 |
服务质量得到很大改善(QoS) |
安全性 |
有几种方法,但复杂性高,管理复杂 |
内建标准的安全方法,例如虚拟专网等 |
移动IP |
能够满足全球移动终端的需要 |
能够满足有限量的移动终端的需要 |
网络管理 |
网络多样,管理和升级复杂 |
网络一致,管理方便 |
3)IPv6的发展态势
随着IPv6标准的制定,人们预测因特网将快速迁移到IPv6标准上。但是IPv6应用和推广并没有人们想象的那样迅速和显著。从1998年到2002年,已经4年过去了,虽然世界各国都建立了多个IPv6的试验网络,但是真正商业化运营的IPv6网络还没有出现。到目前为止,完全支持IPv6的操作系统还没有出现(Windows XP将在2004年完全支持IPv6),基于IPv6标准的商业应用软件也很缺乏。
为什么IPv6推广应用如此缓慢呢?主要有下面几个原因:
A、确切地说,IPv6的真正优势在于网络管理。比如域间路由、网络配置、端到端安全和地址空间管理等,而不是在于终端用户的使用,真正需要使用IPv6的终端用户不多。对于基础设施供应商而言,创建IPv6基础设施的经济驱动力明显不足,难以设计获利的商业模式。
B、IP地址耗尽的严重性被夸大了。按照最悲观的估计,美国在2007年之前不存在IP地址紧张的问题;按照最乐观的估计,美国将在2020年才会发生地址危机。相对美国而言,欧洲所承受的IP地址空间压力要大一些,亚洲地区,尤其是中国IP地址的矛盾更加突出一点。尽管如此,但基于IPv4的一些改进技术,比如内部IP地址技术等,也从一定程度上缓和了IP地址的匮乏问题。虽然这些技术带来一些问题,比如破坏了点到点的通信,使网络管理变得的复杂等。但从总体上说,IP地址耗尽问题并没有人们普遍认为的那样严重。
C、IPv6的实验网虽然已经进行了很多年,但技术尚未成熟。基于IPv6的应用还很缺乏,尤其是商业应用,比如电子邮件系统、Web服务器等。此外,目前还没有完全支持IPv6的操作系统。
D、由IPv4升级到IPv6需要大量投入,更换成本很高。几乎所有的网络设备都需要更换,是一项庞大的工程。由此可见,IPv6的推广应用需要一个漫长的过程。
总之,由于只有很少终端用户能够体验到IPv6带来的直接好处,他们不愿意为采用IPv6支付额外的费用。这样,运营商无法设计获得收益的商业模式,从而缺乏从IPv4升级到IPv6的经济驱动。运营商不愿将网络从IPv4升级IPv6,这就导致设备供应商的市场过于狭小,低的出货量又导致了IPv6设备高昂的价格。这样就构成了一个不良循环,从总体上阻碍了IPv6的推广应用。