既然我们无法逃避接触互联网,那么为何不去了解它并且使用它。 ——因特网“之父” 温顿.瑟夫
因特网概述
1、网络、互联网与因特网的区别与关系
多节点之间通过有线链路连接起来的有线链路简单网络
节点间也可以通过无线链路连接实现无线链路简单网络
网络与网络之间可以通过路由器实现连接
互联网
互联网
是网络的网络
因特网
因特网
是世界上最大的互联网
网络、互联网与因特网的区别与联系
互联网(internet)与因特网(Internet)单词介绍
2、因特网简介
因特网发展三个阶段
因特网服务提供者(I
nternet S
ervice P
rovider,ISP)
普通用户是如何接入到互联网的呢?
通过ISP接入因特网,ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等连网设备;
任何单位和个人都可以通过ISP接入到互联网,只需要按ISP的规定缴纳费用即可。
我国的ISP有中国电信、中国移动、中国联通
三大运营商,他们向广大用户提供因特网接入服务、信息服务和增值服务
基于ISP的多层次结构的互连网络
因特网标准化
工作
因特网的标准化工作是面向公众
的,其任何一个建议标准在成为因特网标准之前都以RFC技术文档的形式在因特网上发表。
RFC(Request For Comments)
的意思是“请求评论
”。任何人都可以从因特网上免费下载RFC文档(http://www.ietf.org/rfc.html),并随时对某个RFC文档发表意见和建议。
目前的制定因特网标准的过程:
因特网的管理机构
因特网的组成
核心部分+边缘部分
电路交换、分组交换和报文交换
1、电路交换、分组交换和报文交换
电路交换
电路交换:
电话交换机接通电话线的方式
使用电路交换进行通信需要经历建立连接、通话、释放连接
三个步骤
建立连接:
分配通信资源,例如:使用电路交换打电话之前主叫方必须首先进行拨号以请求建立连接,当被叫方听到电话交换机送来的振铃音并摘机后,从主叫方到被叫方就建立了一条专用的物理通路简称为连接,这条连接为通话双方提供了通信资源,此时主叫方和被叫方可以基于已建立的连接进行通话了(打电话过程)
通话:
一直占用通信资源;在整个通话期间,通话双方始终占用着连接,通信资源不会被其他用户占用(两人通话期间,第三者无法打通其中任一人电话)
释放连接:
归还通信资源;通话完毕挂机后,从主叫方到被叫方的这条专用物理通路被交换机释放,将双方所占用的通信资源归还给电信网(挂机)
计算机之间的数据传送是突发式
的,当使用电路交换
来传送计算机数据时,其线路的传输效率一般都会很低
,线路上真正用来传送数据的时间往往不到10%甚至1%。(例如即时通讯工具QQ,QQ只要登陆会一直在线,如果采用电路交换,资源会被一直占用,而大多数时间不会用来传输数据,资源利用率太低)。因此计算机之间的数据传输不适合电路交换,而是下面所要讲的分组交换
。
分组交换
表示消息的整块数据成为一个报文
。
较长的报文一般不适宜直接传输,如果报文太长则对交换节点的缓存容量有很大的要求,在错误处理方面也会比较低效,因此需要将较长的报文划分成若干个较小的等长数据段,在每个数据段前面添加一些由必要的控制信息组成的首部
,这样就构造出了一个个分组。
添加首部的作用是什么?这不是额外加大了待传输的数据量吗?
实际上,首部起着非常关键的作用,
首部中肯定包含了分组的目的地址
,否则分组传输路径中的个个交换节点就不知道如何转发分组了
【分组交换过程】
源主机将分组发送到分组交换网中,分组交换网中的交换节点收到一个分组后先将其缓存下来
,然后从其首部中提取出目的地址,按照目的地址查找自己的转发表找到相应的转发接口后将分组转发出去把分组交给下一个交换节点
,经过多个交换节点的存储转发后,分组最终被转发到目的主机,主机收到这些分组后,去掉他们各自的首部将各数据段组合还原出原始报文
分组交换过程中,不是整条链路被占用,只是转发分组过程交换节点与交换节点之间会被占用,不会有过多的资源浪费
发送方、交换节点以及接收方分别作用
发送方(源主机):只需要将长报文构造分组、发送分组
交换节点:缓存分组、转发分组(存储转发)
接收方(目的主机):接收分组、还原报文
分组交换优缺点
报文交换
2、三种交换方式对比
假设源主机与目的主机之间有两个交换节点,纵坐标为时间
电路交换:
通信之前需要建立连接
,连接建立成功之后进行数据传输,数据传输结束之后需要释放连接
(将双方所占用的通信资源归还给电信网)
报文交换:
无需首先建立连接,可以随时发送报文,通信结束后也无需释放连接,数据传送单元为整个报文
,传送路径中的交换节点只有在完整接收到报文后才能对其进行查表转发
,将整个报文发送到下一个节点
分组交换:
可以随时发送分组,而不需要事先建立连接,构成原始报文的一个个分组
,依次在各交换节点上存储转发,各交换节点在转发分组的同时还缓存接收到的分组
当使用电路交换时,一旦建立连接中间的各交换节点就是直通形式的,数据可以直达终点;当使用报文交换时,整个报文需要在各交换节点上存储转发,由于不限制报文的大小,因此需要各交换节点都具有较大的缓存空间;当使用分组交换时,构成原始报文的一个个分组在交换节点间进行存储转发,相比报文交换较少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
计算机网络的定义和分类
1、计算机网络的定义
计算机网络
没有精确和统一的定义,不同阶段,不同定义反映当时计算机网络技术的发展水平
计算机网络早期的一个简单的定义:即计算机网络是一些互连的自治的计算机的集合
互连
是指计算机之间可以通过有线或无线的方式进行数据通信。
自治
是指独立的计算机它们有自己的硬件和软件,可以独立运行。
计算机集合
是指至少需要两台以上计算机。
现阶段计算机网络比较好的定义:
2、计算机网络的分类
不同角度进行分类
可以从不同角度对计算机网络进行分类,不同角度如下:
交换方式
电路交换、报文交换、分组交换
使用者
公用网和专用网
传输介质
有线网络和无线网络
有线网络包括双绞线网络、光纤网络等
无线网络是WiFi技术应用比较广泛
覆盖范围
广域网(WAN)、城域网(MAN)、局域网(LAN)、个域网(PAN)
拓扑结构
总线型、星型、环型、网状型等
总线型网络
:使用单根传输线把计算机连接起来,其优点是建网容易、增减节点方便、节省线路,缺点是重负载时通信效率不高,总线任意一处出现故障则全网瘫痪。
星型网络
:每台计算机都以单独线路与中央设备相连,中央设备早期是计算机,后期是集线器,现在一般是交换机或路由器,其优点是便于网络的集中控制和管理,缺点是成本高,中央设备对故障敏感。
环型网络
:所有计算机的网络接口都连接成一个环,最典型的例子是令牌环局域网,环可以是单环也可以是双环,环中信号是单向传输的。
网状型网络
:一般情况下,每个节点至少有两条路径与其他节点相连,多用在广域网中,其优点是可靠性高,缺点是控制复杂、线路成本高。
另外说明:以上四种基本的网络拓扑还可以互连为更复杂的网络。
计算机网络性能指标
计算机网络的性能指标被用来从不同方面度量计算机网络的性能
。
常用的八个计算机网络性能指标
速率
【练习题】有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?
100 * 2^20 * 8 bit / 100 * 10 ^6 bit/s = ?
答案解析如下:
宽带
线路的频率带宽越宽,其所传输数据的最高数据率也越高。
数据传输速率应从主机接口速率,线路带宽,交换机或者路由器的接口速率三者中取小者。
举例:
从本例可以看出,在构建网络时,应该做到各设备以及传输介质的速率匹配,这样才能完全发挥出本应具有的传输性能
吞吐量
时延
以下是分组从源主机传送给目的主机的过程中,都会在哪些地方产生时延。
源主机把分组发往数据传输线路耗费的时间称之为发送时延
。
代表分组的电信号在链路上传播耗费的时间称之为传播时延
。
分组进入路由器后,会在路由器的输入队列中排队缓存并等待处理,在路由器确定了分组的转发接口后,分组会在输出队列中排队缓存并等待转发,分组在路由器的输入队列和输出队列排队缓存所耗费的时间称之为排队时延
。
在分组从源主机传送到目的主机的过程中,分组往往要经过多个路由器的转发,分组在每个路由器上产生的排队时延的长短往往取决于网络当时的通信量和路由器的自身性能
,由于网络的通信量随时间变化很大,各路由器的性能也可能并不完全相同,因此排队时延无法用一个简单的公式进行计算。另外当网络通信量很大时,可能会造成路由器得队列溢出,使分组丢失,这相当于排队时延无穷大。
路由器从自己的输入队列中,取出排队缓存并等待处理得分组后,会进行一系列处理工作,例如:检查分组首部是否误码、提取首部中的目的地址为分组查找相应的转发接口以及修改分组首部中的部分内容(例如生存时间等),路由器对分组进行这一系列处理工作所耗费的时间称之为处理时延
。
综上所述:时延由发送时延
、传播时延
、排队时延
以及处理时延
构成
计算时延需要有以下注意点(发送速率最小值
以及不同传输介质传输速率
)
特别要注意:
使用光纤作为传输介质给我们带来的上网感受就是快,但这并不是应为光在光纤中的传播速率快,实际上光在光纤中的传播速率还略低于在铜线中的传播速率,而电磁波在自由空间中的传播速率就是光速(即3 x 10^8 m/s)
。光纤网络速度快的根本原因在于光纤的带宽很大也就是所能承载的最高数据传送速率很大(即单位时间内可传送更多的比特)。
时延带宽积
看下面这个例子:
若主机A连续发送数据,则在发送的第一个比特即将到达主机B时,发送端已经发送了时延带宽积个比特。(对于上例是5000比特)
往返时间
利用率
利用率分为链路利用率
和网络利用率
由上图可知,网络利用率不是越大越好,当网络利用率接近100%时,网络时延趋于无穷大。过高的网络利用率会产生非常大的时延,网络利用率太低,会使宝贵的通信资源被白白浪费。
丢包率
分组丢失主要有以下两种情况:
- 分组在传输过程中出现
误码
,被传输路径中的节点交换机
(例如路由器)或目的主机
检测出误码而丢弃
。 - 节点交换机根据
丢弃策略
主动丢弃分组。
丢包率反应了网络的阻塞程度:
当网络丢包率较高时,通常无法使网络应用正常工作。
计算机网络体系结构
常见的三种
计算机网络体系结构
OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。
OSI体系结构
: 概念清楚,理论也比较完整,但是它既复杂又不实用。TCP/IP体系结构
:TCP/IP是一个四层体系结构,得到了广泛的运用。五层体系结构
:为了方便学习,折中OSI体系结构
和TCP/IP体系结构
,综合二者的优点,这样既简洁,又能将概念讲清楚。
TCP/IP与OSI最大的不同在于:OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务;
TCP协议
在享受IP协议提供的网络互连的基础上可向应用层的某些协议提供可靠传输
的服务,UDP协议
在享受IP协议提供的网络互连的基础上可向应用层的某些协议提供不可靠传输
的服务。IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口,另一方面为各种网络应用提供服务。
由于TCP/IP体系结构中包含有大量的协议,而IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议大家族,常称为
TCP/IP协议族
。
计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统
,“分层
”可将庞大复杂的问题转化为若干较小的局部问题
,而这些较小的局部问题就比较容易研究和处理。
由简单到复杂实现计算机网络要面临哪些主要问题以及对应的分层结构
物理层
两台计算机通过一条链路连接起来,这种最简单的情况需要考虑以下问题
传输媒介有
物理接口
信号:高电平表示比特1,低电平表示比特0
数据链路层
主机A、B、C通过总线连成一个总线型网络,假设我们已经解决了物理层的问题即主机间可以通过信号来传送比特0和1。
现在这样的总线型网络还面临什么需要解决的问题
假设主机A要给主机B发送数据,表示数据的信号会通过总线传播到总线上的每一个主机,那么问题来了主机B如何知道这是主机A发送给它的数据进而接受该数据,而主机C又如何知道该数据并不是发送给它的应该丢弃该数据呢?
主机在发送数据时,应该给数据附加上
源地址
和目的地址
,当其他主机收到数据后根据目的地址和自身地址是否匹配,来决定是否接受该数据,还可以通过源地址知道这是哪个主机发来的数据
主机A和主机C同时使用总线来发送数据,这必然会造成信号碰撞,因此如何协调各主机争用总线也是必须要解决的问题
需要说明的是上述这种总线型网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连而成的交换式以太网
,在交换式以太网中多对主机之间可以同时通信而不会产生碰撞。那么以太网交换机又是如何实现的呢?自学习
和转发帧
还会有以下问题:
网络层
由上可知只要解决了物理层和数据链路层各自所面临的问题,就可以实现数据包在一个网络上传输了
(确实是这样)。然而我们的网络应用往往不仅限于在一个单独的网络上。例如:我们几乎每天都会使用的因特网是由非常多的网络和路由器互连起来的,仅解决上述物理层和数据链路层的问题还是不能正常工作,我们可以把下面一个小型互联网看作是因特网中很小的一部分。看看该小型互联网中需要考虑的主要问题有哪些?
运输层
至此如果我们解决了物理层、数据链路层以及网络层
各自的问题,就可以实现数据包在多个网络之间的传输了,然而对于计算机网络应用而言,仍有一些重要问题需要考虑。例如假设主机H3中运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是QQ进程,H2这台web服务器运行着与网络通信相关的web服务器进程例如Nginx,此时当主机H3收到web服务器中Nginx进程发来的数据包后,应将数据包交付给浏览器进程还是QQ进程?
应用层
至此,如果我们解决了物理层、数据链路层、网络层以及运输层
各自的问题,则可以实现进程之间基于网络的通信,在此基础上可以制定各种应用协议,并按协议标准编写相应的应用程序,通过应用进程之间的交互来实现特定的网络应用。另外在制定应用协议时,还需要考虑应用进程基于网络通信时的会话管理问题和数据表示问题。
总结:原理体系结构
至此,我们将实现计算机网络所需要解决的各种主要问题,分别划归到了物理层、数据链路层、网络层、运输层以及应用层。
计算机网络体系结构分层思想举例
主机属于网络N1,web服务器属于网络N2,N1和N2通过路由器互连,用户在主机中使用浏览器访问web服务器,当用户在浏览器地址栏中输入web服务器域名后,主机会向web服务器发送一个请求报文,web服务器收到请求报文后执行相应的操作,然后给主机发送响应报文,主机收到响应报文后,由浏览器负责解析和渲染显示。
主机与web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与web服务器中的web服务器进程之间基于网络的通信
,具体流程如下:
请求与响应流程类似:
计算机网络体系结构中的专用术语
实体
像上图,处于物理层和数据链路层的网卡(硬件)和处于应用层的浏览器进程和web服务器Nginx进程(软件)都是对等实体。
协议
协议三要素
语法、语义、同步