计算机网络入门
一,计算机网络在信息时代中的作用
- 21世纪的一些重要特征就是数字化,网络化和信息化,它是一个以网络为核心的信息时代。
- 有三类大家很熟悉的网络,即电信网络,有线电视网络和计算机网络。按照最初的服务分工,
- 电信网络向用户提供电话,电报及传真服务;
- 有线电视网络向用户传输各种电视节目;
- 计算机网络则使用户能够在计算机之间传输数据文件。
- 随着技术的发展,电信网络和有线电视网络都逐渐融入了现代计算机网络的技术扩大了原有的服务范围,而计算机网络也能够向用户提供电话通信,视频通信以及传送视频节目的服务。从理论上讲,把上述三种网络融合成一种网络就能够提供所有的上述服务,这就是很早之前就提出来的“三网融合”。
- Internet的中文译名并不统一。现有的Internet译名有两种:
- 因特网,这个译名是全国科学技术名词审定委员会推荐的。
- 互联网,这是目前流行最广的,事实上的标准译名。Internet是由数量极大的各种计算机网络互连起来的,采用互联网这个译名能够体现出Internet最主要的特征。
- 互联网之所以能够向用户提供许多服务,就是因为互联网具有两个重要基本特点,即连通性和共享。
- 连通性:就是互联网使上网用户之间,不管相距多远,都可以非常便捷,非常经济地交换各种信息,好像这些用户终端都彼此直接连通一样。
- 共享:就是指资源共享。可以是信息共享,软件共享,也可以是硬件共享。
二,互联网概述
1,网络的网络
-
计算机网络(简称为网络)由若干节点(node)和连接这些节点的链路(link)组成。网络中的节点可以是计算机,集线器,交换机或路由器等。
- 图1给出了一个具有四个节点和三条链路的网络。可以看到,有三台计算机通过三条链路连接到一个集线器上。这是一个非常简单的计算机网络(可简称为网络)。
- 图2展示了有多个网络通过一些路由器相互连接起来,构成了一个覆盖范围更大的计算机网络。这样的网络称为互连网(internetwork或internet)。因此互连网是“网络的网络”(network of networks)。用一朵云表示网络的好处,就是可以先不考虑每一个网络中的细节,而是集中精力讨论与这个互连网有关的一些问题。
-
习惯上,与网络相连的计算机常称为主机(host)。在互连网中不可缺少的路由器,是一种特殊的计算机(有中央处理器,存储器,操作系统等),但不能称为主机。
-
网络把许多计算机连接在一起,而互连网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机。
2,互联网基础结构发展的三个阶段
1,第一阶段
- 第一阶段是从单个网络ARPANET向互连网发展的过程。
- 以小写字母i开始的internet(互连网)是一个通用名词,泛指由多个计算机网络互连而成的计算机网络。在这些网络之间的通信协议可以任意选择,不一定非要使用TCP/IP协议。
- 以大写字母I开始的Internet(互联网,或因特网)则是一个专用名词,它值当前全球最大的,开放的,由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,前身是美国的ARPANET。
2,第二阶段
- 第二阶段的特点是建成了三级结构的网络。分为主干网,地区网和校园网(或企业网)
3,第三阶段
- 第三阶段的特点是逐渐形成了全球范围的多层次ISP结构的互联网。
- 互联网服务提供者ISP(Internet Service Provider)。
- ISP就是一个进行商业活动的公司,因此ISP又常翻译为互联网服务提供商。如移动,电信,联通。
- 根据提供服务的覆盖面积大小以及所拥有的IP地址数据的不同,ISP也分为不同层次的ISP:主干ISP,地区ISP和本地ISP。
- 主干ISP由几个专门的公司创建和维护,服务面积最大(一般都能够覆盖国家范围)。
- 地区ISP是一些较小的ISP。这些地区ISP通过一个或多个ISP连接起来。位于等级中的第二层。
- 本地ISP给用户提供直接的服务(这些用户有时也称为端用户,强调是末端用户)
- 本地ISP可以连接到地区ISP,也可直接连接到主干ISP。绝大多数的用户都是连接到本地ISP的。
- 随着互联网上数据流量的急剧增长,人们开始研究如何更快速地转发分组,以及如何更加有效和更加经济地利用网络资源。于是,互联网交换点IXP(Internet eXchange Point)就诞生了。
- 互联网交换点IXP的主要作用就是允许两个ISP网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
- IXP的结构非常复杂。典型的IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上。大的IXP能够连接数百个ISP。IXP常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互连起来。
三,互联网的组成
- 互联网从工作方式上,可以将其划分为两大块。
- 边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
- 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的。
1,互联网的边缘部分
-
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统(end system)。
-
端系统可以是普通的个人电脑,手机,平板,服务器等。
-
需要明确下面的概念。我们说:“主机A和主机B进行通信:,实际上是指:”运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信“。由于”进程“就是”运行着的程序“,因此这也就是指:”主机A的某个进程和主机B上的另一个进程进行通信“。这种比较严密的说法通常可以简称为”计算机之间通信“。
-
在网络边缘的端系统之间的通信方式通常可划分为两大类:
-
客户—服务器方式(C/S方式)
-
客户(Client)和服务器(Server)都是指通信中所涉及的两个应用进程。客户—服务器方式所描述的是进程之间服务和被服务的关系。
-
客户是服务请求方,服务器是服务提供方。
-
客户程序:
- 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
- 不需要特殊的硬件和很复杂的操作系统。
-
服务器程序:
- 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 系统启动后即一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
- 一般需要有强大的硬件和高级的操作系统支持。
-
客户与服务器的通信关系建立以后,通信可以是双向的,客户和服务器都可发送和接收数据。
-
-
对等方式(peer-to-peer,简写为P2P)
- 指两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种工作方式也称为P2P方式。对等连接方式从本质上看仍然使用客户—服务器方式,只是对等连接中的每一台主机既是客户同时又是服务器。
-
2,互联网的核心部分
- 在网络核心部分起特殊作用的是路由器(router)。路由器是实现分组交换(packet switching)的关键构建,其任务是转发收到的分组,这是网络核心部分最重要的功能。要了解分组交换,首先需要了解电路交换。
1,电路交换的主要特点
-
在电话问世后不久,人们发现,要让所有的电话都两两连接是不现实的。两部电话只需要一对电线就能够互相连接起来。但若有5部电话要两两连接,则需要10对电线,显然,若N部电话要两两相连,就需要N(N−1)/2N(N-1)/2N(N−1)/2对电线。当电话机的数量很大时,这种连接方法需要的电线数量就太大了。于是人们意识到,要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用电话交换机将这些电话连接起来。这种方式就是电路交换(circuit switching)。
-
从通信资源的分配角度看,交换(switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换打电话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的铃音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这种必须经过“建立连接—通话—释放连接”三个步骤的交换方式称为电路交换。
-
电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
-
使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到10%甚至1%。已被用户占用的通信线路资源在绝大多数时间里都是空闲的。
2,分组交换的主要特点
- 分组交换采用存储转发技术。通常我们将要传输的整块数据称为一个报文(message)。在发送报文之前,先把较长的报文划分为一个个更小的等长数据段。在每个数据段前面,加上一些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“包”,而分组的首部也可称为“包头”。分组是在互联网中传送的数据单元。
-
位于网络边缘部分的主机和位于网络核心部分的路由器都是计算机。它们的作用分别是:
-
主机是为用户进行信息处理的。
-
路由器则用来转发分组,即进行分组交换。
- 路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步以存储转发的方式,把分组交付给最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
-
-
当我们讨论互联网的核心部分中的路由器转发分组的过程时,往往把单个的网络简化成一条链路,而路由器成为核心部分的节点。
-
分组交换在传输数据之前不必先占用一条端到端的通信资源。分组在哪段链路上传送才占用那段链路的通信资源。分组到达一个路由器后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输时就这样逐段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。
-
互联网采取了专门的措施,保证了数据的传送具有非常高的可靠性。当网络中的某些节点或链路突然出现故障时,在各路器中所运行的路由选择协议能够自动找到转发分组最合适的路径。
-
为了提高分组交换网的可靠性,互联网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数节点,链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样可以较高的数据率迅速地传送计算机数据。
-
分组交换的主要优点
优点 所采用的手段 高效 在分组传输的过程中动态分配传输带宽,对通信链路逐段占用 灵活 为每一个分组独立地选择最合适的转发路由 迅速 以分组作为传送单位,不先建立连接就能向其他主机发送分组 可靠 保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性 -
分组交换存在的问题
- 分组在各路由器存储转发时需要排队,这就会造成一定的时延。因此,必须尽量设法减少这种时延。
- 分组交换不像电路交换那样通过建立连接来保证通信时所需要的各种资源,因而无法确保通信时端到端所需的带宽。
- 各分组必须携带的控制信息也造成了一定的开销(overhead)。整个分组交换网还需要专门的管理和控制机制。
-
基于存储转发原理的报文交换(message switching)。在报文交换中心,一份份电报被接收下来,并穿上纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。现在报文交换已不使用了。分组交换虽然也采用存储转发原理,但由于使用了计算机进行处理,因此分组的转发非常迅速。
3,电路交换,报文交换和分组交换的主要区别
-
下图中的A和D分别是源点和终点,而B和C是在A和D之间的中间节点。图的最下方归纳了三种交换方式在数据传送阶段的主要特点:
- 电路交换—整个报文的比特流连续地从源点直到终点,好像在一个管道中传送。
- 报文交换—整个报文先传送到相邻节点,全部保存下来后查找转发表,转发到下一个节点。
- 分组交换—单个分组(这只是整个报文的一部分)传送到相邻节点,存储下来后查找转发表,转发到下一个节点。
-
若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往小于整个报文的长度,因此分组交换比报文交换的时延小,同时具有更好的灵活性。
四,计算机网络的类别
1,计算机网络的定义
- 计算机网络的精确定义并未统一。关于计算机网络的较好的定义是这样的[PETE12]:
- 计算机网络主要是由一些通用的,可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 根据上述定义:
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能设备。
- 计算机网络并非专门用来传送数据,而是能够支持很多种应用。
- 上述的“可编程的硬件”表明这种硬件一定包含有中央处理器CPU。
- 根据上述定义:
- 计算机网络主要是由一些通用的,可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
2,几种不同类别的计算机网络
1,按照网络的作用范围进行分类
- 广域网WAN(Wide Area Network)
- 广域网的作用范围通常为几十到几千公里。因而有时也被称为远程网(long haul network)
- 广域网是互联网的核心部分,其任务是长距离运送主机所发送的数据。
- 连接广域网各节点交换机的链路一般都是高速链路,具有较大的通信容量。
- 城域网MAN(Metropolitan Area Network)
- 城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5~50km。
- 城域网可以为一个或几个单位所拥有,也可以是一种公用设施,用来将多个局域网进行互连。
- 目前多数城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论。
- 局域网LAN(Local Area Network)
- 局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10Mbit/s以上),但地理上则局限在较小的范围(如1km左右)。
- 个人局域网PAN(Personal Area Network)
- 个人局域网就是在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络,因此也常称为无线个人区域网(Wireless PAN),其范围很小,大约在10m左右。
2,按照网络的使用者进行分类
- 公用网(public network)
- 指电信公司(国有或私有)出资建造的大型网络。
- “公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
- 专用网(private network)
- 某个部门为满足本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。
3,用来把用户接入到互联网的网络
- 这种网络就是接入网AN(Access Network),它又称为本地接入网或居民接入网。这是一类比较特殊的计算机网络。
- 前面介绍了用户必须通过本地ISP才能接入到互联网。本地ISP可以使用多种接入网技术把用户的端系统连接到互联网。接入网实际上就是本地ISP所拥有的网络,它即不是互联网的核心部分,也不是互联网的边缘部分。接入网由某个端系统连接到本地ISP的第一个路由器(也称为边缘路由器)之间的一些物理链路所组成。从覆盖范围看,其长度在几百米到几公里之间。很多接入网还是属于局域网。从作用上看,接入网只是起到让用户能够与互联网连接的“桥梁”作用。
五,计算机网络的性能
1,计算机网络的性能指标
- 性能指标从不同的方面来度量计算机网络的性能。下面是常用的7个性能指标。
1,速率
- 网络技术中的速率指的是数据的传送速率,它也称为数据率(data rate)或比特率(bit rate)。
- 速率是计算机网络中最重要的一个性能指标。
- 速率的单位是bit/s(比特每秒)(或b/s,有时也写为bps,即 bit per second)。
- 当数据率较高时,就常常在bit/s的前面加上一个字母。例如,k(kilo)= 10310^3103 = 千,M(Mega)= 10610^6106 = 兆,G(Giga)= 10910^9109 = 吉,T(Tera)= 101210^{12}1012 = 太,P(Peta) = 101510^{15}1015 = 拍,E(Exa)= 101810^{18}1018 = 艾,Z(Zetta)= 102110^{21}1021 = 泽,Y(Yotta)= 102410^{24}1024 = 尧。
- 当提到网络的速率时,往往指的是额定速率或标称速率,而并非网络实际上的速率。
2,带宽
- “带宽”(bandwidth)具有两种不同的意义:
- 带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。这种意义的带宽的单位是赫。在过去很长的一段时间,通信的主干线路传送的是模拟信号。因此,表示某信道允许通过的信号频带范围就称为该信道的带宽(或通频带)。
- 在计算机网络中,带宽用来表示网络中某通道传输数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”。这种意义的带宽的单位就是数据率的单位bit/s,是“比特每秒”。
3,吞吐量
- 吞吐量(throughput)表示在单位时间内通过某个网络的实际数据量。
- 吞吐量受网络带宽或网络额定速率的限制。
- 接入到互联网的主机的实际吞吐量,取决于互联网的具体情况。假定主机A和服务器B接入到互联网的链路速率分别是100Mbit/s和1Gbit/s。如果互联网的各链路的容量都足够大,那么当A和B交换数据时,其吞吐量显然应当是100Mbit/s。这是因为,尽管服务器B能够以超过100Mbit/s的速率发送数据,但主机A最高只能以100Mbit/s的速率接收数据。
4,时延
-
时延(delay或latency)是指数据从网络的一端传送到另一端所需的时间。时延是个很重要的性能指标,有时也称为延迟或迟延。
-
网络中的时延由以下几个不同的部分组成。
- 发送时延:发送时延是主机或路由器发送数据帧所需要的时间,就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延。发送时延的计算公式是:
- 发送时延 = 数据帧长度(bit)/发送速率(bit/s)数据帧长度(bit)/发送速率(bit/s)数据帧长度(bit)/发送速率(bit/s)
- 传播时延:传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
- 传播时延 = 信道长度(m)/电磁波在信道上的传播速率(m/s)信道长度(m)/ 电磁波在信道上的传播速率(m/s)信道长度(m)/电磁波在信道上的传播速率(m/s)
- 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理,如分析分组的首部,从分组中提取数据部分,进行差错检验或查找转发表等,这就产生了处理时延。
- 排队时延:分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
- 发送时延:发送时延是主机或路由器发送数据帧所需要的时间,就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延。发送时延的计算公式是:
-
数据在网络中经历的总时延就是以上四种时延之和。
- 总时延 = 发送时延+传播时延+处理时延+排队时延
-
发送和传播两种时延有本质上的不同。
-
发送时延发生在机器内部的发送器中(一般是发生在网络适配器中)与传输信道的长度没有任何关系。
- 传播时延则发生在机器外部的传输信道媒体上,而与信号的发送速率无关。信号传送的距离越远,传播时延就越大。
5,时延带宽积
- 时延带宽积 = 传播时延 * 带宽
6,往返时间RTT
- 在计算机网络中,往返时间RTT(Round-Trip Time)也是一个重要的性能指标。因为在许多情况下,互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道双向交互一次所需的时间。
- 例如,A向B发送数据。如果数据长度是100MB,发送速率是100Mbit/s,那么
- 发送时间 = 数据长度/发送速率数据长度/发送速率数据长度/发送速率 = (100∗220∗8)(100*2^{20}*8)(100∗220∗8) / (100∗106)(100*10^6)(100∗106) ≈ 8.39s
- 假定B正确收完100MB的数据后,就立即向A发送确认。再假定A只有在收到B的确认信息后,才能继续向B发送数据。显然,这就要等待一个往返时间RTT(这里假定确认信息很短,可忽略B发送确认的发送时延)。如果RTT=2s,那么可以算出A向B发送数据的有效数据率。
- 有效数据率 = 数据长度/(发送时间+RTT)数据长度/(发送时间+RTT)数据长度/(发送时间+RTT) = (100∗220∗8)/(8.39+2)(100*2^{20}*8 )/ (8.39+2)(100∗220∗8)/(8.39+2) ≈ 80.7∗106bit/s80.7*10^6bit/s80.7∗106bit/s ≈80.7Mbit/s
- 比原来的数据率100Mbit/s小不少。
- 在互联网中,往返时间还包括各中间节点的处理时延,排队时延以及转发数据时的发送时延。当使用卫星通信时,往返时间RTT相对较长,是很重要的一个性能指标。
- 在计算机网络的文献中,也有把RTT称为往返时延(Round-Trip Time delay)的。强调发送方至少要经过这样多的时间,才能知道自己所发送的数据是否被对方接收了。
7,利用率
- 利用率有信道利用率和网络利用率两种。
- 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
- 网络利用率则是全网络的信道利用率的加权平均值。
- 信道利用率并非越高越好。这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
- 信道利用率或网络利用率过高就会产生非常大的时延。
2,计算机网络的非性能特征
1,费用
2,质量
3,标准化
4,可靠性
5,可扩展性和可升级性
6,易于管理和维护
六,计算机网络体系结构
1,计算机网络体系结构的形成
- 计算机网络是个非常复杂的系统,可以设想一种最简单的情况:连接网络上的两台计算机要互相传送文件。在这两台计算机之间必须有一条传送数据的通路。但这还远远不够。至少还有以下几项工作需要去完成。
- 发起通信的计算机必须将数据通信的通路激活(activate)。就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
- 告诉网络如何识别接收数据的计算机。
- 发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理器程序是否已做好接收文件和存储文件的准备工作。
- 发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
- 若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
- 对出现的各种差错和意外事故,如数据传送错误,重复或丢失,网络中的某个节点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
- 相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。为了设计这样复杂的计算机网络,在最初的ARPANET设计时即提出了分层的方法。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
- 为了使不同体系结构的计算机网络能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM(Open Systems Interconnection Reference Model),简称为OSI。“开放”是指非独家垄断的。因此只要遵循OSI标准,一个系统就可以和位于世界上任何地方的,也遵循这同一标准的其他任何系统进行通信。
2,协议与划分层次
- 这些规则明确规定了所交换的数据的格式以及有关的同步问题。这些为进行网络中的数据交换而建立的规则,标准或约定称为网络协议(network protocol)。网络协议也可简称为协议。网络协议主要由以下三个要素组成。
- 语法,即数据与控制信息的结构或格式。
- 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步,即事件实现顺序的详细信息。
- 计算机网络的各层及其协议的集合就是网络的体系结构(architecture)。换种说法,**计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。**总之,体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
1,划分层次的优势
- 各层之间是独立的。
- 灵活性好。
- 结构上可分割开。
- 易于实现和维护。
- 能促进标准化工作。
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 连接建立和释放
3,具有五层协议的体系结构
-
OSI的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
-
TCP/IP体系结构则不同,它现在得到了非常广泛的应用。TCP/IP是一个四层的体系结构,它包含了应用层,运输层,网际层和链路层(网络接口层)。
-
从实质上讲,TCP/IP只有最上面的三层,因为最下面的链路层并没有属于TCP/IP体系的具体协议。链路层所使用的各种局域网标准,并非由IETF而是由IEEE的802委员会下属的各工作组负责制定的。
-
在讲述计算机网络原理时往往采取另外的办法,即综合OSI和TCP/IP的优点,采用五层协议的体系结构。
1,五层协议体系介绍
- 应用层(application layer)
- 应用层是体系结构中的最高层
- 应用层的任务是通过应用进程间的交互来完成特定网络应用。
- 应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。
- 对于不同的网络应用需要有不同的应用层协议,如DNS,HTTP,SMTP等。
- 应用层交互的数据单元称为报文(message)。
- 运输层(transport layer)
- 运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。
- 应用进程利用该服务传送应用层报文。
- 由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。
- 复用就是多个应用层进程可同时使用下面运输层的服务。
- 分用是运输层把收到的信息分别交付上面应用层中的相应进程。
- 运输层主要使用以下两种协议:
- 传输控制协议TCP(Transmission Control Protocol)—提供面向连接的,可靠的数据传输服务,其数据传输的单位是报文段(segment)。
- 用户数据报协议UDP(User Datagram Protocol)—提供无连接的尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
- 网络层(network layer)
- 网络层负责为分组交换网上的不同主机提供通信服务。
- 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。
- 在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
- 无论在那一层传送的数据单元,都可笼统地用“分组”来表示。
- 网络层的具体任务有两个:
- 通过一定的算法,在互联网中的每一个路由器上生成一个用来转发分组的转发表。
- 在每一个路由器接收到一个分组时,依据转发表中指明的路径把分组转发到下一个路由器。这样就可以使源主机运输层所传下来的分组,能够通过合适的路由最终到达目的主机。
- 网络层中的“网络”两字,已不是我们通常谈到的具体网络,而是在计算机网络体系结构模型中的第三层的名称。
- 互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议IP(Internet Protocol)和许多种路由选择协议,因此互联网的网络层也叫作网际层或IP层。
- 数据链路层(data link layer)
- 数据链路层常简称为链路层。
- 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻节点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
- 在接收数据时,控制信息使接收端能够知道一个帧从那个比特开始和到那个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
- 控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错(就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。
- 物理层(physical layer)
- 在物理层上所传数据的单位是比特。
- 发送方发送1或0时,接收方应当收到1或0,而不是0或1。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。
- 物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。
- 传递信息所利用的一些物理传输媒体,如双绞线,同轴电缆,光缆,无线信道等,并不在物理层协议之内,而是在物理层协议的下面。因此也有人把物理层下面的物理传输媒体当作第0层。
4,数据在各层之间的传递过程
- 假定主机1的应用进程AP1AP_1AP1向主机2的应用进程AP2AP_2AP2传送数据。AP1AP_1AP1先将其数据交给本主机的第5层(应用层)。第五层加上必要的控制信息H5H_5H5就变成了下一层的数据单元。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4H_4H4,再交给第3层(网络层),成为第3层的数据单元。依次类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2H_2H2)和尾部(T2T_2T2);而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。注意,传送比特流时应从首部开始传送。
- OSI参考模型把对等层之间传送的数据单位称为该层的协议数据单元PDU(Protocol Data Unit)。
- 当这一串的比特流离开主机1经网络的物理传输媒体传送到路由器时,就从路由器的第1层依次上升到第3层。每一层都根据控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给更高的一层。当分组上升到第3层网络层时,就根据首部中的目的地址查找路由器中的转发表,找出转发分组的接口,然后往下传送到第2层,加上新的首部和尾部后,再到最下面的第1层,然后在物理传输媒体上把每一个比特发送出去。
- 当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面的方式,依次上升到第5层。最后,把应用进程AP1AP_1AP1发送的数据交给目的站的应用进程AP2AP_2AP2。
- 在上图中,任何两个同样的层次,把数据通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。以前提到的各层协议,实际上就是在各个对等层之间传递数据时的各项规定。
- 有的文献中可以看到术语“协议栈”(protocol stack)。这是因为几个层次画在一起很像一个栈(stack)的结构。
5,实体,协议,服务和服务访问点
-
当研究开放系统中的信息交换时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
-
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作,如,在何种条件下,数据必须重传或丢弃。
-
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
-
协议的实现保证了能够向上一层提供服务。**使用本层服务的实体只能看见服务而无法看见下面的协议。**即,下面的协议对上面的实体是透明的。
-
协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
-
在同一系统中相邻两层的实体进行交互的地方,通常称为服务访问点SAP(Service Access Point)。服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
-
OSI把层与层之间交换的数据的单位称为服务数据单元SDU(Service Data Unit),它可以与PDU不一样。如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。
-
计算机网络的协议还有一个很重要的特点,就是协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。因此,看一个计算机网络协议是否正确,不能只看在正常情况下是否正确,还必须非常仔细地检查协议能否应付任何一种出现概率极小的异常情况。
相关文章:

计算机网络入门
一,计算机网络在信息时代中的作用 21世纪的一些重要特征就是数字化,网络化和信息化,它是一个以网络为核心的信息时代。有三类大家很熟悉的网络,即电信网络,有线电视网络和计算机网络。按照最初的服务分工,…...

网络安全-内网DNS劫持-ettercap
网络安全-内网DNS劫持-ettercap 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 五,学习网络安全知识请勿适用于违法行为 学习网络安全知识请…...

synchronized和Lock的区别
synchronized和lock的区别 synchronized和Lock,我已经通过源码级别的介绍过了,下面我们来总结下他们的区别 区别: 1.synchronized是关键字,Lock是接口,synchronized是JVM层实现,Lock是JDK中JUC包下的实现;…...

SpringBoot 指标监控 Actuator
Spring Boot Actuator为 Micrometer 提供了依赖管理和自动配置,Micrometer是一个支持 众多监控系统 的应用程序指标接口 该功能与:java\jdk\bin 下的 Jconsole 功能雷同 1、pom文件中引入依赖(使用的springboot是2.7.2) <dep…...

面试浅谈之十大排序算法
面试浅谈之十大排序算法 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是面试浅谈系列,收录在专栏面试中 😜😜😜 本系列将记录一些阿呆个人整理的面试题 🏃&…...

LeetCode-1250. 检查「好数组」【数论,裴蜀定理】
LeetCode-1250. 检查「好数组」【数论,裴蜀定理】题目描述:解题思路一:裴蜀定理是:a*xb*y1。其中a,b是数组中的数,x,y是任意整数。如果a,b互质那么一定有解。问题即转换为寻找互质的数。解题思路二:简化代码…...

【Linux】NTP时间同步服务与NFS网络文件共享存储服务器(配置、测试)
一、NTP时间同步服务1、NTP介绍NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正&a…...

windows下php连接oracle安装oci8扩展报错(PHP Startup: Unable to load dynamic library ‘oci8_11g‘)
记录一下php7.29安装oci8的艰苦过程,简直就是唐僧西天取经历经九九八十一难。 使用的是phpstudy_pro安装的ph扩展wnmp环境下; 1 、安装oralce Instant Client 首先,安装oci8和pdo_oci扩展依赖的Oracle client。了解到需要连接的Oracle版…...

TensorRT的功能
TensorRT的功能 文章目录TensorRT的功能2.1. C and Python APIs2.2. The Programming Model2.2.2. The Runtime Phase2.3. Plugins2.4. Types and Precision2.5. Quantization2.6. Tensors and Data Formats2.7. Dynamic Shapes2.8. DLA2.9. Updating Weights2.10. trtexec本章…...

433MHz无线通信--模块RXB90
1、接收模块RXB90简介 两个数据输出是联通的。 2、自定义一个编码解码规则 组数据为“0x88 0x03 0xBD 0xB6”。 3、发射模块 如何使用示波器得到捕捉一个周期的图像? 通过date引脚连接示波器CH1,以及示波器探针的接地端接芯片的GND,分…...

Seata源码学习(三)-2PC核心源码解读
Seata源码分析-2PC核心源码解读 2PC提交源码流程 上节课我们分析到了GlobalTransactionalInterceptor全局事务拦截器,一旦执行拦截器,我们就会进入到其中的invoke方法,在这其中会做一些GlobalTransactional注解的判断,如果有注解…...

IO流概述
🏡个人主页 : 守夜人st 🚀系列专栏:Java …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录IO流概述IO 流的分类总结流的四大类字…...

【node.js】node.js的安装和配置
文章目录前言下载和安装Path环境变量测试推荐插件总结前言 Node.js是一个在服务器端可以解析和执行JavaScript代码的运行环境,也可以说是一个运行时平台,仍然使用JavaScript作为开发语言,但是提供了一些功能性的API。 下载和安装 Node.js的官…...

Python优化算法—遗传算法
Python优化算法—遗传算法一、前言二、安装三、遗传算法3.1 自定义函数3.2 遗传算法进行整数规划3.3 遗传算法用于旅行商问题3.4 使用遗传算法进行曲线拟合一、前言 优化算法,尤其是启发式的仿生智能算法在最近很火,它适用于解决管理学,运筹…...

数据埋点(Data buried point)的应用价值剖析
一、什么是数据埋点?数据埋点指在应用中特定的流程中收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑。比如访问数(Visits),访客数(Visitor),停…...

一文弄懂硬链接、软链接、复制的区别
复制 命令:cp file1 file2 作用:实现对file1的一个拷贝。 限制:可以跨分区,文件夹有效。 效果:修改file1,对file2无影响;修改file2,对file1无影响。删除file1,对file…...

界面组件Telerik ThemeBuilder R1 2023开创应用主题研发新方式!
Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供最完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET包含一个完…...

在FederatedScope 如何查看clientserver之间的传递的参数大小(通讯量)? 对源码的探索记录
在FederatedScope 如何查看client/server之间的传递的参数大小(通讯量)? 对源码的探索记录 背景需求 想给自己的论文补一个通讯开销对比实验:需要计算出client和server之间传递的信息(例如,模型权重、embedding)总共…...

2023爱分析 · 数据科学与机器学习平台厂商全景报告 | 爱分析报告
报告编委 黄勇 爱分析合伙人&首席分析师 孟晨静 爱分析分析师 目录 1. 研究范围定义 2. 厂商全景地图 3. 市场分析与厂商评估 4. 入选厂商列表 1. 研究范围定义 研究范围 经济新常态下,如何对海量数据进行分析挖掘以支撑敏捷决策、适应市场的快…...

20230215_数据库过程_高质量发展
高质量发展 —一、运营结果 SQL_STRING:‘delete shzc.np_rec_lnpdb a where exists (select * from tbcs.v_np_rec_lnpdbbcv t where a.telnumt.telnum and a.outcarriert.OUTCARRIER and a.incarriert.INCARRIER and a.owncarriert.OWNCARRIER and a.starttimet.STARTTIME …...

【百度 JavaScript API v3.0】LocalSearch 位置检索、Autocomplete 结果提示
地名检索移动到指定坐标 需求 在输入框中搜索,在下拉列表中浮动,右侧出现高亮的列表集。选中之后移动到指定坐标。 技术点 官网地址: JavaScript API - 快速入门 | 百度地图API SDK 开发文档:百度地图JSAPI 3.0类参考 实现 …...

运用Facebook投放,如何制定有效的竞价策略?
广告投放中,我们经常会遇到一个问题,就是不知道什么样的广告适合自己的业务。其实,最简单的方法就是根据我们业务本身进行定位并进行投放。当你了解了广告主所处行业及目标受众后,接下来会针对目标市场进行搜索和定位(…...

大数据框架之Hadoop:HDFS(五)NameNode和SecondaryNameNode(面试开发重点)
5.1NN和2NN工作机制 5.1.1思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此&am…...

计算机网络 - 1. 体系结构
目录概念、功能、组成、分类概念功能组成分类分层结构概念总结OSI 七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP 四层模型OSI 与 TCP/IP 相同点OSI 与 TCP/IP 不同点为什么 TCP/IP 去除了表示层和会话层五层参考模型概念、功能、组成、分类 概念 …...

银行业上云进行时,OLAP 云服务如何解决传统数仓之痛?
本文节选自《中国金融科技发展概览:创新与应用前沿》,从某国有大行构建大数据云平台的实践出发,解读了 OLAP 云服务如何助力银行实现技术平台化、组件化和云服务化,降低技术应用门槛,赋能业务创新。此外,本…...

特定领域知识图谱融合方案:文本匹配算法之预训练Simbert、ERNIE-Gram单塔模型等诸多模型【三】
特定领域知识图谱融合方案:文本匹配算法之预训练模型SimBert、ERNIE-Gram 文本匹配任务在自然语言处理中是非常重要的基础任务之一,一般研究两段文本之间的关系。有很多应用场景;如信息检索、问答系统、智能对话、文本鉴别、智能推荐、文本数据去重、文本相似度计算、自然语…...

【2023最新教程】从0到1开发自动化测试框架(0基础也能看懂)
一、序言 随着项目版本的快速迭代、APP测试有以下几个特点: 首先,功能点多且细,测试工作量大,容易遗漏;其次,代码模块常改动,回归测试很频繁,测试重复低效;最后&#x…...

linux备份命令小记 —— 筑梦之路
Linux dump命令用于备份文件系统。 dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。 dump命令只可以备份ext2/3/4格式的文件系统, centos7默认未安装dump命令,可以使用yum install -y dump安…...

vue项目(vue-cli)配置环境变量和打包时区分开发、测试、生产环境
1.打包时区分不同环境在自定义配置Vue-cli 的过程中,想分别通过.env.development .env.test .env.production 来代表开发、测试、生产环境。NODE_ENVdevelopment NODE_ENVtest NODE_ENVproduction本来想使用上面三种配置来区分三个环境,但是发现使用test…...

Python 命名规范
Python 命名规范 基本规范 类型公有内部备注Packagepackage_namenone全小写下划线式驼峰Modulemodule_name_module_name全小写下划线式驼峰ClassClassName_ClassName首字母大写式驼峰Methodmethod_nameprotected: _method_name private: __method_name全小写下划线式驼峰Exce…...