一. 网络概述
计算机网络就是通过一定形式连接起来的一组计算机系统,它需要四个要素的支持,即通信线路和通信设备、有独立功能的计算机、网络软件、能实现通信与资源共享的理论方法。计算机网络具有两大参考模型,分别是OSI参考模型和TCP/IP参考模型,其中OSI参考模型为理论模型,TCP/IP参考模型则已成为互联网通信的工业标准,现在的通信网络一般都采用TCP/IP协议簇,而应用编程都采用Socket套接字进行编程。
二. 网络体系结构的几个概念
网络体系结构主要涉及以下几个重要概念:
??① 协议:为计算机网络中的数据交换而建立的规则、标准或约定的合集。通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。协议往往分成几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层次的协议。
??② 通信协议:通信双方必须共同遵守的规则和约定称为通信协议。通信双方对数据的理解需要建立在约定与协议之上。
??③ 接口:相邻两层之间的边界,在接口处规定了低层向上层提供的服务所使用的形式规范语句(服务原语)。
??④ 服务:某一层提供的功能,并能通过接口提供给其相邻的上层。
??⑤ 网络体系结构:对计算机网络各层功能的精确定义及其各层遵守协议的集合。
??⑥ 协议栈:网络各层协议按层次顺序排列而成的协议序列。
??⑦ 点到点:体现在物理上的两两连接,是物理拓扑结构,如光纤就必须是点到点的连接。点到点协议体现在IP网络层或以下两层。IP网络层是两两路由器进行点到点通信,中间没有跨越其他通信设备。点到点传输的优点是发送端设备送出数据后,它的任务已经完成,不需要参与整个传输过程,这样不会浪费发送端设备的资源。另外,即使接收端设备关机或出现故障,点到点传输也可以采用存储转发技术进行缓冲。点到点传输的缺点是发送端发出数据后,不知道接收端能否收到或何时收到数据。IP及以下各层采用的是点到点传输。
??⑧ 端到端:体现在逻辑上的两两连接。端到端是体现在网络传输层之间的,比加要将数据从A传送到E,中间可能经过A->B->C->D->E,对于传输层来说,它并不知道B、C、D的存在,它只认为报文数据是从A直接到E的,这就叫做端到端。总之,端到端是有无数的点到点实现和组成的。
三. 网络分层模型
1. 对网络分层的理解
分层能使简单的问题简单化,网络分层也是基于此原理。网络分层简化了网络设计,提高了网络互联的标准化程度。网络分层是上一层都依赖于下一层,只有最底层才是物理的实际通信,其他对等层是虚拟通信,分层原理与方法如下图所示: 网络分层模型设计以下术语:
??① 实体:每一层中的活动因素,可以是如何可发送或接受信息的硬件或软件进程。许多情况下,实体就是一个特定的软件模块。
??② 对等实体:位于不同机器上同一层中的实体。
??③ 服务提供者:n层(下层)是n+1层(上层)的服务提供者。
??④ 服务用户:n+1层(上层)是n层(下层)的服务用户。
??⑤ 服务访问点(SAP):服务提供的地点,也即接口上相邻两层实体交换信息之处。
??⑥ 服务和协议的关系:服务是垂直的,协议是水平的。n层的服务用户只能看见n层的服务,无法看见n层的协议,在n层协议控制下,两个对等实体间的通信能使得n层能够向n+1层提供服务,要实现n层协议,需要使用n-1层提供的服务。
网络分层的好处
互联网的两大网络参考模型(OSI参考模型和TCP/IP参考模型)都是基于分层原理实现的。通过网络分层可以获得的好处有:各层之间相互独立,相邻层间交互只通过接口,使整个问题的复杂度下降。结构上可分隔开,各层都可以采用最合适的技术来实现,每一层的功能简单,易于实现和维护。若某一层改动时,只要不改变接口的服务关系,其它层则不受影响,灵活性好。分层有利于促进网络协议的标准化。
2. OSI 网络分层模型
2.1 OSI 模型概述
OSI(Open System Interconnection,开放式系统互连)是1984年由国际标准化组织(ISO)提出的一个网络参考模型。作为一个概念性框架,提出时希望以后不同的设备制造商和应用软件开发商遵循此标准。现在,此模型已成为计算机网络间和网络间进行通信的主要模型,目前使用的大多数网络通信协议的结构都是基于OSI参考模型或参照OSI参考模型的。
OSI模型把网络从逻辑上分为了7层,即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如下图所示: 对OSI分层模型中各层的解释如下:
??① 物理层:是参考模型的最底层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同组成。物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。在这一层,数据的单位称为比特(bit)。
??② 数据链路层:是参考模型的第2层。主要功能是:在物理层提供服务的基础上,在通信的实体间建立数据链路连接,传输以“帧”为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
??③ 网络层:是参考模型的第3层。主要功能能是:为数据在结点之间的传输创建逻辑链路,通过路由选择算法为分组通过通信子网选择最适合的路径,以及实现拥塞控制、网络互联等功能。
??④ 传输层:是参考模型的第4层。主要功能是:向用户提供可靠的端到端服务,处理数据包错误、数据包次序,以及其他一些关键的传输问题。传输层向高处屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。
??⑤ 会话层:是参考模型的第5层。主要功能是:负责维护两个结点之间的传输连接,以确保点到点的传输不中断,以及管理数据交换等功能。
??⑥ 表示层:是参考模型的第6层。主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式交互、数据加密与解密、数据压缩与恢复等功能。
??⑦ 应用层:是参考模型的最高层,为存储系统或网络应用程序提供访问网络服务的接口。
2.2 OSI 模型特点
OSI 参考模型只有物理层之间是直接连接的,对等层之间采用相同的对等协议。该模型在发送数据时,数据从高层到低层;在接收数据时,数据从低层到高层。
3. TCP/IP 网络分层模型
3.1 TCP/IP 模型概述
TCP/IP(又称TCP/IP 协议簇)是一组用于实现网络互联的通信协议,其名称来源于该协议簇中两个重要的协议(IP协议和TCP协议)。基于TCP/IP 的参考模型将协议分成四个层次,它们分别是网络接口层、网际互联层(IP层)、传输层(TCP层)和应用层。
??① 网络接口层:网络接口层与OSI参考模型中的物理层和数据链路层对应。
??② 网际互联层:网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。该层有四个主要的协议:网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。IP协议是网际互联层最重要的协议,它提供的是一个不可靠的、无连接的数据报传递服务。
??③ 传输层:传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议提供的是不可靠的、无连接的数据传输服务。
??④ 应用层:应用层对应于OSI参考模型的会话层、表示层和应用层,为用户提供所需要的各种服务,例如FTP、Telnet、DNS、SMTP等。
3.2 OSI模型与TCP/IP模型比较
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立了TCP/IP参考模型。OSI先有模型、后有协议,先有标准,后进先实践;而TCP/IP则相反,先有协议何应用,再提出了模型,且是参照了OSI参考模型。OSI太复杂,TCP/IP简单却不全面,OSI花了很长时间进行标准化,与此同时,TCP/IP已被广泛使用,并以成为网络互联事实上的标准。
下图画出了TCP/IP 模型以以及该模型与OSI模型各层的对应关系:
3.3 TCP/IP数据包的封装与分用
网络中各层把数据当作一个流来处理,每层都有自己的传输单位,物理层传输单位是比特流,而只有这一层是物理的数据传输,其他层都是逻辑的;链路层传输单位是帧;网络层传输单位是分组;传输层传输是段。源主机应用层数据往下层传递时每一层要增加相应的首部,称为封装;到达目的主机后数据往上层传递时需要再剥掉相应的首部,称为拆封。
下图画出了网络分层时的数据流图: IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端传输:
3.4 TCP/IP通信过程
下图画出了同一网段中的两台主机通过TCP/IP协议的通信过程,其中应用层使用的是FTP协议。除物理层是实际传输数据的,其他对等层只是虚拟通信(所以画的是虚线),对等层一般需要遵照相同的协议。上层传输数据只与相邻上下层有关系。TCP及其下层是由操作系统内核实现的,即它们是处理通信细节的。而应用层程序是通过Socket编程实现的,处理的是应用程序细节。 下图是不同网段中的两台主机通信过程:
四. 网络分类
通过网络分类,可以更好地了解网络的特点。下面按网络八个方面的特征对网络进行分类。并给出简要说明:
① 按覆盖范围
- 局域网(LAN):如企业内部网、家庭内部网。
- 城域网(MAN):一个城市的内部网络。
- 广域网(WAN):连接世界各地方的网络。
② 按拓扑结构
- 星型拓扑:交换机网络,如企业网络。
- 环形拓扑:令牌环网,如FDDI网。
- 总线型拓扑:以太网,如企业部门及网络。
- 树型拓扑:层次级网络,如层次级城域网。
- 网状拓扑:广域网。
③ 按信息交换方式
- 电路交换:如打电话时,两端通话期间占用一条单独的线路。传统的电话线路就属于电路交换。
- 报文交换:通信两端在一个时间段内传递一个报文。
- 报文分组交换:通信两端在一个时间段内传递一个报文分组,最后由通信双方合成一个报文。TCP/IP网络属于报文分组交换。
④ 按传输介质
- 有线网:利用同轴电缆或双绞线介质通信的网络,如企业局域网。
- 光纤网:利用光纤进行通信的网络,如国家骨干网。
- 无线网:利用微波、磁波进行通信的网络,如手机GSM网、3G网和WIFI网。
⑤ 按通信方式
- 点对点传输网络:交换机网络。
- 广播式传输网络:以太网络。
⑥ 按网络使用目的:可分为共享资源网、数据处理网和数据传输网。
⑦ 按服务方式:可分为客户端/服务端网络和对等网。
⑧ 按照网络用途
- 通信子网: 负责完成网络数据的传输,转发等通信处理任务,它属于OSI模型的下三层(物理层、链路层、网络层)。一方面,作为与资源子网的主机,终端链接的接口,将主机和终端连入网内;另一方面,作为通信子网中的分组存储转发节点,完成分组的接收、校验、存储、转发等功能,实现将源主机报文准确发送到目的主机的作用。
- 资源子网:由主机系统,终端、终端控制器、联网外设、各种软件资源与信息资源组成。负责处理全网络面向应用的数据处理工作,而通信双方遵守共同协议。资源子网由计算机硬件和通信软件组成。
五. 网络地址
1. 网络地址父类
在网络中,按照地址可把网络地址分为如下四类:
- 物理地址:即MAC地址,如00-aa-00-64-c9-09。
- 逻辑地址:即IP地址,如127.0.0.1。
- 端口地址:应用基础端口号。
- 域名地址:万维网地址,如www.baidu.com。
2. MAC地址
MAC地址为48位,0~23位叫做组织唯一标识符,由IEEE(电器电子工程师协会)管理,生产以太网网卡的厂家就购买其中一组,再自行分配后24位,逐个将唯一地址赋予以太网卡。MAC地址属于平面地址,五层次结构,每个网络设备的网络地址全球唯一,只能用于局部范围寻址,MAC地址存在于网络的数据链路层。
3. IP地址
IP地址标识着网络中一个主机的位置,每个IP地址由32位(IPv4地址,4个字节)组成。分为网络号、主机号两部分,但现在都是采用CIDR方案,所以,IP地址现在只能表示主机号。另外,IP地址也是全球唯一的,寻址很容易。
IP地址有两种表示形式,分为二进制数表示和点分十进制数表示,其中二进制数由计算机内部使用,点分十进制数是方便人们记忆而引入的。
IP地址按照用途分,可分为单播地址、广播地址和多播(组播)地址,其中广播地址和多播地址仅应用于UDP协议。
4. IP地址分类
??IPv4的IP地址通常采用点分十进制数表示。例如,二进制数IP地址0xc0a80002用点分十进制数可表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号和不同的主机之间通信则需要通过路由器转发。
??最早的IP地址分类没有单独的网络号,将IP地址分为5类,以适应大型、中型、小型网络的需要:
- 其中第一个字段是网络号(net-id),它标志主机或路由器所连接的网络。一个网络号在整个因特网内必须是唯一的。
- 第二个字段是主机号(host-id),它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。
??一个A类网络可以容纳的地址数量最大,能容纳1677万多台电脑,一个B类网络的地址数量是65536,一个C类网络的地址数量是256,D类地址用做多播地址,E类地址保留未用。
??随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。这种方式对网络的划分是扁平结构(flat)的,而不是层级结构(hierarchical)的,Internet上的每个路由器都必须掌握所有的网络信息,随着C类网络的大量出现,路由器需要检索的路由表越来越庞大,负担越来越重。
5. CIDR子网划分方法
??由于用一个IP地址来表示网络号和主机号造成了上面所述的问题,IEEE便提出了新的划分方案,即无类域间路由(Classless Inter-Domain Routing,CIDR)方案。网络号和主机号的划分需要用一个额外的子网掩码(subnet mask)来表示,而不能由IP地址本身的数值决定。也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此,称为无类型的。
??使用CIDR方案后,一个网络地址可包含IP地址和子网掩码两部分。例如,一个网络IP地址为140.252.20.68,子网掩码为255.255.255.0,也可用简洁的表示方法,如140.252.20…68/24。
进行自定义子网时,子网掩码需要由前面是连续的1和后面是连续的0构成。IP地址与子网掩码做“与”运算可以得到网络号。
|