购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 计算机网络基础

计算机网络是利用通信设备和线路将地理位置不同的、功能独立的两个或多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。

2.1.1 计算机网络的组成

计算机网络主要包括网络硬件和网络软件两大部分。

网络硬件是计算机网络系统的物质基础,包括网络服务器、工作站、传输介质和网络互连设备等。不同的计算机网络在硬件方面差别比较大。随着计算机技术和网络技术的发展,网络硬件日渐多样化,其功能更强大,也更复杂。

网络功能是由网络软件来实现的。在网络系统中,网络上的每个用户都可以享用系统中的各种资源,为此系统必须对用户行为进行控制。系统需要通过软件工具对网络资源进行全面的管理、调度和分配,并采取一系列安全保密措施,以防止用户对数据和信息的不合理访问,防止数据和信息被破坏和丢失,造成系统混乱。网络软件包括网络协议软件、网络通信软件、网络操作系统、网络管理软件以及网络应用软件等。

2.1.2 TCP/IP

TCP/IP是ARPANET实验的产物。1981年推出的IP(Internet Protocol,互联网协议)和早在1974年问世的TCP(Transmission Control Protocol,传输控制协议)合称为TCP/IP。这两个协议定义了一种在计算机网络间传送数据包的方法。TCP/IP是计算机网络中用得最为广泛的体系结构之一,是网络界的实际工业标准协议。TCP/IP参考模型与OSI参考模型的对应关系,如图2-1所示。

图2-1 TCP/IP参考模型与OSI参考模型的对应关系

TCP/IP簇被设计成四层模型,包括应用层、传输层、网络层和网络接口层。

1.网络接口层

TCP/IP的网络接口层对应OSI参考模型中的数据链路层和物理层。网络接口层定义与不同的网络进行连接的接口,负责把IP数据包发送到网络传输介质上,以及从网络传输介质上接收数据并解封装,取出数据包交给上一层——网络层。

2.网络层

网络层的主要功能是将数据封装成数据包,并从源主机发送到目的主机,解决如何进行数据包的路由选择、阻塞控制、网络互连等问题。

网络层的核心协议是IP,另外还有一些辅助协议,如ARP、RARP、ICMP、IGMP等。

IP负责为因特网上的每一台计算机规定一个地址,以便数据包在网络间寻址,它提供无连接的服务。任何数据在传送之前无须先建立一条穿过网络到达目的地的通路,每个数据包都可以经不同的通路转发至同一目的地。IP既不保证传输的可靠性,也不保证数据包按正确的顺序到达目的地,甚至不能保证数据包能够到达目的地,它仅提供“尽力而为”的服务,通过这种方式来保证数据包的传输效率。

IP用于对IP数据报的分割和封装。封装IP数据报时,在数据包前加上源主机的IP地址和目的主机的IP地址及其他信息。

ARP(Address Resolution Protocol,地址解析协议)负责将IP地址解析为主机的物理地址,以便按该地址发送和接收数据。

RARP(Reverse Address Resolution Protocol,反向地址解析协议)负责将物理地址解析成IP地址,这个协议主要是针对无盘工作站等获取IP地址而设计的。

ICMP(Internet Control Message Protocol,互联网控制报文协议)用于在主机和路由器之间传递控制消息,指出网络通不通、主机是否可达、路由是否可用等网络本身的消息及数据包传送错误的信息。

在网络中传输数据通常为单播方式,即一台主机发送而另一台主机接收,但有时也可以是一台主机发送、多台主机接收的多播方式,如视频会议、共享白板式多媒体应用等。IGMP(Internet Group Management Protocol,互联网组管理协议)负责对IP多播组进行管理,包括多播组成员的加入和删除等。

3.传输层

TCP/IP的传输层相当于OSI参考模型中的传输层,负责在源主机和目的主机的应用进程之间提供端到端的数据传输服务,如数据分段、数据确认、丢失和重传等。

TCP/IP结构包含两种传输层协议:传输控制协议(TCP)和用户数据报协议(UDP)。这两种协议的功能不同,对应的应用也不同。

TCP是一种可靠的、面向连接的、端对端的传输层协议,由TCP提供的连接称为虚连接。在发送方,TCP将用户提交的字节流分割成若干数据段并传递给网络层进行打包发送;在接收方,TCP将所接收的数据包重新装配并交付给接收用户,TCP负责发现传输导致的问题,并通过序列确认及包重发机制来解决IP传输的错误,直到所有数据安全正确地传输到目的地。

UDP是一种不可靠的、面向无连接的传输层协议。使用UDP发送报文之后,无法得知其是否安全、完整地到达。UDP将可靠性问题交给应用程序解决。UDP应用于那些对可靠性要求不高,但要求网络延迟较小的场合,如语音和视频数据的传输。

为了识别传输层之上的网络应用进程,传输层引入了端口的概念。要进行网络通信的进程向系统提出申请,系统返回一个唯一的端口号,将进程与端口号联系在一起,这一过程称为绑定。传输层使用其报文头中的端口号,把收到的数据送到不同的应用进程。

端口是一种软件结构,包括一些数据结构和I/O缓冲区,端口号的范围为0~65535,有些端口常被黑客、木马病毒利用。

4.应用层

TCP/IP的应用层综合了OSI参考模型中的应用层、表示层及会话层的功能。

应用层为用户的应用程序提供了访问网络服务的能力并定义了不同主机上的应用程序之间交换用户数据的一系列协议。由于不同的网络应用对网络服务的需求各不相同,因此应用层协议非常丰富,并且不断有新的协议加入。TCP/IP协议簇中的一些常用应用层协议如表2-1所示。

表2-1 TCP/IP常用应用层协议

TCP/IP可以为各式各样的应用提供服务,同时也允许IP在各式各样的网络构成的因特网上运行。

2.1.3 IP地址

1.IP地址概述

为了实现因特网上主机之间的通信,需要给连接在因特网上的每个主机(或路由器)分配一个在世界范围内唯一的标识符。IP地址由互联网名称与数字地址分配机构(Internet Corporation for Assigned Names and Numbers,ICANN)进行分配。IPv4采用4字节共32位的二进制数标识一台主机。IPv4面临的最大问题是网络地址资源不足,严重制约了互联网的应用与和发展。IPv6由互联网工程任务组(Internet Engineering Task Force,IETF)设计,是用于替代IPv4的IP,其地址数量号称能够为全世界的每一粒沙子分配一个地址。

IPv6的地址长度是128位,采用十六进制表示。IPv6有3种表示方法。

(1)冒分十六进制表示法

格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16位,用十六进制表示。例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789。

在这种表示法中,每个X的前导0可以省略。例如:2022:0ABC:0001:0023:0000:0A00:A00B:C000可以记为2022:ABC:1:23:0:A00:A00B:C000。

(2)0位压缩表示法

在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为了保证地址解析的唯一性,地址中“::”只能出现一次,例如:AA01:0:0:0:0:0:0:BC01可以记为AA01::BC01,而0:0:0:0:0:0:0:0:1可以记为::1。

(3)内嵌IPv4地址表示法

为了实现IPv4和IPv6的互通,IPv4地址需要嵌入到IPv6地址中,此时地址可以表示为:X:X:X:X:X:X:d:d:d:d,前96位采用冒分十六进制表示,而最后32位地址仍使用IPv4的点分十进制表示,::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子。注意在前96位中,压缩0位的方法依旧适用。

2.报文内容

IPv6报文的整体结构分为IPv6报头、扩展头和上层协议数据3部分。

IPv6报头是必选报文头部,长度固定为40字节,包含该报文的基本信息。IPv6的报文头部结构,如图2-2所示。

扩展头是可选报头。可能存在0个、1个或多个扩展头。IPv6协议通过扩展头实现各种丰富的功能。使用扩展头时,将在IPv6报文的下一报头字段表明首个扩展头的类型,再根据该类型对扩展头进行读取与处理。每个扩展头同样包含下一报头字段,若接下来有其他扩展头,则在该字段中继续标明接下来的扩展头的类型,从而达到添加连续多个扩展头的目的。在最后一个扩展头的下一报头字段中,标明该报文上层协议的类型,用以读取上层协议数据。图2-3为报文扩展头使用的示例。

图2-2 IPv6报文头部结构

图2-3 IPv6报文扩展头使用示例

上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他报文。

2.1.4 路由基础

在互连的网络中,具有相同网络号的主机之间可以直接进行通信。但是,网络号不同的主机之间不能直接通信。两个网络之间的通信必须通过路由器转发才能实现。

1.路由器的特征

路由器是在网络层上实现多个网络互连的设备。路由器利用网络层定义的“逻辑”地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各网络的独立性。路由器只转发IP数据报,不转发广播消息,而把广播消息限制在各自的网络内部。路由器具有以下特征。

1)路由器在网络层工作。当它接收到一个数据包后,先检查其中的IP地址,如果目标地址和源地址的网络号相同,就不理会该数据包;如果这两个地址不同,就将该数据包转发出去。

2)路由器具有选择路径的能力。在互联网中,从一个节点到另一个节点可能有许多路径,选择通畅快捷的近路,会大大提高通信速度、减轻网络系统的通信负荷、节约网络系统资源。这是集线器和二层交换机所不具备的性能。

3)路由器能够连接不同类型的局域网和广域网。网络类型不同,所传送数据的单元——帧的格式和大小就可能不同。数据从一种类型的网络传输到另一种类型的网络时,必须进行帧格式转换。

2.路由表

如何选择最佳传输路径(即路由算法)是路由器的关键问题。路由器的各种传输路径的相关数据存放在路由表(routing table)中。路由表中包含的信息决定了数据转发的策略。路由表中的信息包括网络的标志信息、经过路由器的个数和下一个路由器的地址等内容。路由表可以由系统管理员固定设置,也可以由系统动态调整。

(1)静态路由表

由系统管理员事先固定设置的路由表称为静态路由表,一般在安装系统时根据网络的配置情况设定,不随以后网络结构的改变而改变。

(2)动态路由表

动态路由表是路由器根据路由选择协议(routing protocol)提供的功能,自动学习和记忆网络运行情况而自动调整的路由表,可自动计算数据传输的最佳路径。

路由器通常依靠所建立及维护的路由表来决定如何转发。通常,路由器中转路由表的每一项至少有这样的信息:目标地址、网络掩码、下一跳地址及距离(metric)。

距离是路由算法用以确定到达目的地的最佳路径的计量标准。常用的距离为经由的最小路由器数(跳数)。

3.路由器工作过程

路由器有多个端口,不同的端口连接不同的网络,各网络中的主机通过与自己网络相连接的路由器端口,将待发送的数据帧发送到路由器上。

路由器转发IP数据报时,根据IP数据报中目的IP地址的网络号查找路由表,从而选择合适的端口,把IP数据报发送出去。

路由器在收到一个数据帧时,在网络层根据子网掩码提取地址中的网络号,使用IP地址中的网络号来查找路由表。

如果目的IP地址的网络号与源IP地址的网络号一致,则该路由器将此数据帧丢弃。

如果某端口所连接的是目的网络,就直接把数据报通过端口送到该网络上;否则,选择缺省网关,传送不知道往哪送的IP数据报。

经过这样逐级传送,可能有一部分IP数据报被送到目的地,也可能有一部分IP数据报被网络丢弃。

如图2-4所示,4个网络(网1~网4)通过3个路由器(R1~R3)连接在一起(注意:每一个路由器都有两个不同的IP地址)。设路由器R2的路由表如表2-2所示。

图2-4 路由器的应用

由于R2同时连接在网2和网3上,因此只要目的主机在网2或网3中,都可以由路由器R2通过接口0或1直接交付数据报,距离为1。

若目的主机在网1中,则下一跳路由器应为R1,其IP地址为20.0.0.7,距离为2。由于路由器R2和R1同时连接在网2上,因此路由器R2经网2将数据报转发到路由器R1。

若目的站点在网4中,则路由器R2应把数据报经网3转发给IP地址为30.0.0.1的路由器R3,距离为2。

表2-2 路由器R2的路由表

注意:

1)在同一个局域网中,主机和路由器的IP地址中的网络号是相同的;

2)每个路由器具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址;

3)路由器可以采用默认路由。此时,通过下一跳路由器的IP地址可以唯一地确定转发的端口,减少了路由表所占用的空间,节省了搜索路由表所用的时间;

4)其距离以驿站计,与信宿网络直接相连的路由器规定为1个驿站,相隔1个路由器为2个驿站,以此类推。

2.1.5 文件传输协议

文件传输协议(File Transfer Protocol,FTP)是一个应用程序(Application),主要用于Internet上文件的双向传输控制。

不同的操作系统使用的FTP应用程序不尽相同,而所有这些应用程序传输文件时都遵守同一种协议。FTP用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件是指从远程主机拷贝文件至自己的计算机上;“上传”文件是指将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。支持FTP的服务器称为FTP服务器。用户通过一个支持FTP的客户机程序,连接到远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收这个文件,将其存放在用户目录中。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可“下载”或“上传”文件。也就是说,要向一台计算机传送文件,就必须具有这一台计算机的相应授权。换言之,除非有用户ID和口令,否则不被允许传送文件。这种情况违背了Internet的开放性,Internet上的众多FTP主机不可能要求每个用户在每一台主机上都拥有账号,为解决这个问题,产生了匿名FTP机制。

如果系统管理员建立了匿名用户ID“anonymous”,那么Internet上的任何人在任何地方都可以使用该匿名ID连接到远程主机上,并从其下载文件,而无须成为其注册用户。通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,系统维护程序能够记录谁在存取这些文件。

值得注意的是,匿名FTP并不适用于Internet上的所有主机,它只适用于那些提供了匿名服务的主机。当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取,系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个账户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。我们称这类账户为Guest用户。拥有这类账户的用户,只能够访问其主目录下的文件,而不得访问主目录以外的文件。

TCP/IP中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

需要进行远程文件传输的计算机必须安装和运行FTP客户程序。在Windows操作系统的安装过程中,通常都安装了TCP/IP软件,其中就包含了FTP客户程序,该程序是字符界面而不是图形界面。

启动FTP客户程序来进行工作的另一途径是使用IE浏览器,用户只需要在IE地址栏中输入如下格式的URL地址:

在cmd命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录。除了上述方法外还可以在cmd下输入“ftp”并回车,然后输入“open IP”来建立一个连接,此方法还适用于Linux下连接FTP服务器。 Qm+6G5vAZfBD37i6/QzO/hRn+qTAvnmvAYQuMcB5YAKSa03kK3wmBiDSww0S+Di+

点击中间区域
呼出菜单
上一章
目录
下一章
×