谈谈Linux网络技术

编者按:信息时代离不开网络技术,本讲主要介绍网络分类、连接技术、网络协议,并以红旗Linux桌面版4.0为例,介绍网络配置和组网应用。

    网络按其覆盖范围的大小可以分为局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和城域网(Metropolitan Area Network,MAN)。

    局域网的覆盖范围较小,半径一般在几百米到几千米之间,通常应用于小的商业区或较大机构中的特定部门。局域网的发展和普及是与PC机的发展与普及密切相关的。

    广域网可以为地理位置比较分散的计算机提供互连能力,以便进行快速数据交换。一些大型的企业,特别是那些跨国公司需要将他们在全球各地的分支机构中的计算机连接起来,就需要建立广域网。

    城域网的覆盖范围介于局域网和广域网之间,往往是在一个城市内使用,其典型应用则是人们常说的校园网。

    Internet是世界上规模最大、用户最多、影响最大的计算机互连网络,它连接了世界各地数百万个网络和数千万台计算机系统。

    网络的拓扑结构

    网络的拓扑结构规定了计算机之间的连接方式。在局域网中,最为常见的网络拓扑结构有总线型、环型和星型三种,如图1所示。


图1 网络拓扑结构

    在这三种拓扑结构中,星型结构最便于布线,特别是现在的结构化布线大多采用星型结构或类似星型的拓扑结构。但是,许多网络不支持星型结构,例如以太网就只支持总线结构。为了既要符合网络的要求,又能够充分利用星型结构带来的结构化布线上的便利,便出现了星型总线结构和星型环型结构。这些拓扑结构在物理连接上是星型拓扑结构,而其逻辑结构仍然是总线型或是环型。星型总线结构的典型例子是通过集线器(Hub)连接起来的以太网。

    网络协议

    在任何信息交换的过程中,参与信息交换的双方都必须按事先约定的某种方法与规则传输和接收信息。这样,信息交换双方才能正确地从对方获得有用的信息,从而保证信息交换的顺利进行。这种方法与规则实际上就是一种通信规程。在网络通信中,就把这种通信规程称作网络协议。

    网络协议包括(但不是仅仅包括)信息交换的格式和顺序、传输和接收信息时的措施、出现错误时的处理方法等内容。

    在当今的网络世界中,正在使用的网络协议有许多种,其中使用最为广泛的无疑是TCP/IP协议。理论上的网络模型是OSI协议,它是国际标准化组织(ISO)为促进计算机互联网络的研究和发展,制定的一个层次化的网络协议参考模型,即开放系统互联参考模型(Open System Interconnection Reference Model,OSI)。

    1.OSI参考模型
    OSI参考模型把整个网络通信协议分为七层,每层执行一种定义明确的功能,它根据定义好的协议与远方系统的对应层之间交换用户数据和控制信息。每层协议只能与其相邻的上层或下层进行通信,既为相邻高层提供服务,又要求相邻低层为其服务,如图2所示。


图2 OSI参考模型

    (1)应用层(Application Layer) 应用层提供一组允许用户访问的网络服务界面,包括文件传输、访问与管理、终端仿真,以及电子邮件等一般文档和信息交换服务。

    (2)表示层(Presentation Layer) 表示层负责两个通信应用层实体在协议之间传输过程中进行数据格式转换。表示层协商并选择在交互期间要使用的传送语法,使得在两个应用实体之间的信息语法得以维持。表示层的另一个作用是数据加密/解密。

    (3)会话层(Session Layer) 在许多网络设置中,要求在两个通信实体间建立正式的连接。这种连接使得信息收发具有高可靠性。会话层正是为建立这样的连接及管理两个通信实体间的数据交换提供必要的手段。在整个网络事务处理过程中,会话层负责建立(和清除)在两个通信实体间的通信通道。

    (4)传输层(Transport Layer) 传输层协议在要进行通信的两个实体间形成一个双向(全双工)的数据管道。在OSI模型中,传输层是面向应用的高层协议和面向网络的低层协议之间的界面。它为会话层屏蔽了低层网络的细节,提供与网络类型无关的可靠信息传送机制。

    (5)网络层(Network Layer) 网络层负责建立和清除两个传输层协议实体之间在整个网络范围内的连接,包括路由选择(寻址)和流量控制。该层维护路由表,并确定哪一条路由是最快捷的,以及何时使用替代路由。

    (6)数据链路层(Data Link Layer) 通过物理网络为网络层提供可靠的数据传输机制。在有传输错误的情况下,该层负责错误检测和信息重发。数据链路层提供两种服务类型:一类是无链接的,也称为数据报(Datagram);另一类是面向链接的,也称为虚电路(Virtual Link)。

    (7)物理层(Physical Layer) 物理层定义在网络设备之间传输数据所需的硬件特性,包括传输速度、电压、连接器类型等。

    OSI虽然只是一个理论上的参考模型,但是它对计算机网络技术的影响是巨大的。它对于在OSI模型以前开发的系统,如TCP/IP同样适用。因此,当一个通信设备不符合OSI模型的结构时,我们也可以说它是基于OSI的。

    2.TCP/IP协议
    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是用于计算机通信的一个协议族。它是美国国防部高级研究项目局在20世纪70年代提出的一项基金研究项目的研究成果。该项目的目的是寻求一种能使用各种介质来传输数据的方法,包括串行线路。

    由于TCP/IP具有很强的互连性,美国国防部认可并推广TCP/IP。而且,美国各大学都普遍采用带有TCP/IP的BSD Unix,许多厂商也将TCP/IP无偿地安装在BSD Unix系统上,可以免费在几乎任何类型的机器上使用。因此,TCP/IP得到了人们的普遍认可,在市场上显示出强大的竞争力。目前,几乎所有的网络操作系统都提供对TCP/IP的支持,TCP/IP已经是Internet的标准协议。

    TCP/IP协议族包括诸如Internet协议(IP)、地址解析协议(ARP)、互联网控制信息协议(ICMP)、用户数据报协议(UDP)、传输控制协议(TCP)、路由信息协议(RIP)、Telnet、简单邮件传输协议(SMTP)、域名系统(DNS)等协议。TCP/IP协议的层次结构如图3所示。


图3 TCP/IP协议层次结构

    (1)应用层 应用层包含一切与应用相关的功能,相当于OSI的上面三层。我们经常使用的HTTP、FTP、Telnet、SMTP等协议都在这一层实现。

    (2)传输层 传输层负责提供可靠的传输服务。该层相当于OSI模型中的第4层。在该层中,典型的协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。其中,TCP提供可靠、有序的,面向连接的通信服务;而UDP则提供无连接的、不可靠用户数据报服务。

    (3)网际层 网际层负责网络间的寻址和数据传输,其功能大致相当于OSI模型中的第3层。在该层中,典型的协议是IP(Internet Protocol)。

    (4)网络接口层 最下面一层是网络接口层,负责数据的实际传输,相当于OSI模型中的第1、第2层。在TCP/IP协议族中,对该层很少具体定义。大多数情况下,它依赖现有的协议传输数据。

    TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。TCP/IP实际上是由许多协议组成的协议簇。图4示出TCP/IP的主要协议分类情况。


图4 TCP/IP协议簇

    TCP/IP协议基于Client-Server(客户—服务器)模型。在最简单的形式中,客户是请求服务的程序,而服务器是提供服务的程序。在网络环境中,客户程序经常发出RPC(远程过程调用),申请执行一个操作;服务器通过执行相应操作的过程来回答RPC,并对客户发一个回答。表示网络中机器时也用上述术语:服务器表示提供服务的主机,它的文件或服务通过RPC得到利用;客户机表示提出请求的主机。

    3.IP地址和掩码
    在计算机网络中,每个网络设备(如网卡)都有自己的硬件地址,即物理地址。这个地址是该设备在网络中的惟一标识,它把该设备和网络上的其它设备区分开。这就是通常所说的MAC(Media Access Control)地址,它由该设备的制造商确定,通常不可以改变。MAC地址由6个十六进制数组成,由冒号分开。例如00:00:c0:34:f1:52。

    IP地址是网络设备在网络中的逻辑地址,独立于任何特定的网络硬件和网络配置,不管物理网络的类型如何,它都有相同的格式。

    IP地址由两部分组成,即网络地址和主机地址。如图5所示。前者标识所连入的网络,后者标识特定网络中的主机或节点。为了确保主机地址的惟一性,其网络地址由网络信息中心NIC分配,而主机地址由网络管理机构负责分配。


图5 IP地址结构

    IP地址占用32位(二进制),一般表示为4个用句点隔开的十进制数字。例如,192.168.200.1。网络中的各台机器都必须有不同的IP地址。另外,如果一个网络设备是作为与其它网络相连的路由器,那么它必须安装两块或更多块网卡,并属于两个或多个网络。在这种情况下,必须为属于每个网络上的网卡都分配惟一的IP。IP地址不同于MAC(媒体存取控制)地址,它是可以设置的。

    根据网络中能容纳主机数量的多少,IP地址通常分为A、B、C、D和E等五类。在实际构建一个网络时,应使用能容纳网络中全部主机的最小网络类别。Internet地址类别见表1。IP地址的格式如图6所示。

表1 Internet地址类别



图6 IP地址格式

    应注意,D类地址不标识网络,有特殊用途,主要是多目广播。而E类地址暂时保留,用于实验和将来使用。

    上述IP地址采取两级寻址方法,每一个网络应有一个独立的网络号,在此网络内每一台主机有独立的主机号。随着网络应用的急剧增长,目前IP地址非常紧张。为此,IP协议规定了一些保留IP网络号,它们不会在Internet中的任何部分出现。

    虽然这些私有地址可能被许多网络使用,但是由于它们并不相互通信,所以就不会造成什么影响。按照RFC 1918文件的规定,以下地址为私有地址:
    1个A类地址,10.0.0.0;
    16个B类地址,172.16.0.0~172.31.0.0;
    256个C类地址,192.168.0.0~192.168.255.0。

    为了快速地确定IP地址的哪部分代表网络号,哪部分代表主机号,以及判断两个IP地址是否属于同一网络,就产生了网络掩码的概念。网络掩码给出了整个IP地址的位模式,其中的1代表网络部分,0代表IP主机号部分。掩码也采用点分十进制表示。用它来帮助确定IP地址网络号是什么,主机号是什么。网络掩码的一般形式是:
    A类网络的标准缺省掩码是255.0.0.0;
    B类网络的标准缺省掩码是255.255.0.0;
    C类网络的标准缺省掩码是255.255.255.0。

    例如,有一个私有地址192.168.200.13,其掩码为255.255.255.0。将该IP地址和掩码都转换成二进制数,即:
    11000000.10101000.11001000.00001101
    11111111.11111111.11111111.00000000
    将二者按位与,结果为11000000.10101000. 11001000.00000000,即十进制数192.168.200.0,所以网络号是192.168.200.0。
    IP地址中减去网络号的结果就是主机号,即主机号为13。

    ARP协议通过查找IP地址和物理地址对照表(即ARP表)把IP地址转换成物理地址。RARP(Reverse Address Resolution Protocol,反向ARP协议)主要用于把无盘工作站的网络设备的物理地址转换成IP地址。

    下面介绍一下Linux网络技术的简单应用,即拨号上网、连入内部局域网和网络互连。
拨号上网

    利用调制解调器实现拨号上网是家庭及个人计算机最常用的方式之一。调制解调器分为内置和外挂两种形式。内置调制解调器是插在机器主板上的PCI插槽中,外挂调制解调器是插在机器的USB接口上。

    在Linux环境下,实现拨号上网是非常方便的。先对调制解调器进行配置管理,其配置过程如下:
    (1)开机后,在控制面板窗口中,双击调制解调器图标,出现如图7所示的窗口。
    (2)点击自动检测,如果系统检测到当前支持的调制解调器,则出现一个确定框,从中选定是。点击驱动程序管理,接着出现调制解调器管理窗口,其中列出当前所有支持的调制解调器的详细信息,如图8 所示。选中对应于系统检测到的调制解调器的那一项,然后点击确定。
    (3)建立拨号连接。双击主窗口中的拨号程序,在出现的Poseidon拨号软件窗口中点击新的...按钮,出现创建新连接框,如图9 所示。

    从中点击连接向导。按照屏幕框图中给出的提示选择相应内容,确定该项内容后,点击后一页。如果所用的拨号网不是屏幕上给出的263等网,则选择自定义。随后出现如图10 所示的创建新连接窗口。


图7 网络设备配置窗口


图8 调制解调器管理窗口


图9 创建新连接框

图10 创建新连接窗口

    在该图中输入要拨号上网的电话号码、用户名和密码,然后点击后一页。在出现的图框中输入连接的名称,也可以采用系统自动给出的名称,确认后按后一页。最后出现连接完成的信息。

    调制解调器配置和创建新连接完成之后,重新开机。可以通过双击系统主窗口的拨号程序图标,进而实现拨号上网。

    连入内部局域网

    如果所在的单位或社区已经构建了一套局域网,那么就可以很方便地把自己的计算机连入该网中,从而经济、高效地得到网络提供的各项服务。

    首先要对网卡进行配置。打开机器电源,将Linux系统启动,然后在控制面板窗口上双击网络图标。会出现图11所示的窗口。

图11 配置网络参数

图12 网卡配置窗口

图13 网络配置窗口

    配置程序会探测出机器中安装的多块网卡,依次用eth0、eth1……表示。IO和IRQ定义了网卡使用的I/O端口地址和中断号。通常系统能自动检测出网卡,所以不必填写。

    网卡参数用来指定主机分配IP地址的模式:手工指定需要人工指定网卡的配置信息;自动获取表示自动获得IP地址;网关和子网掩码也不需要填写。选中手工指定,必须填入主机名和域名(由所用的主机名称和所在域名组合而成)、IP地址(当前网卡使用的IP地址)、子网掩码(所在子网的网络掩码)。IP地址和子网掩码都由网络管理机构负责分配。

    一般说来,一块网卡对应一个IP地址,也可以绑定多个IP地址,尤其是服务器的网卡。若选中允许绑定多IP,则出现列表,从中输入要绑定的IP地址与其子网掩码。如果只有一个IP地址,则不必选中此项。点击确定,则出现如图12 所示的窗口。

    点击自动检测。如果检测到当前支持的网卡,则在下面出现的网络配置窗口的当前设备框中列出被加载的网卡。图13所示的例子是连入一个校园网的情况。

    接下来,在基本网络配置窗口的底部有缺省网关和域名服务器文本框。按照所连网络的网络管理机构统一的规定,将参数填入相应的数据框中。其中,缺省网关是指默认网关的IP地址;缺省域名服务器输入主机所在域的默认DNS服务器地址;备用域名服务器是可选的,配置它是为了保证系统能够正常地解析域名。

    上述参数配置好后,点击应用或确定,使得网络参数设置生效。

    重新开机,双击主窗口上的浏览器,可以利用网络提供的各种服务功能,包括对外部网站进行浏览。

    网络互连

    随着计算机网络技术的迅速发展,以及社会对计算机网络不断增长的需求,使得计算机网络的互连变得日益重要。计算机网络互连的主要形式有:局域网互连、局域网与广域网互连、局域网与城域网互连。

    1.局域网互连
    最常用的局域网互连技术是使用桥接器(Bridge),将分散在不同地方的局域网相互连接起来。桥接器所连接的局域网不必是同一种类型。桥接器是在数据链路层上的互连,即MAC子层的互连。

    2.局域网与广域网互连
    局域网和广域网互连通常使用网关或路由器来实现。一般路由器是网络层的互连,网关是网络层次之上的互连。不过网关(Gateway)和路由器两者经常混用,因而可互相替换使用。借助于广域网能实现相距很远的局域网互连。

    3.局域网与城域网互连
    使用城域网能将城市范围内的局域网互连起来。由于城域网标准FDDI(光纤分布式数据接口)、DQDB(分布式队列双总线)和SMDS(多兆比数据交换服务)都只定义了网络层以下功能,因此,局域网与城域网互连只涉及到网络层(SMDS)和数据链路层的MAC子层(FDDI和DQDB)。

    网络互连可以在不同的层次上实现,分为物理层互连(通常采用中继器,以比特形式传送信息分组)、数据链路层互连(采用桥接器或媒体访问控制桥接器,是按帧接收或传送信息)、网络层互连(已在广域网中广为采用,其中各子网一般具有不同的协议机制)和高层互连(传送服务是一类端对端服务,应用层网关可以提供交互式终端服务和电子邮件服务)。

    如果家中或办公室里有两台(或更多)台式机或笔记本电脑,那么就可以把它们连成一个私有网,让这些机器通过网关访问Internet,或者另一个局域网。这样做既可以方便用户上网应用,又能节省联网的多项开支,如图14所示。

图14 具有一台网关的网络互连模型

    网络互连要解决安全和地址转换问题。现在,网络安全IPsec(IP Security)和网络地址转换NAT(Net Address Translation)应用已经十分广泛。NAT能使得内外网络隔离,提供一定的网络安全保障。在网络配置时,内部网络中要使用内部地址,通过NAT把内部地址翻译成合法的IP地址在Internet上使用。其具体的做法是,把IP包内的地址域用合法的IP地址来替换。

    通常NAT功能被集成到路由器、防火墙、ISDN路由器,或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级。当启用上述系统后,就启动了NAT功能。

    为了实现私有网与公共网的连接,需要将一台计算机配置成IP代理服务器,实现网关功能,其余机器作为客户机。IP代理服务器所在机器上至少安装两块网卡,而客户机上至少装一块网卡。

    利用第一块网卡(eth0)将IP代理服务器连接到内部网交换机上,则将内部网的IP地址给eth0,如192.168.200.13,网络掩码为255.255.255.0。不要为它配置网关地址,但是该IP地址是这个内部网的客户机网关地址,并且要启用IP转发功能。

    利用第二块网卡(eth1)将IP代理服务器连接到外部网。该网卡的IP地址是由外部网的网络管理机构指派的一个地址,相应的网关地址、网络掩码及缺省域名服务器也是由该网络管理机构指派的。

    设置了IP代理服务器后,对客户机的设置就相对简单了。可以为其网卡指定一个私有IP地址,如192.168.200.16,并将该网卡的网关地址设为192.168.200.13,即客户机的网关设定为服务器的内部网卡的IP地址,端口设定为3128(默认值)。

    由于Linux是在Internet上发展成熟的操作系统,因此,它具有与生俱来的网络功能,特别在Internet和Intranet的功能上有明显优势。与Windows 95/98等系统不同的是,Linux系统中同时具有服务器和客户机的双重功能。

    以上简要介绍了网络的一般概念、知识和组网技术。要掌握更精彩的内容,还需要不断地学习和上机实习。