最近在b站发现一个将计算机网络讲的很好的视频,b站链接:https://www.bilibili.com/video/BV1c4411d7jb?p=11
做了一下笔记。
计算机网络第1章(概述)
1.1、计算机网络在信息时代的作用
-
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施;
-
计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分。
1.2、因特网概述
1、网络、互连网(互联网)和因特网
网络:网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
互连网(互联网):多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。因此,互联网又称为“网络的网络(Network of Networks)”。
因特网:因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
internet与Internet的区别
internet(互联网或互连网)是一个通用名词,它泛指多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络互连而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。
任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网(internet) ,而不是互联网(Internet)。
2、因特网发展的三个阶段
因特网服务提供者ISP
(I
nternet S
ervice P
rovider)
普通用户是如何接入到因特网的呢?
答:通过ISP接入因特网
ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人
只需缴纳费用,就可从ISP的得到所需要的IP地址。
因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网。
中国的三大ISP
:中国电信,中国联通和中国移动
基于ISP的三层结构的因特网
一旦某个用户能够接入到因特网,那么他也可以成为一个ISP,所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户可以和他相连。
3、因特网的标准化工作
-
因特网的标准化工作对因特网的发展起到了非常重要的作用。
-
因特网在指定其标准上的一个很大的特点是面向公众。
-
因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;
-
任何人都可以随时用电子邮件发表对某个文档的意见或建议。
-
-
因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
-
因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
-
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
-
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
-
制订因特网的正式标准要经过一下4个阶段:
(1)因特网草案(在这个阶段还不是RFC文档)
(2)建议标准(从这个阶段开始就成为RFC文档)
(3)草案标准
(4)因特网标准
4、因特网的组成
-
边缘部分
由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
-
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
路由器是一种专用计算机,但我们不称它为主机,路由器是实现分组交换的关键构建,其任务是转发收到的分组,这是网络核心最重要的部分。
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)。
端系统在功能上可能有很大的差别:
1 小的端系统可以是一台普通个人电脑,具有上网功能的智能手机,甚至是一个很小的网络摄像头。
2 大的端系统则可以是一台非常昂贵的大型计算机。
3 端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个ISP。
补充:
端系统之间通信的含义
“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通
信”。即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。简称为“计算机之间通信”。
端系统之间的通信方式通常可划分为两大类:
客户-服务器方式:
-
客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。
-
客户 - 服务器方式所描述的是进程之间服务和被服务的关系。
-
客户是服务的请求方,服务器是服务的提供方。
服务请求方和服务提供方都要
对等连接方式:
-
对等连接 (peer-to-peer,简写为 P2P ) 是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
-
只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信。
-
双方都可以下载对方已经存储在硬盘中的共享文档。
使用网络核心部分所提供的服务。
1.3 三种交换方式
网络核心部分是互联网中最复杂的部分。
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
1、电路交换(Circuit Switching)
传统两两相连的方式,当电话数量很多时,电话线也很多,就很不方便。
所以要使得每一部电话能够很方便地和另一部电话进行通信,就应该使用一个中间设备将这些电话连接起来,这个中间设备就是电话交换机。可以将其看作是有多个开关的开关器,可以将需要通信的任意两部电话的电话线路按需接通。
-
电话交换机接通电话线的方式称为电路交换;
-
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
电路交换的三个步骤:
1、建立连接(分配通信资源)
2、通话(一直占用通信资源)
3、释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。
这是因为计算机数据是突发式地出现在传输线路上的。【当用户正在输入和编辑一份待传输的文件时,用户所占用的通信资源暂时未被利用,该通信资源也不能被其他用户利用,通信线路资源就会被浪费】
所以计算机通常采用的是分组交换,而不是线路交换。
2、分组交换(Packet Switching)
在因特网中,最重要的分组交换机就是路由器。它负责将各种网络互联起来,并对接受到的分组进行转发。
通常我们把表示该消息的整块数据成为一个报文。
在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,在每一个数据段前面。加上一些由必要的控制信息组成的首部后,就构成一个分组,也可简称为“包”,相应地,首部也可称为“包头”。
首部包含了分组的目的地址
分组交换机收到一个分组后,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。
主机H2收到这些分组后,去掉它们的首部,将各数据段组合还原出原始报文。
分组从源主机到目的主机,可走不同的路径。
发送方
-
构造分组
-
发送分组
路由器
-
缓存分组
-
转发分组
-
简称为“分组转发”
在路由器中的输入和输出端口之间没有直接连线。
路由器处理分组的过程是:
把收到的分组先放入缓存(暂时存储);
查找转发表,找出到某个目的地址应从哪个端口转发;
把分组送到适当的端口转发出去。
接收方
-
接收分组
-
还原报文
3、报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。
4、三种交换方式的对比
假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间
分析:
电路交换:
-
通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源。
-
一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点;
报文交换:
-
可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。
-
整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。
分组交换:
-
可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
-
构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
1.4 计算机网络的定义和分类
1、定义
计算机网络的精确定义并未统一
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。
-
互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
-
自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用;
-
集合:是指至少需要两台计算机;
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)
互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够
用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
-
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
-
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
2、分类
-
广域网WAN(Wide Area Network)
作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
-
城域网MAN
作用范围一般是一个城市,可跨越几个街区甚至整个城市(5-50KM)
-
局域网LAN
一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
-
个域网PAN
就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
总线型网络
优点:建网容器、增减结点方便、节省线路;
缺点:重负载时通信效率不高,总线任意处出现故障,则全网瘫痪。
星型网络
优点:易于控制
缺点:成本高,中央设备对故障敏感。
环形网络
网状型网络
每个结点至少有两条线路与其他结点相连。
优点:可靠性高
缺点:控制复杂、线路成本高
这几种网络还可以互联为更复杂的网络。
1.5 计算机网络中的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
常用的性能指标有8个:
1、速率
首先先了解比特。
比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
基本单位:bit(b) 比特
常用单位:
8 bit = 1 Byte
KB = 2^10B
MB = K KB = 2^20 B
GB = K MB = 2^30 B
TB = K GB = 2^40 B
速率就是连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率。
基本单位:bit/s(b/s,bps)
常用单位:
kb/s = 10^3b/s
Mb/s = K Kb/s = 10^6 b/s
Gb/s = k Mb/s = 10^9 b/s
Tb/s = k Gb/s = 10^12 b/s
例1:有一个待发送的数据块,大小为100 MB,网卡的发送速率为100 Mbps,则网卡发送完该数据块需要多长时间?
注意!!
数据单位bit中K = 2^10B
数据单位bit中K = 10^3B
所以在计算过程中二者存在一定差距,不要弄错了。
2、带宽
带宽在模拟信号系统中表示的是:信号所包含的各种不同频率成分所占据的频率范围,也就是传输过程中最大频率与最小频率的范围。
带宽中计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一个点所能通过的“最高数据率“。
单位:b/s(kb/s, Mb/s, Gb/s, Tb/s),与速率相同。
其实,“带宽” 的这两种表述之间有着密切的联系。一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
3、吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制。
4、时延
(1)发送时延
源主机将分组发送出去产生的时延。
计算方式: 分组长度(b) / 发送速率(b/s)。
发送速率 = min[网卡发送速率,信道带宽,交换机或路由器的接口速率]
发送效率是一个短板效应,由速率最低的模块决定,所以在选择网线、路由器等设备时,要考虑到整体的速率平衡问题。
(2)传播时延
分组在线路中传播产生的时延。
计算方式:信道长度(m) / 电磁波传播速率(m/s)
(3)处理时延
路由器收到分组后对其进行存储转发产生的时延。
一般不方便计算。
例1:数据块长度为100MB,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延。
发送时延=100M*8/1M = 100乘2^20乘8/10^6=838.8608(s)
传播时延=1000000/200000000=0.005(s)
例2:数据块长度为1B,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延。
发送时延=1*8/1M = 8/10^6=0.000008(s)
传播时延=1000000/200000000=0.005(s)
在处理时延不计的情况下,不能想当然的认为发送时延占主导或者传播时延占主导。
5、时延宽带积
传播时延和带宽的乘积。
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。实际上就是一个比特到达终点的单位时间内传输的比特个数。
链路的时延带宽积又称为以比特为单位的链路长度。
6、往返时间RTT
一个网络请求双向交互一次所需的时间。往返时间RTT也是一个重要的性能指标
可以更好的了解到网络的情况。
7、利用率
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率是全网络的信道利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增大。因此,信道利用率并非越高越好。
如图所示:
当网络利用率达到50%时,时延就要加倍。
当网络利用率超过50%时,时延就急剧增大。
当网络利用率接近100%时,时延趋于无穷大。
因此要控制信道利用率不超过50%,否则就要准备扩容。
8、丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
分组丢失主要有两种情况:
(1)分组在传输过程中出现误码,被结点丢弃。
(2)分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞。
丢包率反映了网络的拥塞情况。
无拥塞时丢包率为0;轻度拥塞时丢包率为1%—4%;严重拥塞时丢包率为5%-15%。
1.6 计算机网络体系结构
1、常见的计算机网络体系结构
是法律上的国际标准。
TCP/IP体系结构
是实际上的国际标准。
TCP/IP体系结构相当于:将OSI结构的物理层和数据链路层合并成为网络接口层,去掉了会话层和表示层。
在TCP/IP协议中的网络接口层并没有规定什么具体的内容,目的是为了允许任何形式的网络接口使用TCP/IP协议。
所以实际上TCP/IP协议只有三层:网际层、运输层、应用层。
IP协议可以将不同的网络接口进行互联,并向其上的TCP协议和UDP协议提供网络互联服务。
而TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠传输服务。
UDP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠传输服务。
此种结构的出现时便于学习。
此种结构相当于把TCP/IP协议中的网络接口层还原成数据链路层、物理层。网际层还原成网络层。
在接下来的学习中主要使用该种模型。
2、计算机网络结构分层的必要性
(1)计算机网络是个非常复杂的系统
(2)“分层”可将庞大而复杂的问题,转化为若干较小的局部问题
基于以上原因选择对计算机网络进行分层。
其中各层的主要解决问题:
(a)物理层
采用怎样的传输媒体(介质)?
采用怎样的物理接口?
使用怎样的信号表示比特0和1?
解决以上问题后就可以实现01信号在计算机之间的传输。
(b)数据链路层
如何标识网络中的各主机(主机编址问题,例如MAC地址)?
如何从信号所表示的一连串比特流中区分出地址和数据?
如何协调各主机通信(例如,各主机争用总线,交换机的实现原理)?
解决此问题后可以实现分组在一个网络上传输。
(c)网络层
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)?
路由器如何转发分组,如何进行路由选择?
解决此问题后可以实现分组在网络间传输。
(d)运输层
如何解决进程之间基于网络的通信?
出现传输错误时如何处理?
解决此问题后可以实现进程之间基于网络的通信。
(e)应用层
通过应用进程间的交互来完成特定的网络应用。
例如:支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议。
解决此问题后可以实现计算机网络所解决的所有问题。
在此一层一层的问题解决中边逐步从物理层、数据链路层、网络层、运输层、应用层结局问题,实现目的,这也是分层思想解决问题的最好提现。
3、计算机网络体系结构分层思想举例
在五层结构中,各层负责任务如下:
应用层:按照http请求的协议,构建报文。然后交付给运输层处理。
运输层:给http请求加上一个头部,使其成为一个TCP报文段。其头部的作用是识别进程和实现可靠传输(TCP的特点)。而后交给网络层处理。
网络层:给TCP报文段加上一个IP头部,使其成为IP数据报。其首部作用是为了使该数据段可以在互联网上传输。而后将其交付给数据链路层处理。
数据链路层:给IP数据报添加一个首部和一个尾部,使其成为帧(按帧传输)。其首部的作用是使其能够在一段链路或者网络上传输,以及被目的交换机接收并处理。其尾部的作用是为了让目的主机检查是否有误码。最后将其交给物理层。
物理层:将帧看作是比特流(01编码),由于是在以太网传输,因而给其加上前导码,便于传输。并且将其变成相应的信号发送到传输媒体。
此时,发送端处理结束。接收端的过程就是发送端的逆过程。
4、计算机网络体系结构中的术语
(1)实体:实体是指任何可发送或接收信息的硬件或软件进程。
对等实体是指通信双方相同层次中的实体。
在此图中,A、B等是实体,A、F是对等实体。
(2)协议:协议是控制两个对等实体进行逻辑通信的规则的集合,例如TCP/IP协议。
协议的三要素:语法,语义,同步。
语法定义所交换信息的格式。例如,IP数据报的格式。
语法定义了所交换信息由那些字段以及何种顺序构成。
语义定义通信双方所要完成的操作。例如,主机HTTP的GET请求给Web服务器,Web服务器收到后执行相应的操作,然后给主机发回HTTP的响应。
同步定义通信双方的时序关系。例如,TCP的“三报文握手”建立连接。
应用层:报文(message)
运输层:TCP报文段(segment)或UDP用户数 据报(datagram)
网络层:分组(packet)或IP数据报
数据链路层:帧(frame)
物理层:比特流(bit stram)
以上的便是各层的协议数据单元PDU。
协议对于实体来说是抽象的,看不见内在,只能看见提供的功能。
服务:在协议中,每层不但要实现本层协议,还要使用下一层所提供的服务。并且在协议的控制下,两个对等实体间的逻辑通信要是的本层能够向上一层提供服务。
协议是水平的,服务是垂直的。
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
数据链路层的服务访问点为帧的“类型”字段。
网络层的服务访问点为IP数据报首部中的“协议字段”。
运输层的服务访问点为“端口号”。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令。
服务数据单元SDU:同一系统内,层与层之间交换的数据包。
多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。