第一部分 网络基础
第1章 网络基础
■ 本章提要:
本章主要介绍计算机网络模型和网络协议,如OSI七层模型和各层的基本功能,TCP/IP协议族及其IP协议、TCP协议、UDP协议和ICMP协议,并对TCP/IP之上的网络服务和高层协议,如DNS、HTTP、FTP、SMTP、POP3和IMAP及SNMP进行了相应介绍。
本章适合网络初学者阅读。
1.1 网络模型
1.1.1 OSI七层模型简介
计算机网络是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。这是一个非常复杂的系统,为了使不同体系结构的计算机都能互连互通,国际标准化组织(International Standard Organized,ISO)提出了著名的开放系统互连基本参考模型(Open System Interconnection,OSI)。
OSI网络模型是一个逻辑上的定义,它把网络从逻辑上分为七层。每一层都有相关、相对应的物理设备,如路由器、交换机。OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为了解决不同网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。
OSI模型将计算机互联的协议模型如图1-1所示,从下到上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。各层之间通过接口来传递信息。
图1-1 OSI开放系统参考模型
OSI模型的基本概念:
• 将通信和功能按层次划分,每个层次只执行一部分功能,各层可以单独进行开发,某一层的改变不影响其他层;
• 每一层只与其相邻的上下层打交道,各层利用其下一层所提供的服务向其上层提供服务;每一层不能太大,太大不便于开发管理;也不能太小,太小会使层次太多,层次间通信的开销太大。
• 七层模型的最大优点是将服务、接口和协议这三个概念明确地区分开来,层次化的结构模型可使不同的系统、不同的网络之间实现可靠的通信。服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议是如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口即可。网络七层模型的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:
• 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;
• 在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;
• 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需要对整个网络进行大的调整;
• 便于研究和教学。
1.1.2 各层功能
物理层 物理层是指为了在物理媒体上传输信号而进行的链路建立和维持等工作,不是指连接在计算机上具体的物理设备。主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,即数模转换与模数转换)。在这一层,数据的单位称为比特(Bit)。
数据链路层 数据链路层的主要作用是保证在相邻两个节点间的线路上无差错地传输数据,主要将从物理层接收的数据进行MAC地址(网卡地址)的封装与解封装。在这一层,数据的单位称为帧(Frame)。交换机和网桥,是工作在这一层上的主要设备。
网络层 网络层提供系统之间的连接,它负责将两个终端系统通过网络中的节点用数据链路连接起来,构成通信链路,实现两个终端系统之间的数据传输。这一层工作的设备主要是路由器,通常把这一层的数据叫做数据包。
传输层 传输层是向高层提供一个可靠的端到端的连接,也可以被看做是用户和网络之间的“联络员”,它能根据通信子网的具体特性最佳地利用网络资源,并以可靠和经济的方式,充分利用下面三层所提供的网络服务,向上层(会话层)提供可靠的端到端的数据传输。例如,TCP协议(传输控制协议,传输效率低,可靠性强,用于传输对可靠性要求高,数据量大的数据)和UDP协议(用户数据报协议,与TCP特性恰恰相反,用于传输对可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。
会话层 负责控制两个系统的表示层实体间的对话,即在传输层服务的基础上再增加一些协调对话的功能,以便为上层提供更好的服务。会话层的基本功能是向两个表示层实体提供建立和使用连接的方法,这种表示层之间的连接就叫做“会话”。
表示层 负责定义信息的表示方法,并向应用程序和终端处理程序提供一系列的数据转换服务,以使两个系统能用相同的语言来进行通信。
应用层 位于OSI七层协议模型的最高层,也是最复杂的一层,应用层包含的协议是最多的,有一些还在开发中。应用层的功能是直接向用户提供服务。
1.2 网络协议
网络协议是计算机网络进行数据交换而建立的规则、标准或约定的集合。一个网络协议至少包括三要素:
• 语法,用来规定信息格式,如数据及控制信息的格式、编码及信号电平等;语义,用来说明通信双方应当怎么做,用于协调与差错处理的控制信息;
• 时序,定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。
• 在企业网中,应用最广泛的是TCP/IP协议。TCP/IP协议是互联网产生之后,在网际互联的工作实践和经验中经过抽象提取出来的。TCP/IP技术的出现使互联网的应用得到很大的发展,也使全球互联网Internet成为可能。TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议,又称为网络通信协议,是Internet最基本的协议,是Internet的基础,由网络层的IP协议和传输层的TCP协议组成。
1.2.1 TCP/IP参考模型
TCP/IP是一系列协议的集合,所以严格意义上讲应该称其为TCP/IP协议族。它借鉴OSI的七层参考模型,将网络从逻辑上划分为五层结构——物理层、数据链路层、网络层、传输层和应用层。
OSI七层模型与TCP/IP五层模型的对应关系如表1-1所示。
表1-1 TCP/IP结构对应OSI结构
下面我们具体介绍各层的分工。
(1)物理层。
物理层对应网络基本硬件,功能同OSI七层模型的物理层。物理层定义了物理介质的各种特性:
• 机械特性;
• 电子特性;
• 功能特性;
• 规程特性。
(2)数据链路层。
数据链路层又称为网络接口层,它处理的单位称为帧(Frame),帧是有一定长度限制,并携带地址信息、控制信息的数据单元。这里的地址信息也称为物理地址,在常见的以太网中指的是MAC地址。它是固化在网卡上的,全球唯一的48位二进制数标识符,用于同一链路上的主机间通信。数据链路层负责为上层的数据添加物理地址和控制信息,形成帧,并在传输链路上进行无差错的传送。
数据链路层协议有Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP、ATM等。
典型的二层设备有企业网中常用的二层交换机。
(3)网络层。
网络层提供的是无连接服务,为计算机间提供逻辑通信。它处理的数据单位是报文(Packet)。网络层负责相邻计算机之间的通信。其功能包括以下几个方面:
• 处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
• 处理输入数据报:首先检查其合法性,然后进行寻径——假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。处理路径、流控、拥塞等问题。
• 网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
• IP是网络层的核心,通过路由选择将下一跳IP封装后交给接口层,IP数据报是无连接服务;
• ICMP是网络层的补充,可以回送报文,用来检测网络是否通畅;
• Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试;
• ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址;RARP是反向地址解析协议,通过已知的MAC地址确定IP地址。
• 在企业网中典型的三层设备是路由器。
(4)传输层。
传输层是将应用层数据添加必要的控制信息后,在源节点和目的节点的两个实体之间提供端到端的数据传输。TCP/IP五层模型中,传输层提供应用程序间的通信,其功能包括:
• 格式化信息流;
• 提供可靠传输。
为实现提供可靠传输,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
传输层的主要协议包括传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是其管理这些数据的两种方式:TCP是一个基于连接的协议;UDP则是面向无连接服务的协议。
(5)应用层。
应用层包括所有的高层协议,它一般是面向用户的服务。如文件传输协议FTP、邮件传输协议SMTP、远程登录服务Telnet等。
TCP/IP协议族在TCP/IP五层模型上的分布,如表1-2所示。
表1-2 TCP/IP五层模型与TCP/IP协议族
TCP/IP模型的主要缺点:
首先,该模型没有清楚地区分哪些是规范,哪些是实现;其次,TCP/IP模型的主机——网络层定义的网络层与数据链路层的接口并不是常规意义上的一层。接口和接口层的区别是非常重要的,TCP/IP模型没有将它们区分开来。
1.2.2 常用的TCP/IP协议
1.IP(Internet协议)
IP是TCP/IP体系中的网络层协议,又称为Internet协议,它负责提供网络中的无连接的数据报传输服务。IP与TCP这两大协议是目前计算机互联网软件的基础,可以说,没有TCP/IP,就没有Internet,而IP协议是迈向网络互连的第一步。
(1)IP协议提供服务的主要特征。
首先,它是无连接的服务。所谓的无连接服务,就是指IP负责将报文发往相应的目的地,而不管它是否能够正确到达。因此,IP协议机制不需要进行验证、确认和重传,也不需要保证报文传送的正确顺序。而可靠性是由传输控制协议TCP来负责的。
其次,它是点到点的传送。
(2)IP地址。
互联网是通过路由器将不同的物理网络互联在一起的网络。因为各个网络拥有自己的物理地址,而这个物理地址的结构和编排方法随物理网络所采用的技术不同而不同,所以如何达到互联网中地址的统一,是IP面临的一个难题。
那么IP是怎样解决这个问题的呢?它提供了一种在互联网中可以通用的地址格式,并在统一的管理下进行地址分配,以保证这种地址与互联网中主机的一一对应,从而屏蔽了各个物理地址的差异,这种通用的地址格式就是IP地址。有关IP地址的其他知识将在第2章详细介绍。
2.TCP(传输控制协议)
TCP是TCP/IP体系中的传输层协议,又称为传输控制协议,它提供端到端可靠的传输服务。TCP是目前计算机互联网中应用最广泛的传输协议,大部分互联网应用都是建立在TCP基础之上的。
TCP提供的服务有如下特点:
• 面向连接的服务;
• 完全的可靠性;
• 全双工通信;
• 无结构的数据流;点到点通信。
• 面向连接是TCP最根本的特征之一,为了保证数据传送的可靠性,在双方通信之前,必须先建立一个连接。
可靠性也是TCP协议的最根本特征,它建立在面向连接的基础上,能确保通过一个连接发送的数据,可以按发送的顺序正确地被传输。
全双工通信是指一个TCP连接允许通信双方同时发送和接收数据,TCP能够在两个方向上缓冲输入和输出的数据。
TCP所传送的数据是以字节为单位的,在TCP连接上出现的是无结构的平滑数据流。
3.UDP(用户数据报协议)
UDP是面向无连接的通信协议,UDP数据包括目的端口号和源端口号信息,由于通信不需要连接,所以可以实现广播发送。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询——应答的服务,如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
4.ICMP(控制消息协议)
ICMP(Internet Control Message Protocol)是控制消息协议。ICMP与IP位于同一层,它被用来传送IP的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的“Redirect”信息通知主机通向其他系统的更准确的路径,而“Unreachable”信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接“体面地”终止。Ping是最常用的基于ICMP的服务。
1.3 TCP/IP之上的网络服务和高层协议
用户数据在被TCP或UDP处理之后,继续交给高层协议处理。TCP/IP协议族中的高层协议能提供如终端访问、文件传输、电子邮件、网络管理和域名服务等功能。
1.DNS(域名服务)
DNS(Domain Name Service,域名解析服务)提供域名到IP地址之间的转换。IP地址是一个由4个字节组成的全球唯一的32 bit数,要让人记住Internet上每个主机的IP地址是不可能的。因此,为了让冗长而无特征的IP地址便于记忆,可以对每个IP地址取一个容易记忆的名字,这个名字就叫做主机名,如www.163.com。域名服务就是实现IP地址与主机名之间转换的,这个转换过程叫做域名解析。
2.HTTP(超文本传输协议)
互联网是一个大规模、再现式的信息存储场所,用户可以通过浏览器的交互式应用程序来对其进行访问。浏览器界面上所显示的信息叫做“超文本”,也就是说,它可以显示文本,也可以显示静态或动态的图片、动画和声音等。
HTTP是与互联网关系密切的协议,当用户使用浏览器在Internet上浏览网页时,HTTP协议的任务就是负责浏览器与服务器之间的通信。
Web浏览器用统一资源定位器(URL)请求资源。URL用于标识协议、网络主机名、文件路径及文件名。
3.FTP(文件传输协议)
FTP(File Transfer Protocol,文件传输协议)是现在TCP/IP中最广泛的应用之一,它的产生是由于计算机之间需要传送文件,而文件是计算机系统中信息存储、处理和传送的主要形式,因此FTP变得如此重要。
FTP应用程序很多,但它们的基本功能都是一样的。使用时,它们要先与FTP服务器建立连接,然后让服务器与客户端用户进入交互状态,这样,用户就可以选择服务器上所需要的文件下载到本地或将本地的文件上传到服务器上。
FTP在进行文件传输时,一般数据端口是20H,控制端口是21H。
4.SMTP(简单邮件传输协议)
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)用来控制信件的发送和中转。
SMTP协议规定了邮件传送代理之间的通信规则。在TCP端口25上建立起SMTP连接后,发送方SMTP主机先发送一个Hello信息,当接收方返回确认后,发送方就开始发送邮件,发送完所有信息后拆除连接。
5.POP3和IMAP(邮局协议)
POP3(Post Office Protocol 3)是邮件协议第3个版本,用于接收邮件。常见的应用方法是利用SMTP发送邮件,然后将邮件存放在一个随时都连接在网络上的邮件服务器中,当用户计算机连接到网上时,就可以与邮件服务器建立TCP连接,发送或取回自己的邮件。
POP3与IMAP的不同之处:POP3下载邮件内容到本地机器,同时清除邮件服务器上的邮件内容。而IMAP则是打开服务器上邮件的一个快照,并没有下载到本地,邮件仍存储于邮件服务器上。
POP3用户以客户端为中心管理邮件,IMAP以服务器为中心管理邮件。
6.SNMP(简单网络管理协议)
简单网络管理协议(SNMP)在体系结构中分为被管理的设备(Managed Device)、 SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三个部分。被管理的设备是网络中的一个节点,有时被称为网络单元(Network Elements),被管理的设备可以是路由器、网管服务器、交换机、网桥和集线器等。每一个支持SNMP的网络设备中都运行着一个SNMP代理,它负责随时收集和存储管理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询或修改代理所记录的信息。
SNMP代理驻留在被管理设备上的网络管理软件模块内,它收集本地计算机的管理信息并将这些信息翻译成兼容SNMP协议的形式。
SNMP管理器通过网络管理软件来进行管理工作。网络管理软件的主要功能之一,就是协助网络管理员完成管理整个网络的工作。网络管理软件要求SNMP代理定期收集重要的设备信息,收集的信息将用于确定独立的网络设备、部分网络或整个网络运行的状态是否正常。SNMP管理器定期查询SNMP代理收集到的有关设备运转状态、配置及性能等信息。