DOD模型 TCP/IP
2008年06月12日星期四 03:29 P.M.
按照对网络的不同理解,可以有不同的参考模型,将通信分为不同的层次结构,其中影响最大的就是国际标准化组织开发的 OSI标准七层模型和TCP/IP中使用DOD四层模型。
DOD模型的四层分别为:
l 应用层( Application)
l 主机到主机层( Host to Host)
l 网络互连层( Internet)
l 网络访问层( Network Access)
由于计算机通信本身是复杂的,并且通信要求也多种多样,因此,每一个层次事实上包含多种功能和多个方面,因此要实现每一个层次,现实的态度是一个功能一个功能的逐渐实现,而不是一揽子的方式来实现。按照功能和特性对每个层次再次进行划分,是对模型进行具体实现所必须的。
因此在 DOD参考模型中,包含多个协议或标准,应用这些具体的协议或标准,参考模型中的逻辑通信方式才真正得到具体实现。在这些协议和标准中,最重要的是IP协议和TCP协议,因此,可以用TCP/IP来代表整个DOD模型定义的协议族,这就是TCP/IP协议。
参考模型的层次划分从逻辑上来讲是十分自然的,它主要依据这些功能的基本程度。直接与应用系统打交道的层次,抽象程度最高,而低层则不管这些任务的具体类别,统一根据硬件的要求进行划分和传输。
1) 网络访问层
虽然 DOD参考模型中定义了这一层,事实上并没有定义任何具体的协议,就是说TCP/IP本身并不包含任何网络访问层的协议,这是因为这个层次主要是硬件相关的标准,而DOD模型的提出主要是基于这些硬件,解决更为重要的高层次问题。因此,这个层的协议大部分是由其他通信组织定义的,例如IEEE,CCITT 等。
当然制定模型的时候,也考虑了这些硬件标准的制定方式,与这些现有标准的协作,反而使 TCP/IP能适合几乎全部硬件平台,因为这些硬件都是遵循这些现有标准,如果DOD模型中完全独立的制定自己的硬件标准,也许会因为硬件厂商对这些标准的支持不够,而带来普及的问题,那么TCP/IP也不会象现在这些成为事实上的网络标准。
网络访问层和硬件相关,负责基本的通信,因此这也是使用计算机进行通信
所遇到的最基本问题之一。拥有什么样的通信硬件?选择何种通信硬件?具体的硬件种类是否被当前的系统,如 FreeBSD,所支持?
u 网络连接类型
最常用的网络连接方式是以太网方式,包括快速以太网,千兆以太网,以及未来更高速的以太网标准,以太网越来越流行,成为最标准的网络连接方式。FreeBSD对其有着近乎完美的支持,能够支持多种以太网卡硬件,同时FreeBSD 支持标准以太网的种种扩展,例如VLAN,PPPoE。在一些实验中,FreeBSD上实现了峰值达到Gbps的网络速度,表明FreeBSD系统的网络代码本身的高效率。
以太网的标准通常按照连接速度和介质类型分为:
10base-2, 10base-5, 10base-TX, 100base-TX, 100base-FX,
1000base-FX等,其中10base等指网络速度,而10base-2为使用细同轴电缆的传输方式,10base-5为使用粗同轴电缆的传输方式,这两种方式由于是总线方式的连接,可靠性差,已经被使用星型方式的双绞线连接方式而代替,而
10base-TX,100base-TX中的TX则指双绞线连接方式,而FX则为光纤连接方式。
使用 FreeBSD系统,可以获得当前的网络连接方式信息,需要注意的是,同样使用双绞线,可以支持10base-TX和100base-TX的连接方式,通常情况下,系统可以自动选择连接方式,这种方式称为以太网的自适应能力,FreeBSD系统下称为autoselect模式。从FreeBSD系统中还可以获得的信息包括网络连接是全双工的传输方式还是半双工的传输方式等有关信息。
另一种常用的网络连接方式是使用普通电话线的拨号连接, FreeBSD也能很好的支持它。由于使用普通电话线,因此网络速度受到一定限制,最高速度仅为56Kbps。ISDN是普通电话的扩展,单通道支持64Kbps,而同时可以使用两个通道,达到128Kbps的网络速度。然而,ISDN需要特别的电话交换机设备,并且由于资费的问题,以及其速度与电话拨号并没有本质的差别,这种方式显然只是过渡方式。FreeBSD系统对普通电话和ISDN的拨号连接都有很好的支持。
以太网连接方式和拨号连接是最常见的两种网络连接方式,但仔细考虑,就会发现这两种连接方式基于不同的考虑思路,用于解决不同的问题。以太网连接的网络中,网络中的计算机多,并且是集中的,因此有利于建立专用通信网络,是一种密集高速的通信模式,这种计算机网络被称为局域网 LAN。而拨号连接的条件下,计算机是分散的,数量是变化的,计算机之间的距离也非常远,因此借助通信服务商的网络更为合适,是一种分散型的通信模式,这种网络被称为广域网WAN。
在局域网领域内,也有另外一些标准,如 token ring、FDDI等网络连接方式,这些标准在实践中已经很少应用,不再是主流产品。
而在广域网领域内,采用拨号的计算机网络连接方式,属于最普通、古老、常见的方式,也是性能比较差的方式。通信服务商能提供另外一些广域网络连接方式,由于这些网络连接的是计算机等数据处理设备,与电话连接的语音通信设
备不同,因此这些网络也被称为数据网络。常见的数据网技术有 X.25,DDN,Frame Relay,ATM,SDH等。
X.25是最早的专用数据网络技术,当前还普遍用于金融领域,但这些连接方式速度慢,已经逐渐被淘汰。FreeBSD曾经也支持X.25,但由于X.25逐渐退出市场,也抛弃了对X.25的支持。
DDN是一种透明的传输方式,当前应用的比较流行,由于其为透明方式,关键就是硬件支持能力。然而,由于这些通信网络的连接比较专用,多数情况下使用独立的通信设备,而不是为标准硬件开发的插卡。结果导致:第一,很难到可以用在个人计算机上的数据网络硬件插卡(除modem外),第二、即使有这些插卡,这些插卡也面向专用市场,开发商将自己开发专用软件来完成专用任务,而不是开放硬件细节让第三方开发软件,因此就导致,FreeBSD对这些硬件支持都并不是很完善。所有的这些通信网络,由于领域过于专,都存在这些硬件的支持问题。
FreeBSD并不支持Frame Relay,但对ATM的支持却比较完整,这可能是因为三、四年前ATM领域的雄心勃勃,试图进入桌面领域,因此,相当多的人就使用通用平台,如FreeBSD,对ATM进行支持。
而 SDH则是直接就是底层的传输模式,由于对骨干网络的速度要求,那么人们开发了IP over SDH,IP over dwpm??等IP协议的骨干传输方式。由于是骨干网络,专有程度非常之高,已经不是通用硬件和软件的涉足领域了,显然FreeBSD是不支持它们的,支持它们的工作属于juniper、CISCO等专业核心网络设备厂商。有意思的是,Juniper的网络设备是基于FreeBSD系统的代码,当然硬件是截然不同的了。
u 城域网与宽带接入
虽然,局域网和广域网是解决不同的网络连接问题的,但由于计算机网络的普及越来越高,一种趋势就是在一个很大的范围内建立网络连接,例如一个城市的范围内,这么大的范围内连接数量巨大的计算机系统,因此这个问题就成为了新的课题,被称为城域网。
城域网本身的建设和使用的技术比较容易确定,可以根据网络的具体情况选择相应的广域网,甚至局域网连接方式,但在将最终的计算机接入城域网的是否,采用何种种技术就存在争论,这个问题又被称为” 最后一公里” 的接入问题。
从局域网出发,最直接的考虑是采用以太网方式连接计算机和城域网,这种方式需要重新铺设网络线路,非常适合密集性的小区。
另一种方式是使用普通电话线的 ADSL,事实上有一大类这种非常类似的硬件标准,如HDSL等,因此
被称为xDSL。ADSL可以使用普通电话线,但最高可以达到上行1Mbps,下行8Mbps的网络传输速度。然而,FreeBSD不需要考虑支持ADSL设备,因为硬件厂商为了保持最大的兼容性以及更容易的推广ADSL,在与
终端连接的时候,在底层进行了转换,一般是通过以太网方式,直接连接计算机的网卡。第三种流行的接入方式是HFC,通过原本传播有线电视信号的同轴电缆来传播网络信号。
ADSL和HFC,以及类似的连接方式,和以太网连接方式一起,成为了计算机宽带连接的主流方式,而原有的拨号连接方式,由于速度比较低,则被称为窄带连接。
u 广播与点对点
当物理上的网络连接设置好之后,原则上计算机之间就可以相互通信,但要完成通信,仍然存在一些问题。
对于以太网来讲,通信数据是通过广播的方式发送的,当一个数据包发送到网络上之后,可以被所有的网络上的计算机获得,但是接受到信号的计算机如何知道这个信号是哪个计算机发出的呢?因此,必须在这个网络上标识每个不同的计算机,通信过程才能正确完成。因此网络访问层就定义了介质访问控制地址( MAC地址),用于标识以太网中不同的计算机。有了网络访问层,计算机之间可以相互识别,并可以建立物理连接,就为计算机之间相互交换数据提供了条件。
而拨号连接则完全不同,一个连接是从一个点到达另一个点的,原则上一个点发送的数据必然是发送给另一端的,因此,逻辑上只需要和对端协商就可以了。但拨号连接的一个问题是,需要建立连接,即使是专线也只是建立之后不再撤消的永久连接。一旦建立连接,就由专用网络设备维护这个连接,将网络数据通过一个真实或虚拟的链路传输出去。网络设备通常是通过交换的方式,将数据从一点传递到另一点的。
现代的以太网也不再完全是广播模式,一旦通过广播到对方的位置之后,中心的以太网交换机能直接将数据交换给目标,而不再广播给所有的网络节点。
u FreeBSD下的网络驱动
在 FreeBSD下,网络硬件是以网络界面(Interface)的形式存在的,如果计算机的网卡被正确探测到的话,则就有一个相应的网络界面。例如第一个3C905
网卡的网络界面是xl0,第一个Ne2000兼容网卡网络界面是ed0,使用内核级PPP驱动的ppp网络界面为ppp0等。这些网络界面都对应于内核中的硬件驱动程序,只有在硬件被检测到之后,这些网络界面才能被正常使用。
除此之外,还有一个本地环路网络界面 lo0,这使得即使没有任何网络界面的硬件存在,也能使用FreeBSD运行网络程序为本机提供网络服务。
2) 网际层( Internet 层)
tcpip协议中基于tcp协议的应用程序网络访问层能够标识同一个直接连接的网络中的两个不同计算机,使得它们能够相互通信,但是实际网络情况更为复杂,不仅仅由一个物理网络组成,而是由多个不同类型的物理网络互相连接组成的,因此,不同物理网络之间的两个计算机并没有直接连接,当它们需要通信的时候,首先要确定另一个计算机所在的
物理网络,然后再确定计算机在整个网络中的位置,才能达到通信的目的,这就是 Internet层需要完成的任务。
Internet层负责确定一台计算机能在整个网络上的位置,并出通向它的路径,然后才能够相互交换数据。这种路径选择功能既复杂又重要,因此实现这个功能的IP协议是整个TCP/IP协议组中的最基本协议。
u IP地址
为了确认一台计算机在整个网络当中的唯一位置,那么就需要两个数据,一个是这个计算机所处的物理网络在整个网络中的唯一标识,这可以通过网络地址( Network Address)来确定,另一个是这个计算机在它所在物理网络的唯一位置,这可以通过节点地址(Node Address)来确定。
原则上,网络访问层中已经确定了每个计算机在自己物理网络中的节点地址,只需要确定计算机所在的网络地址就可以了,例如 IPX协议就使用以太往的MAC地址作为节点地址。但是,考虑到网络访问层中存在多种不同的通信标准,每种标准使用的地址表示方式是不同的,这样以来,由于使用网络连接方式不同,每个计算机的地址形式都不一致,这在网络规模较小时还不是问题,在网络规模越来越大的时候,就造成网络划分和管理的困难。因此,IP协议使用了一个唯一的逻辑地址表示形式来解决这个问题。
IP协议给每个计算机都分配了一个唯一的IP地址,这个地址是一个分为四部分的32位长的数,每个部分为8位,使用点将其分开,例如192.168.1.64,这样整个地址就表示的比较清晰。
每个 IP地址被划分为两个部分,一个为网络地址,用于表示计算机所在的具体网络,一个为节点地址,用于标识计算机在其网络中的位置;网络地址和节点地址通过网络掩码(netmask)进行区分,对应网络掩码二进制位为一的IP
地址部分为网络部分,其他的为节点部分。
例如网络掩码 255.255.255.0(16进制形式为0xffffff00)将192.168.1.64的网络部分分为192.168.1和64两部分,因此其网络地址为192.168.1.0,节点部分为0.0.0.64。这个IP地址在FreeBSD下可以写作
192.168.1.64/255.255.255.0或者192.168.1.64/24,后面一种形式和前一个是等价的,表示子网掩码的二进制位中前面为1的位共有24位,即255.255.255.0。
同一个网络中的网络地址应该相同,但节点地址应该不同,因而子网掩码可以决定这个网络中可以拥有的 TCP/IP主机的数量,即节点地址的范围减2,其中节点地址二进制位全为0的地址为网络地址,表示这个网络本身,而节点地址二进制位全为0的地址为广播地址,用于在网络中发送广播包。
在 IP协议中,为了便于管理,为不同种类的IP地址定义了缺省的网络掩码,而定义的具备不同网络掩码的IP地址就组成不同的网络类别。区分不同网络地址类别的主要目的是为了解决有些网络比较大,需要容纳较多的节点,因此需要较多的节点地址,而另一些网络比较小,如果分配过多的节点地址就造成了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。