青岛网站建设电话,东莞大朗网站建设哪家口碑好,wordpress营业按钮,上海抖音推广文章目录因特网概述网络、互联网和因特网互联网历史与ISP标准化与RFC因特网的组成三种交换方式电路交换分组交换和报文交换三种交换方式的对比与总结计算机网络的定义和分类计算机网络的定义计算机网络的分类计算机网络的性能指标速率带宽吞吐量时延时延带宽积往返时间利用率丢…
文章目录因特网概述网络、互联网和因特网互联网历史与ISP标准化与RFC因特网的组成三种交换方式电路交换分组交换和报文交换三种交换方式的对比与总结计算机网络的定义和分类计算机网络的定义计算机网络的分类计算机网络的性能指标速率带宽吞吐量时延时延带宽积往返时间利用率丢包率计算机体系结构常见的计算机网络体系结构分层的必要性分层思想举例专用术语因特网概述
网络、互联网和因特网 网络Network是由若干结点Node和连接这些结点的链路Link组成的。例如下图所示笔记本电脑是一个结点台式电脑是一个结点网络打印机是一个结点而将他们互联起来的交换机也是一个结点。当然了结点之间的互联还需要使用链路可以是有线链路也可以是无线链路。在本例中4个结点和三段电路就构成了一个简单的网络 多个网络还可以通过路由器互连起来这样就构成了一个覆盖范围更大的网络即互联网或互连网。因此互联网是网络的网络Network of Networks。 我们几乎每天都在使用的因特网Internet是世界上最大的互联网它的用户数以亿计互联的网络数以百万计。
这里我们需要区分一下这两个英文单词的含义
以小写字母i开头的英文单词internet是一个通用名词翻译为互联网它泛指由多个计算机网络互联而成的网络在这些网络之间的通信协议可以是任意的以大写字母I来开头的英文单词Internet则是一个专用名词翻译为因特网它指当前全球最大的开放的由众多网络互联而成的特定计算机网络它采用TCP/IP协议族作为通信的规则其前身是美国的ARPANET
互联网历史与ISP
接下来我们来看看因特网发展的三个阶段因特网的基础结构大体上经历了三个阶段的演进 第一阶段从单个网络ARPANET向互联网发展。1969年美国国防部创建了第一个分组交换网ARPANET。到了20世纪70年代中期人们已认识到不可能仅使用一个单独的网络来满足所有的通信问题这就导致了后来互联网的出现这样的互联网就要成为了现在的因特网的雏形。1983年tcpip协议成为ARPANET上的标准协议使得所有使用tcpip协议的计算机都能利用互联网相互通信因而人们就把1983年作为因特网的诞生时间。 第二阶段逐步建成三级结构的因特网。从1985年起美国国家科学基金会NSF就围绕6个大型计算机中心建设计算机网络也就是国家科学基金网NSFNET它是一个三级结构的网络分为主干网、地区网和校园网企业网。该网络覆盖了全美国主要的大学和研究所并且成为因特网中的主要组成部分。1990年美国国防部创建的ARPANET任务完成正式关闭。1991年美国国家科学基金会NSF和美国的其他政府机构开始认识到因特网必将扩大其使用范围不应仅限于大学和研究机构于是美国政府决定将因特网的主干网转交给私人公司来运营并开始对接入因特网的单位收费。 第三阶段逐渐形成了多层次ISP结构的因特网。从1993年开始由美国政府资助的NSFNET逐渐被若干个商用的因特网主干网取代而政府机构不再负责因特网的运营而是让各种因特网服务提供者ISP来运营。1994年由欧洲原子核研究组织开发的万维网也就是WWW技术在因特网上被广泛使用大大方便了广大非网络专业人员对网络的使用促使因特网迅猛发展。1995年NSFNET停止运作因特网彻底商业化。 下面我们来解释一下因特网服务提供者ISPInternet Service Provider:
想想看普通用户是如何接入到因特网的呢实际上是通过ISP接入因特网的。ISP可以从因特网管理机构申请到成块的IP地址同时拥有通信线路以及路由器等联网设备。任何机构和个人只要向ISP交纳规定的费用就可以从ISP得到所需要的IP地址这一点很重要因为因特网上的主机都必须有IP地址才能进行通信这样就可以通过该ISP接入到因特网。 我国主要的ISP是我们大家都比较熟悉的中国电信、中国联通和中国移动这三大电信运营商。 根据提供服务的覆盖面积大小及所拥有的IP地址块数量不同ISP也分成不同的层次 最高级别的第一层ISP的服务面积最大第一层ISP通常也被称为因特网主干网一般都能够覆盖国际性区域范围并拥有高速链路和交换设备。第一层ISP之间直接互联 第二层ISP和一些大公司都是第一层ISP的用户通常具有区域性或国家性覆盖规模与少数低层ISP相连接。 第三层ISP又称为本地ISP他们是第二层ISP的用户且只拥有本地范围的网络一般的校园网或企业网以及住宅用户和无线移动用户都是第三层ISP的用户。 从该图可以看出因特网逐渐演变成基于ISP的多层次结构网络但今天的因特网由于规模太大已经很难对整个网络的结构给出细致的描述但下面这种情况是经常遇到的就是相隔较远的两台主机间的通信可能需要经过多个ISP顺便提一下一旦某个用户能够接入到因特网那么它也可以成为一个ISP例如开个热点。所需要做的就是购买一些如调制解调器或路由器这样的设备让其他用户能够和他相连。因此该图所示的仅仅是个示意图一个ISP可以很方便的在因特网拓扑上添加新的层次和分支。
标准化与RFC
接下来我们介绍一下因特网的标准化工作因特网的标准化工作对因特网的发展起到了非常重要的作用。因特网在制定其标准上的一个很大的特点就是面向公众。因特网所有的RFC技术文档都可以从因特网上免费下载任何人都可以随时用电子邮件发表对某个文档的意见或建议。因特网协会ISOC是一个国际性组织他负责对因特网进行全面管理以及在世界范围内促进其发展和使用。
ISOC下设的因特网体系结构委员会IAB负责管理因特网有关协议的开发IAB下的因特网工程部IETF负责研究中短期工程问题主要针对协议的开发和标准化IAB下的因特网研究部IRTF从事理论方面的研究和开发一些需要长期考虑的问题。
制定因特网的正式标准要经过以下4个阶段:
第1个阶段是因特网草案阶段在这个阶段还不是RFC文档第2个阶段是建议标准从该阶段开始成为RFC文档。第3个阶段是草案标准第4个阶段是因特网标准。
值得注意的是并非所有的RFC文档都是因特网标准只有一小部分RFC文档最后才能变成因特网标准。 因特网的组成
因特网的拓扑结构虽然非常复杂并且在地理上覆盖了全球但从功能上看可以划分为以下两部分
边缘部分由所有连接在因特网上的主机组成这部分是用户直接使用的用来进行通信和资源共享。边缘部分中的主机可以是台式电脑或大型服务器也可以是笔记本电脑、平板电脑还可以是智能手机、智能手表以及物联网智能硬件例如空气质量监测仪、智能摄像头等。核心部分核心部分由大量网络和连接这些网络的路由器组成这部分是为边缘部分提供服务的也就是提供连通性和交换。在网络核心部分起特殊作用的是路由器它是一种专用计算机但我们不称它为主机路由器是实现分组交换的关键构件其任务是转发收到的分组这是网络核心部分最重要的功能。
三种交换方式
电路交换Circuit Switching分组交换Packet Switching报文交换Message Switching
电路交换
在电话问世后不久人们就发现要让所有的电话机都两两相连接是不现实的。于是人们认识到,要使得每一部电话能够很方便的和另一部电话进行通信就应当使用一个中间设备将这些电话连接起来这个中间设备就是电话交换机每一部电话都连接到电话交换机上可以把电话交换机简单的看成是一个有多个开关的开关器可以将需要通信的任意两部电话的电话线路按需接通从而大大减少了连接的电话线数量。 当电话机的数量增多时就需要使用很多彼此连接起来的电话交换机来完成全网的交换任务用这样的方法就构成了覆盖全世界的电信网电话交换机接通电话线的方式称为电路交换。从通信资源的分配角度来看交换就是按照某种方式动态的分配传输线路的资源。
我们来看下面这个电路交换的示意图为了简单起见图中没有区分市话交换机和长途电话交换机。应当注意的是用户线归电话用户专用而电话交换机之间拥有的大量话路的中继线则是许多用户共享的。电路交换有以下三个步骤
第一步是建立连接也就是分配通信资源。例如在使用电路交换打电话之前必须先拨号请求建立连接当被叫用户听到电话交换机送来的拨号音并摘机后从主叫端到被叫端就建立了一条连接也就是一条专用的物理通路这条连接保证了双方通话时所需的通信资源而这些资源在双方通信时不会被其他用户占用。第二步是通话也就是主教和被教双方互相通电话在整个通话期间第一步建立连接所分配的通信资源始终被占用。第三步是释放连接也就是通话完毕挂机后电话交换机释放刚才使用的这条专用的物理通路。换句话说是把刚才占用的所有通信资源归还给电信网。 分组交换和报文交换
我们先来想一个问题使用电路交换来传送计算机数据是否可行
应该说尽管采用电路交换可以实现计算机之间的数据传送但是线路的传输效率往往很低。这是因为计算机的数据是突发式的出现在传输线路上的。我们可以试想一下当用户正在输入和编辑一份待传送的文件时用户所占用的通信资源暂时未被利用该通信资源也不能被其他用户使用宝贵的通信线路资源就被白白浪费了。
因此计算机网络通常采用分组交换而不是电路交换。在因特网中最重要的分组交换机就是路由器他负责将各种网络互联起来并对接收到的分组进行转发也就是在进行分组交换。
我们来看这样一个例子假设主机H6的用户要给主机H2的用户发送一条消息通常我们把表示该消息的整块数据称为一个报文在发送报文之前先把较长的报文划分成为一个个更小的等长数据段在每一个数据段前面加上一些由必要的控制信息组成的首部后就要构成了一个分组也可简称为包相应的首部也可称为包头。
请大家思考一下添加首部的作用是什么这不是额外加大了带传输的数据量吗实际上首部起到非常关键的作用相信大家至少能想到首部中肯定包含了分组的目的地址否则分组传输路径中的各分组交换机也就是各路由器就不知道如何转发分组了。
分组交换机收到一个分组后先将分组暂时存储下来再检查其首部按照首部中的目的地址进行查表转发找到合适的转发接口通过该接口将分组转发给下一个分组交换机。
在本例中主机H6将所构造出的各分组依次发送出去各分组经过途中各分组交换机的存储转发(分组不一定是同一线路)最终到达主机H2主机H2收到这些分组后去掉他们的首部将各数据段组合还原出原始报文。
在上述的分组交换过程中
发送方所要完成的任务是构造分组和发送分组。路由器也就是分组交换机所要完成的任务是缓存分组和转发分组简称为存储转发。接收方所要完成的任务是接收分组和还原报文
与分组交换类似报文交换中的交换节点也采用存储转发方式但报文交换对报文的大小没有限制这就要求交换节点需要有较大的缓存空间。需要注意的是报文交换主要用于早期的电报、通信网现在较少使用通常被较先进的分组交换方式所取代。因此我们不再详细介绍报文交换了。
三种交换方式的对比与总结
接下来我们对电路交换、报文交换、分组交换这三种交换方式进行一下对比。
假设ABCD是分组传输路径上所要经过的4个节点交换机纵坐标为时间 对于电路交换通信之前首先要建立连接连接建立好之后就可以使用已建立好的连接进行数据传送数据传送结束后需要释放连接以归还之前建立连接所占用的通信线路资源 对于报文交换可以随时发送报文而不需要事先建立连接。整个报文先传送到相邻节点交换机全部存储下来后进行查表转发转发到下一个节点交换机 对于分组交换可以随时发送分组而不需要事先建立连接构成原始报文的一个个分组依次在各节点交换机上存储转发各节点交换机在发送分组的同时还缓存接收到的分组。 另外注意 当使用电路交换时一旦建立连接中间的各节点交换机就是直通形式的比特流可以直达终点。 当使用报文交换时整个报文需要在各节点交换机上进行存储转发由于不限制报文的大小因此需要各节点交换机都具有较大的缓存空间。 当使用分组交换时构成原始报文的一个个分组在各节点交换机上进行存储转发相比报文交换减少了转发时延还可以避免过长的报文长时间占用链路同时也有利于进行差错控制。
最后我们总结一下这三种交换方式各自的优缺点。
电路交换的优点如下
通信时延小这是因为通信线路为通信双方用户专用数据直达因此通信时延非常小当连续传输大量数据时这一优点非常明显。有序传输这是因为通信双方之间只有一条专用的通信线路数据只在这一条线路上传输因此不存在失序问题。没有冲突不同的通信双方拥有不同的信道不会出现征用物理信道的问题。使用范围广电路交换既适用于传输模拟信号也适用于传输数字信号。实时性强这主要得益于其通信时延小的优点。控制简单电路交换的节点交换机及其控制都比较简单
电路交换的缺点如下
建立连接时间长电路交换的平均连接建立时间对计算机通信来说太长了。线路独占使用效率低电路交换一旦建立连接物理通路就被通信双方独占即使通信线路空闲也不能供其他用户使用因而信道利用率很低。灵活性差只要连接所建立的物理通路中的任何一点出现了故障就要必须重新拨号建立新的连接这对十分紧急和重要的通信是很不利的。难以规格化电路交换时数据直达不同类型不同规格不同速率的终端很难相互进行通信也难以在通信过程中进行差错控制。 报文交换的优点如下:
无需建立连接报文交换不需要为通信双方预先建立一条专用的通信线路不存在建立连接的时延用户可以随时发送报文。动态分配线路当发送方把报文传送给节点交换机时节点交换机先存储整个报文然后选择一条合适的空闲线路将报文发送出去。提高线路可靠性。如果某条传输路径发生故障会重新选择另一条路径传输数据因此提高了传输的可靠性。提高线路利用率。通信双方不是固定占用一条通信线路而是在不同的时间分段部分占用物理线路因而大大提高了通信线路的利用率。提供多目标服务一个报文可以同时发送给多个目的地址这在电路交换中是很难实现的。
报文交换的缺点如下:
引起了转发时延这是因为报文在节点交换机上要经历存储转发的过程。需要较大的存储缓存空间这是因为报文交换对报文的大小没有限制。需要传输额外的信息量这是因为报文需要携带目标地址、源地址等信息。 分组交换的优点如下
无需建立连接分组交换不需要为通信双方预先建立一条专用的通信线路不存在建立连接的时延用户可以随时发送分组。线路利用率高通信双方不是固定占用一条通信线路而是在不同的时间分段部分占有物理线路因而大大提高了通信线路的利用率。简化了存储管理这是相对于报文交换而言的因为分组的长度固定相应的缓冲区的大小也固定管理起来相对容易加速传输由于分组是逐个传输的这就使得后一个分组的存储操作与前一个分组的转发操作可以同时进行。减少出错概率和重发数据量。因为分组比报文小因此出错概率必然减小。即便分组出错也只需重传出错的部分这比重传整个报文的数据量小很多这样不仅提高了可靠性也减少了传输时延。
分组交换的缺点如下
引起了转发时延这是因为分组在节点交换机上要经历存储转发的过程。需要传输额外的信息量将原始报文分割成等长的数据块每个数据块都要加上源地址、目的地址等控制信息从而构成分组因此使得传送的信息量增大了。当分组交换采用数据报服务时可能会出现失去丢失或重复分组分组到达目的节点时需要重新还原成原始报文比较麻烦。若分组交换采用虚电路服务虽然没有分组失序问题但有呼叫建立数据传输和虚电路释放三个过程。 计算机网络的定义和分类
计算机网络的定义
首先来看计算机网络的定义计算机网络的精确定义并未统一换句话说全世界没有一个对计算机网络的公认的唯一定义。
这里我们给出一个计算机网络的最简单定义即计算机网络是一些互相连接的、自治的计算机的集合。
我们可以从该定义中找出三个关键词
互联是指计算机之间可以通过有线或无线的方式进行数据通信自治是指独立的计算机它有自己的硬件和软件可以单独运行使用集合是指至少需要两台以上计算机 计算机网络的分类
按交换技术分类可以分为
电路交换网络报文交换网络分组交换网络
按网络的使用者分类可以分为
公用网公用网是指电信公司出资建造的大型网络公用的意思就是所有愿意按电信公司的规定缴纳费用的人都可以使用这种网络因此公用网也可称为公众网专用网用网是指某个部门为本单位的特殊业务工作的需要而建立的网络这种网络不向本单位以外的人提供服务例如军队、铁路、电力等系统均有本系统的专用网
按传输介质分类可以分为
有线网络有线网络包括双绞线网络、光纤网络等无线网络无线局域网所使用的WIFI技术目前应用比较普遍
按网络的覆盖范围分类可以分为
广域网WAN广域网的覆盖范围通常为几十公里到几千公里可以覆盖一个国家地区甚至横跨几个州因而有时也称为远程网。广域网是因特网的核心部分其任务是为核心路由器提供远距离例如跨越不同的国家的高速连接互联分布在不同区域的城域网和局域网城域网MAN城域网的覆盖范围一般是一个城市可跨越几个街区甚至整个城市其作用距离为5~50公里。城域网通常作为城市骨干网互联大量企业机构和校园局域网近几年城域网已开始成为现代城市的信息服务基础设施为大量用户提供接入和各种信息服务并有趋势将传统的电信服务、有线电视服务和互联网服务融为一体。局域网LAN局域网一般用微型计算机或工作站通过高速通信线路相连速率通常在10兆比特每秒以上但地理上则局限在较小的范围内如一个实验室一幢楼或一个校园内距离一般在一公里左右局域网通常由某个单位单独拥有使用和维护。在局域网发展的初期一个学校或工厂往往只拥有一个局域网现在局域网已被非常广泛的使用一个学校或企业大都拥有许多个互联的局域网这样的网络通常称为校园网或企业网。个域网PAN个域网是个人区域网络的简称它不同于上述网络不是用来连接普通计算机的而是在个人工作的地方把属于个人使用的电子设备例如便携式计算机、打印机、鼠标、键盘耳机等用无线技术连接起来的网络因此也常称为无线个人区域网WPAN其覆盖范围大约为10米 需要注意的是若中央处理机之间的距离非常近例如仅一米的数量级甚至更小则一般就称之为多处理机系统而不称它为计算机网络。 计算机网络还可以按拓扑结构分类可以分为: 总线型网络总线型网络使用单根传输线把计算机连接起来。它的优点是建网容易增减节点方便节省线路缺点是重负载时通讯效率不高总线任意一处出现故障则全网瘫痪。 星型网络星型网络是将每个计算机都以单独的线路与中央设备相连。中央设备早期是计算机后来是集线器现在一般是交换机或路由器这种网络拓扑便于网络的集中控制和管理因为端用户之间的通信必须经过中央设备缺点是成本高中央设备对故障敏感 环形网络环形网络是将所有计算机的网络接口连接成一个环最典型的例子是令牌环局域网环可以是单环也可以是双环环中信号是单向传输的 网状型网络网状型网络一般情况下每个节点至少有两条路径与其他节点相连多用在广域网中其优点是可靠性高缺点是控制复杂线路成本高。 需要注意的是以上4种基本的网络拓扑还可以互联为更复杂的网络 计算机网络的性能指标
常用的计算机网络性能指标有以下8个它们是
速率带宽吞吐量时延时延带宽积往返时间利用率丢包率
速率
为了能够更好的理解速率我们需要先了解比特如下图 我们要注意这里的k是1024也就是2的10次方 比特的英文单词为bit常简写为小写字母b 字节的英文单词为Byte常简写为大写字母B 这里顺便提一下也许大家有购买新硬盘或U盘的经历在使用中会发现操作系统给出的容量与厂家标称的容量不同例如这是我计算机中的一块固态硬盘标称容量为250GB但操作系统给出的容量为232.8GB这是什么原因呢
下面的计算公式就要可以说明这个问题厂家给出的单位GB中的G为10的9次而操作系统中数据量单位GB中的G为2的30次
有了比特的概念我们就可以引出计算机网络中的一个重要的性能指标:速率。它具体是指连接在计算机网络上的主机在数字信道上传送比特的速率也称为比特率或数据率。 我们可以发现在速率中k代表的就是1000也就是10的3次方 小练习 带宽
带宽在计算机网络中的意义是用来表示网络的通信线路所能传送数据的能力因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率。因此带宽计算机网络性能指标的单位与我们刚刚介绍的速率性能指标的单位是相同的。 速率和带宽的关系就如额定速率和最大速率 大家可能有过这样的经历有朋友问你家的出口网速有多大你可能回答说200兆这里我们往往省略说比特每秒。完整的描述应该是最高速率为200兆比特每秒而这个最高速率其实就是你家网络的出口带宽这当然是一个很重要的计算机网络性能指标它直接关系到我们的网络应用体验
吞吐量
吞吐量表示在单位时间内通过某个网络或信道接口的数据量。吞吐量被经常用于对现实世界中的网络的一种测量以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络带宽或额定速率的限制。
时延
我们先来看看分组从源主机传送给目的主机的过程中都会在哪些地方产生时延 他们共同构成了网络时延 源主机将分组发往传输线路这需要花费一定的时间我们把这段时间称为发送时延代表分组的电信号在链路上传输这也需要花费一定的时间。我们把这段时间称为传播时延路由器收到分组后对其进行存储转发这也需要花费一定的时间我们把这段时间称为处理时延
一般来说源主机和目的主机之间的路径会由多段电路和多个路由器构成因此会有多个传播时延和处理时延。
发送时间的计算公式为分组长度/发送速率
这里需要对发送速率做一下说明 如图所示这是家庭局域网的一部分网卡的发送速率信道带宽交换机的接口速率他们共同决定着主机的发送速率。 从该例可以看出在构建网络时应该做到各设备间以及传输介质的速率匹配这样才能完全发挥出本应具有的传输性能 再来看传播时延的计算公式由信道长度/电磁波传播速率
从上图中我们可以看到电磁波在不同的介质中传播的速度不一样。因此要计算传播时延首先应该确定采用的是什么传输媒体进而可以确定电磁波在该传输媒体中的传播速率。
处理时延没有简单的计算公式因为它不方便计算这并不难理解因为网络中的数据流量是动态变化的因此路由器的繁忙程度也是动态变化的另外各种路由器的软硬件性能也可能有所不同因此很难用一个公式计算出处理时延。 这里需要说明的是有的教材中还有一个排队时延而本课程将排队时延与处理时延合并成为处理时延 那么请大家思考一下在处理时延忽略不计的情况下网络时延中是传播时延占主导还是发送时延占主导
我们来看下图的两种情况 通过以上两个例子可以看出构成网络时延的发送时延传播时延以及处理时延。在处理时延忽略不计的情况下我们不能想当然的认为发送时延占主导或传播时延占主导而应该具体问题具体分析
时延带宽积
时延带宽积从字面意思就可以看出该性能指标是时延与带宽的乘积但是时延由发送时延传播时延和处理时延三部分构成。该性能指标中的时延具体是指哪一个答案是传播时延。
也就是说时延带宽积是传播时延与带宽的乘积我们可以把传输电路看成是一个管道其长度为传播时延横截面积为带宽则时延带宽积就是该管道的体积可以想象成管道中充满了比特若发送端连续发送数据则在所发送的第一个比特即将到达终点时发送端就已经发送了时延带宽积个比特。链路的时延带宽积又称为以比特为单位的链路长度。 往返时间
在许多情况下因特网上的信息不仅仅单方向传输而是双向交互。我们有时很需要知道双向交互一次所需的时间因此往返时间RTT也是一个重要的性能指标。
来看下面这个例子以太网上的某台主机要与无线局域网中的某台主机进行信息交互往返时间RTT是指从源主机发送分组开始直到源主机收到来自目的主机的确认分组为止所需要的时间。 利用率 丢包率
丢包率即分组的丢失率是指在一定的时间范围内传输过程中丢失的分组数量与总分组数量的比率。丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。丢包率是网络运维人员非常关心的一个网络性能指标但对于普通用户来说往往并不关心这个指标因为他们通常意识不到网络丢包。
分组丢失主要有两种情况
一种情况是分组在传输过程中出现误码被结点交换机丢弃。主机发送的分组在传输过程中出现了误码当分组进入传输路径中的节点交换机后被节点交换机检测出了误码进而被丢弃。另一种情况是分组到达一台存储队列已满的分组交换机时被丢弃在通信量较大时就可能造成网络拥塞。假设路由器r5当前的输入缓冲区已满此时主机发送的分组到达该路由器路由器没有存储空间暂存该分组只能将其丢弃。 需要说明的是实际上路由器会根据自身拥塞控制方法在输入缓存还未满的时候就要主动丢弃分组。
因此丢包率反映了网络的拥塞情况
无拥塞时路径丢包率为0轻度拥塞时路径丢包率为1%~4%严重拥塞时路径丢包率为5%~15%。
当网络的丢包率较高时通常无法使网络应用正常工作
计算机体系结构
常见的计算机网络体系结构
为了使不同体系结构的计算机网络都能互联国际标准化组织于1977年成立了专门机构研究该问题不久他们就要提出了一个试图使各种计算机在世界范围内互联成网的标准框架也就是著名的开放系统互联参考模型简称为OSI该模型是一个7层协议的体系结构从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层它是法律上的国际标准。
到了20世纪90年代初期虽然整套的OSI国际标准都已经制定出来了但这时因特网已抢先在全世界覆盖了相当大的范围。因特网从1983年开始使用TCP/IP协议族并逐步演变成TCP/IP参考模型该模型是一个4层协议的体系结构从下往上依次是网络接口层网际层、运输层、应用层它是事实上的国际标准。
对比这两个体系结构可以看出tcpip体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层并去掉了会话层和表示层。
另外由于tcpip在网络层使用的协议是IP协议中文意思是网际协议因此tcpip体系结构的网络层常称为网际层 在过去制定标准的组织中往往以专家学者为主但现在许多公司都纷纷挤进各种各样的标准化组织使得技术标准有着浓厚的商业气息。一个新标准的出现有时不一定反映出其技术水平是最先进的而是往往有着一定的市场背景。从这种意义上说能够占领市场的就是标准。OSI标准失败的原因可归纳为 OSI的专家们缺乏实际经验他们在完成OSI标准时没有商业驱动力。OSI的协议实现起来过分复杂而且运行效率很低。OSI标准的制定周期太长因而使得按OSI标准生产的设备无法及时进入市场。OSI的层次划分也不太合理有些功能在多个层次中重复出现。 大多数用户每天都有接入因特网的需求这就要求用户的主机必须使用TCPIP协议。当然了即使用户的网络不需要接入因特网也可以使用tcpip协议在用户主机的操作系统中通常都带有符合tcpip体系结构标准的tcpip协议族而用于网络互联的路由器中也带有符合TCP体系结构标准的TCP协议族只不过路由器一般只包含网络接口层和网际层
tcpip体系结构的网络接口层并没有规定什么具体的内容这样做的目的是可以互联全世界各种不同的网络接口例如有线的以太网接口无线局域网的WiFi接口而不限定仅使用一种或几种网络接口。因此本质上tcpip体系结构只有上面的三层IP协议是tcpip体系结构网际层的核心协议TCP和udp是TCP体系结构运输层的两个重要协议。
Tcp体系结构的应用层包含了大量的应用层协议例如HTTP smtpdnsrtp等。
IP协议可以将不同的网络接口进行互联并向其上的TCP协议和udp协议提供网络互联服务。而TCP协议在享受IP协议提供的网络互联服务的基础上可向应用层的相应协议提供可靠传输的服务。
Udp协议在享受IP协议提供的网络互联服务的基础上可向应用层的相应协议提供不可靠传输的服务。Ip协议作为tcp IP体系结构中的核心协议一方面负责互联不同的网络接口也就是IP over everything 另一方面为各种网络应用提供服务也就是everything over IP
在tcpip体系结构中包含有大量的协议IP协议和TCP协议是其中非常重要的两个协议因此用TCP和IP这两个协议来表示整个协议大家族常称为tcpip协议族。 顺便提一下在嵌入式系统开发领域tcpip协议族常称为tcpip协议栈这是因为tcpip协议体系的分层结构与数据结构中的站在图形画法上是类似的。 由于tcpip体系结构为了将不同的网络接口进行互联因此它的网络接口层并没有规定什么具体的内容。然而这对于我们学习计算机网络的完整体系而言就会缺少一部分内容因此在学习计算机网络原理时往往采取折中的办法也就是综合OSI和tcpip的优点采用一种5层协议的原理体系结构5层协议的原理体系结构从下到上依次为物理层、数据链路层、网络层、运输层、应用层。可以看出5层协议的原理体系结构将tcpip体系结构的网络接口层又重新划分为了物理层和数据链路层这样更有利于我们对计算机网络原理的学习。 分层的必要性
物理层 例如两台计算机通过一条网线连接起来需要考虑
采用怎样的传输媒体介质例如网线、WIFI严格来说这不是物理层的范围用怎么样的物理接口用怎么样的信号表示比特0和1例如使用方波信号高电平表示1低电平表示0这里只是举例
解决这些问题后两台计算机就可以传输比特0和1了。这就是物理层要解决的问题。
注意
严格来说传输媒体并不属于物理层它并不包含在体系结构之中计算机网络中传输的信号并不是我们举例的方波信号这里是方便理解
数据链路层 实用的计算机网络一般都由多台主机构成例如主机ABCDE通过总线互联构成了一个总线型网络假设我们已经解决了物理层的问题也就是说主机间可以发送信号来传输比特0或1。我们来看看在这样一个总线型的网络上还面临什么需要解决的问题。
主机A要给主机C发送数据但是表示数据的信号会通过总线传播到总线上的每一个主机。那么问题来了主机C如何知道该数据是发给自己的自己要接受而主机BDE要如何知道该数据并不是发送给自己的自己应该拒绝这就很自然的引出了如何标识网络中各主机的问题也就是主机编制问题。大家可能听说过网卡上的MAC地址其实它就是主机在网络中的地址主机在发送数据时应该给数据附加上目的地址当其他主机收到后根据目的地址和自身地址来决定是否接受数据这就又引出了一个问题目的主机如何从信号所表示的一连串比特流中区分出地址和数据也就是需要解决分组的封装格式问题。另外对于总线型的网络还会出现下面这种典型的问题例如某个时刻总线是空闲的也就是没有主机使用总线来发送数据片刻之后主机B和D同时向总线发送数据这必然会造成信号碰撞。因此如何协调各主机征用总线也是必须要解决的问题。需要说明的是这种总线型的网络早已淘汰现在常用的是使用以太网交换机将多台主机互联形成的交换式以太网。那么以太网交换机又是如何实现的我们将这些问题全部划归到数据链路层。到这里大家可能会发现只要解决了物理层和数据链路层各自所面临的问题我们就可以实现分组在一个网络上传输了。
网络层
我们每天都会使用的因特网是由非常多的网络和路由器互联起来的仅解决物理层和数据链路层的问题只能解决一个网络中的通信问题还是不能正常工作。
我们来看这个例子这是一个由3个路由器4个网络互联起来的小型互联网我们可以把它看作是因特网中很小的一部分。
在之前的例子中仅有一个网络我们不需要对网络进行标识。而在本地中有多个网络很显然我们面临着如何标识各网络以及各网络中各主机的问题。换句话说也就是网络和主机共同编制的问题。相信同学们一定听过IP地址例如上图中标明了网络N1中各设备的IP地址该类IP地址的前三个10进制数用来标识网络。第4个10进制数用来标识主机。在本例中网络N1的网络号为192.168.1该网络上的笔记本电脑服务器以及路由器接口的IP地址的前三个数应该都是192.168.1因为他们都在网络N1上而第4个十进制数分别为12254各不相同用来标识他们自己。
我们再来看另一个问题源主机与目的主机之间的传输路径往往不止一条分组从源主机到目的主机可走不同的路径这样就引出了路由器如何转发分组的问题以及如何进行路由选择的问题。我们将这些问题全部划归到网络层至此我们解决了物理层、数据链路层以及网络层各自的问题则可以实现分组在网络间传输的问题。
运输层 例如假设这台主机装运行着两个与网络通信相关的应用进程一个是浏览器进程另一个是QQ进程。这台服务器中运行着与网络通信相关的服务器进程某个时刻主机收到了来自服务器的分组那么这些分组应该交给浏览器进程处理还是应该交给QQ进程处理这就引出了我们如何标识与网络通信相关的应用进程进而解决进程之间基于网络通信的问题。
另外如果某个分组在传输过程中出现了误码或者由于路由器繁忙导致路由器丢弃分组换句话说若出现传输错误应该如何处理这也是需要解决的问题。我们将这些问题全部划归到运输层至此我们解决了物理层、数据链路层、网络层以及运输层各自的问题则可以实现进程之间基于网络的通信。
应用层 我们在前面的基础上只需制定各种应用层协议并按协议标准编写相应的应用程序通过应用进程间的交互来完成特定的网络应用。比如支持万维网应用的HTTP协议支持电子邮件的SMTP协议支持文件传送的FTP协议等我们将这些问题全部划归到应用层
总结
至此我们将实现计算机网络所需要解决的各种主要问题分别划归到了物理层、数据链路层、网络层、运输层和应用层进而构成了5层协议体系的原理体系结构。 分层思想举例
通过一个具体的网络通信实例来看看计算机网络体系结构分层处理方法。
假设网络拓扑如下所示主机属于网络N1web服务器属于网络N2。 N1和N2通过路由器互联。我们使用主机中的浏览器来访问web服务器当输入网址后主机会向外部服务器发送请求WEB服务器收到请求后会发回相应的响应。主机的浏览器收到响应后将其解析为具体的网页内容显示出来需要说明的是我们给出的只是一个简化的示意过程这是因为重点是计算机网络体系结构分层处理方法而不是浏览器和web服务器的实际交互过程。 主机和web服务器之间基于网络的通信实际上是主机中的浏览器应用进程与web服务器中的web服务器应用进程之间的基于网络的通信。
那么体系结构的各层在整个过程中起到怎样的作用
从主机端按体系结构自顶向下的顺序来看 应用层按HTTP协议的规定构建一个HTTP请求报文这是该报文的内容。 应用层将HTTP报文交付给运输层处理运输层给HTTP请求报文添加一个TCP首部使之成为TCP报文段这是TCP报文段的首部格式该首部的作用主要是为了区分应用进程以及实现可靠传输。 运输层将TCP报文段交付给网络层处理网络层给TCP报文段添加一个IP首使之质成为IP数据报这是IP数据报的首部格式。该首部的作用主要是为了使IP数据报可以在互联网上传输也就是被路由器转发 网络层将IP数据报交付给数据链路层处理数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。假设网络N1是以太网这是以太网帧首部的格式该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输能够被相应的目的主机接收。这是以太网帧尾部的格式其作用是为了让目的主机检查所接收到的帧是否有误码。 数据链路层将帧交付给物理层物理层将帧转化为比特流由于网络N1是以太网因此物理层还会给该比特流前面添加前导码这是前导码的内容其作用是为了让目的主机做好接收帧的准备物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体信号通过传输媒体到达路由器。
我们来看路由器的处理过程 物理层将信号变换为比特流然后去掉前导码后将其交付给数据链路层这实际上交付的是帧 数据链路层将帧的首部和尾部去掉后将其交付给网络层这实际上交付的是IP数据报 网络层解析IP数据报的首部从中提取出目的网络地址然后查找自身的路由表确定转发端口以便进行转发。 网络层将IP数据报交付给数据链路层 数据链路层给IP数据报添加一个s首部和一个尾部使之成为帧 数据链路层将针交付给物理层物理层将帧看作是比特流。由于网络N二是以太网因此物理层还会给该比特流前面添加前导码 物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体信号通过传输媒体到达web服务器。
我们来看web服务器的处理过程
物理层将信号变换为比特流然后去掉前导码后将其交付给数据链路层这实际上交付的是帧数据链路层将真的首部和尾部去掉后将其交付给网络层这实际上交付的是IP数据报网络层将IP数据报的首部去掉后将其交付给运输层这实际上交付的是TCP报文段运输层将TCP报文段的首部去掉后将其交付给应用层。实际上交付的是HTTP请求报文应用层对HTTP请求报文进行解析然后给主机发回HTTP响应报文
与之前的过程类似HTTP响应报文需要在外部服务器层层封装然后通过物理层变换成相应的信号再通过传输媒体传输到路由器路由器转发该响应报文给主机主机通过物理层将收到的信号转换为比特流之后通过逐层解封最终取出HTTP响应报文
专用术语
需要说明的是这些专用术语来源于osi的7层协议体系结构但也适用于tcpip的4层体系结构和5层协议原理体系结构。
我们将这些专用术语中最具代表性的三个作为分类名称它们分别是
实体协议服务
实体
我们首先来看实体实体是指任何可发送或接收信息的硬件或软件进程。
例如这是通信双方的5层原理体系结构我们在他们的各层中用标有字母的小方格来表示实体。
有了实体的概念我们再来看对等实体它是指通信双方相同层次中的实体例如图中实体a与实体f为对等实体实体b与实体g为对等实体以此类推。 例如通信双方的网卡、通信双方中的正在进行通信的应用进程都是对等实体 协议
协议是控制两个对等实体进行逻辑通信的规则的集合
例如应用层对等实体在应用层协议的控制下进行逻辑通信运输层对等实体在运输层协议的控制下进行逻辑通信以此类推。 需要注意的是之所以称为逻辑通信是因为这种通信其实并不存在它只是我们假设出来的一种通信目的在于方便我们单独研究体系结构某一层而不用考虑其他层。
例如当我们研究运输层时我们可以假设运输层的对等实体在进行逻辑通信而不用顾及其他层。
计算机网络协议有三个要素他们是
语法语义同步
语法定义通信双方所交换信息的格式例如这是IP数据报的格式 其中的小格子称为字段或域。数字表示字段的长度单位是位也就是比特。
语法就是定义了这些小格子的长度和先后顺序。换句话说语法定义了所交换信息有哪些字段以及何种顺序构成。
语义定义通信双方所要完成的操作。例如主机要访问远程web服务器它会构建一个HTTP的get请求报文然后将其发送给外部服务器web服务器收到该报文并进行解析知道这是一个HTTP的get请求报文于是就在自身内部查找所请求的内容并将所找到的内容封装在一个HTTP响应报文装发回给主机主机收到HTTP响应报文后对其进行解析取出所请求的内容并由浏览器解析显示。这个例子就可以体现出通信双方收到分组后完成怎样的操作。这是HTTP协议的语义所规定的。
同步定义通信双方的时序关系。请注意并不是指时钟频率同步例如这是TCP采用三报文握手建立连接的过程 要想进行运输层TCP实体间的逻辑通信首先必须建立连接从连接建立的过程就可以看出TCP客户端和TCP服务器之间的时序关系以及各自的状态转换只有双方建立连接后才能进行TCP数据传输。这个例子可以充分体现计算机网络协议三要素中的同步。
服务
在协议的控制下两个对等实体间的逻辑通信使得本层能够向上一层提供服务 例如物理层对等实体在物理层协议的控制下向数据链路层提供服务。
例如数据链路层对等实体享受物理层提供的服务并在数据链路层协议的控制下进行逻辑通信给网络层提供服务。
网络层对等实体享受数据链路层提供的服务并在网络层协议的控制下进行逻辑通信给运输层提供服务········
很明显协议是水平的而服务是垂直的。**特别注意的是实体看得见下层所提供的服务但并不知道实现该服务的具体协议。换句话说下层的协议对上层的实体是不可见的。**这就好比我们肯定看得见手机为我们提供的各种服务但我们只是享受这些服务而没有必要弄懂手机的工作原理。
再来看服务访问点的概念它是指在同一系统中相邻两层的实体交换信息的逻辑接口用于区分不同的服务类型。
例如数据链路层的服务访问点为帧的类型字段网络层的服务访问点为IP数据报首部中的协议字段运输层的服务访问点为端口号。
上层要使用下层所提供的服务必须通过与下层交换一些命令这些命令称为服务原语。 在计算机网络体系结构中对通信双方所交互的数据包有专门的术语。
我们把对等层次之间传送的数据包称为该层的协议数据单元英文缩写词为pdu。
例如物理层对等实体逻辑通信的数据包称为比特流数据链路层对等实体逻辑通信的数据包称为帧网络层对等实体逻辑通信的数据包称为分组。如果使用IP协议也称为IP数据报运输层对等实体逻辑通信的数据包一般根据协议而定。例如使用TCP协议则称为TCP报文段使用udp协议则称为udp用户数据报应用层对等实体逻辑通信的数据包一般称为应用报文。
上述各层数据包可以统称为协议数据单元pdu 我们把同一系统内层与层之间交换的数据包成为服务数据单元英文缩写词为sdu。
多个服务数据单元可以合成为一个协议数据单元一个服务数据单元也可以划分为几个协议数据单元