计算机网络 --- 概述(学习笔记)
笔记来源于bilibili湖科大教书匠的计算机网络微课堂:计算机网络微课堂(有字幕无背景音乐版)哔哩哔哩bilibili
1. 概述
1.1 计算机网络在信息时代的作用
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
1.2 因特网概述
网络、互联网(互连网)和因特网
因特网发展的三个阶段
因特网的标准化工作
因特网的组成
1.2.1 网络、互联网(互连网)和因特网
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网。因此,互连网是网络的网络(Network of Networks)
因特网(Internet)是世界上最大的互联网络(用户数以亿计,互联的网络数以百万计)。
internet与Internet的区别:
internet(互连网或互联网):是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
Internet(因特网):是一个专用名词,它指当前全球最大的,开放的,由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族做成通信的规则,其前身是美国的ARPANET。
1.2.2 因特网发展的三个阶段
1969:从单个网络ARPANET向互联网发展
1969年,第一个分组交换网ARPANET
70年代中期,研究多种网络之间的互连
1983年,TCP/IP协议成为ARPANET的标准协议(因特网诞生时间)
1985:逐步建成三级网络的因特网
1985年,NSF围绕六个大型计算机中心建设NSFNET(主干网、地区网和校园网)
1990年,ARPANET任务完成,正式关闭
1991年,美国政府将因特网主干网交给私人公司经营,并开始对接入因特网的单位收费
1993年:逐步形成了多称此ISP结构的因特网
1993年,NSFNET逐渐被若干个商用因特网主干网代替;政府机构不再负责因特网运营,让各种因特网服务提供者ISP(Internet Service Provider)来运营
1994年,万维网WWW技术促使因特网迅猛发展
1995年,NSFNET停止运作,因特网彻底商业化
因特网服务提供者ISP:
我国主要的ISP:中国电信,中国联通,中国移动
基于ISP的三层结构的因特网:
1.2.3 因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用
因特网在指定其标准上的一个很大的特点是面向公众
因特网所有的RFC(Request For Comments)技术文档都可以从因特网上免费下载;(Index of /rfc)
任何人都可以随时用电子邮箱发表对某个文档的意见或建议
因特网协会ISOC是一个国际性组织,她负责对因特网进行全面管理,以及在世界范围内促进其发展和作用
因特网体系结构委员会IAB,负责管理因特网有关协议的开发
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题
制定因特网的正式标准要经过以下4个阶段:
因特网草案(在这个阶段还不是RFC文档)
建议标准(从这个阶段开始就成为RFC文档)
草案标准
因特网标准
1.2.4 因特网的组成
边缘部分
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
核心部分
由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的(提供连通性和交换)
1.3 三种交换方式
电路交换(Circuit Switching)
分组交换(Packet Switching)
报文交换(Message Switching)
1.3.1 电路交换(Circuit Switching)
想要让所有的电话机都两两相连接是不现实的,若有n部电话机要两两相连,则需要n(n-1)/2 条电线,显然这样是不合理的,于是出现了电话交换机,它相当于一个中间枢纽,将所有电话连接起来。
电话交换机接通电话线的方式称为电路交换
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路地资源
电路交换地三个步骤:
建立连接(分配通信资源)
通话(一直占用通信资源)
释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低
1.3.2 分组交换(Packet Switching)
发送方:构造分组,发送分组
路由器:缓存分组,转发分组
接收方:接收分组,还原报文
在因特网中,最重要的分组交换机就是路由器,她负责将各种网络互联起来,并对接收到的分组进行转发(分组交换)
假设用户H6想要发送一条消息(报文)给用户H2,利用分组交换实现:
把较长的报文分成更短的等长数据段
在数据段的前面,加上一些由必要的控制信息组成的首部(包含了分组的目的地址)后,构成一个分组(包)
各分组经过分组交换机的存储转发(可能会出现分组丢失,误码,重复等问题),最终到达主机H2
主机H2接收到分组后,去掉它们的首部,将各数据段组合还原出原始报文
示意图:
1.3.3 三种交换方式的对比
1.3.4 三种交换方式的优缺点
交换方式 | 优点 | 缺点 |
---|---|---|
电路交换 | 通信时延小;有序传输;没有冲突;适用范围广;实时性强;控制简单 | 建立连接时间长;线路独占,使用效率低;灵活性差;难以规格化 |
报文交换 | 无需建立连接;动态分配线路;提高线路可靠性与利用率;提供多目标服务 | 引起了转发延时;需要较大存储缓存空间;需要传输额外的信息量 |
分组交换 | 无需建立连接;线路利用率高;简化了存储管理;加速传输;减少出错率和重发数据量 | 引起了转发时延;需要传输额外的信息量;对于数据报服务,存在失序、丢失或者重复分组的问题;对于虚电路服务,存在呼叫建立,数据传输和虚电路释放三个过程 |
1.4 计算机网络的定义和分类
1.4.1 计算机网络的定义
计算机网络的精准定义并未统一
计算机网络的最简单的定义是:一些互相连接、自治的计算机的集合
互连:指计算机之间可以通过有线或无线的方式进行数据通信
自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用
集合:指至少需要两台计算机
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬 件互连而成的,而这些硬件并非专门用来实现某-特定目的(例如,传送数 据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据, 并 能支持广泛的和日益增长的应用。
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手 机等智能硬件。
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括 今后可能出现的各种应用)。
1.4.2 计算机网络的分类
按交换技术分类:
电路交换网络
报文交换网络
分组交换网络
按使用者分类:
公用网
专用网
按传输介质分类:
有线网络
同轴电缆:成本低,安装方便,但传输率低,抗干扰能力一般,传输距离短
双绞线:组建局域网时常用,优缺点类似于同轴电缆
光纤:主要用于网络的主干部分,其特点是成本高,安装技术要求高,传输距离长,传输率高,抗干扰能力强,且不会受到电子监听设备的监听等,是组建高安全性网络的理想选择
无线网络
红外线
微波
无线电
按覆盖范围分类:
广域网WAN
属于一个组织,一个单位或一个部门所有
网络一般不对外提供公共服务,管理方便,安全保密性高
组建方便,投资少,见效快,使用灵活应用最普遍的计算机网络
城域网MAN
一般是一个地区或一个城市
局域网LAN
小到一个地区,一个城市,大到一个国家,几个国家乃至全世界
提供大范围的公共服务。因特网就是典型的广域网
与局域网相比,广域网投资大,安全保密性差,传输速率慢
按拓扑结构分类:
总线型网络
星型网络
环形网络
网状型网络
1.5 计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能
常用的计算机网络的性能值表有以下8个:
速率
带宽
吞吐量
时延
时延带宽积
往返时间
利用率
丢包率
1.5.1 速率
比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
常用数据量单位:
8 bit = 1 Byte
KB = 210 B
MB = K · KB = 210 · 210 B = 220 B
GB = K · MB = 210 · 220 B = 230 B
TB = K · GB = 210 · 230 B = 240 B
速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也成为比特率或数据率
常用数据率单位:
bit/s (b/s, bps)
kb/s = 103 b/s (bps)
Mb/s = k · kb/s = 103 · 103 b/s = 106 b/s(bps)
Gb/s = k · Mb/s = 103 · 106 b/s = 109 b/s(bps)
Tb/s = k · Gb/s = 103 · 109 b/s = 1012 b/s(bps)
常见数据量和数据率的例子:
有一个待发送的数据块,大小为100 MB,网卡的发送速率为100 Mbps,则网卡发送完该数据块需要多长时间?
主机甲通过1个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为
10 Mbps
,主机甲分别采用报文交换和分组大小为10 kb
的分组交换向主机乙发送1个大小为8 Mb
(1Mb=106b)的报文。若忽略链路传播延迟、分组头开销和分组拆装时间,则两种交换方式完成该报文传输所需的总时间分别为多少?解:不进行分组时,发送一个报文的时延是\frac{8 Mb}{10 Mb/s}= 800 ms,在接收端接收此报文件的时延也是800 ms,共计1 600 ms。
进行分组后,发送一个报文的时延是\frac{10 kb}{10Mb/s}= 1 ms, 接收一个报文的时延也是1 ms,但是在发送第二个报文时,第一个报文已经开始接收。共计有800个分组,总时间为801 ms。 (答案来源于网络)
1.5.2 带宽
带宽在模拟信号系统中的意义:
信号所包含的各种不同频率成分所占据的频率范围
单位:Hz (kHz, MHz, GHz)
带宽在计算机网络中的意义:
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率
单位:b/s (kb/s, Mb/s, Gb/s, Tb/s)
其实,带宽的这两种表述之间有着密切的联系。一条通信线路的频带宽度越宽,其所传输数据的最高数据率也越高
1.5.3 吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
吞吐量受网络的带宽或额定速率的限制
1.5.4 时延
网络时延分为三种:
发送时延:\frac{分组长度(b)}{发送速率(b/s)}
传播时延:\frac{信道长度(m)}{电磁波传播速率(m/s)}
不同传播材质的电磁波传播速率:
自由空间:3×108 m/s
铜线:2.3×105 m/s
光纤:2.0×108 m/s
处理时延:一般不方便计算
发送时延和传播时延哪个占据主导呢?我们通过以下两个例子来探讨:
可以得出结论:在处理时延不计的情况下,发送时延和传播时延都有可能占据主导,所以需要具体问题具体分析。
1.5.5 时延带宽积
时延带宽积 = 传播时延 × 带宽
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
链路的时延带宽积又称为以比特为单位的链路长度
1.5.6 往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
我们有时很需要知道双向交互一次所需的时间
因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标
过程示意图:
以太网上的用户要和无线局域网中的用户进行信息交互:
往返时间RTT是指从源主机发送分组开始,直到源主机接收来自目的主机的确认分组为止,所需要的时间。
在以上传输过程中,是在以太网上耗时较多,还是在无线局域网上耗时较多,还是在卫星链路上耗时较多?
答案是在卫星链路上耗时较多。一般情况下,卫星链路的距离比较远,所带来的传播时延比较大。
1.5.7 利用率
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此,信道利用率并非越高越好
如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的 假定条件下,可以用下面的简单公式来表示D、Do和利用率U之间的关系: D=\frac{Do}{1-U}
当网络的利用率达到50%时,时延就要加倍
当网络的利用率超过50%时,时延急剧增大
当网络的利用率接近100%时,时延就趋于无穷大
因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率 不超过50%。如果超过了,就要准备扩容,增大线路的带宽
也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用 一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率 保持在一个合理的范围内。
1.5.8 丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包
分组丢失主要有两种情况:
分组在传输过程中出现误码,被结点丢弃
分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞
因此,丢包率反应了网络的拥塞情况:
无拥塞时路径丢包率为0
轻度拥塞时路径丢包率为1%~4%
严重拥塞时路径丢包率为5%~15%
1.6 计算机网络体系结构
1.6.1 常见的计算机网络体系结构
OSI体系结构:法律上的国际标准
TCP/IP体系结构:事实上的国际标准
原理体系结构:适于教学
1.6.2 分层的必要性
计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念
"分层"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理
物理层主要讨论:
严格来说,传输媒体不包含在物理层和体系结构之中
网络的传输信号也不是上图中的方波信号
仅是为了让教学更易于理解
数据链路层主要讨论:
网络层主要讨论:
运输层主要讨论:
应用层主要讨论:
总览:
1.6.3 分层思想举例
主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。
那么,体系结构的各层,在整个过程中起到怎样的作用呢?接下来就让我们一起来探讨探讨吧!
主机端发送一段信息,从自顶向下的顺序来看:
应用层:按HTTP协议的规定,构建一个HTTP请求报文,然后将HTTP请求报文交付给运输层处理
运输层:给HTTP请求报文添加一个TCP首部(区分应用进程,实现可靠传输),使之成为TCP报文段,然后将TCP报文段交付给网络层处理
网络层:给TCP报文段添加一个IP首部(使IP数据报可以在互连网上传输,也就是被路由器转发),使之成为IP数据报,然后将IP数据报交付给数据链路层处理
数据链路层:给IP数据报添加一个首部(让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收)和一个尾部(让目的主机检查所接收到的帧是否有误码),使之成为帧,然后将帧交付给物理层处理
物理层:将帧看作是比特流,由于网络N1是以太网,因此会给比特流前面添加前导码(让目的主机做好接收帧的准备),然后将添加有前导码的比特流变换成相应的信号,发送到传输媒体
信号通过传输媒体到达路由器后,从自下而上的顺序来看:
物理层:将信号变换为比特流,然后去掉前导码,将其交付给数据链路层,这实际上交付的是帧
数据链路层:将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报
网络层:解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口(以便进行转发),然后将IP数据报交付给数据链路层
在路由器到达网络层后,又反过来向下传输:
数据链路层:给IP数据报添加一个首部和一个尾部,使之成为帧,然后将帧交付给物理层处理
物理层:将帧看作是比特流,由于网络N2是以太网,因此会给比特流前面添加前导码(让目的主机做好接收帧的准备),然后将添加有前导码的比特流变换成相应的信号,发送到传输媒体
信号通过传输媒体到达Web服务器后,从自下而上的顺序来看:
物理层:将信号变换为比特流,然后去掉前导码,将其交付给数据链路层,这实际上交付的是帧
数据链路层:将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报
网络层:将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段
运输层:将TCP报文段的首部去掉后,将其交付给应用层,这实际上交付的是HTTP请求报文
应用层:对HTTP请求报文进行解析,然后给主机发回HTTP相应报文
接下来的过程与之前的类似:
HTTP响应报文需要在Web服务器层层封装,然后通过物理层变换成相应的信号,在通过传输媒体传输到路由器,路由器转发该响应报文给主机,主机通过物理层将接收到的信号准换为比特流,之后通过层层封装,最终取出HTTP响应报文。
整体的过程如下图所示:
1.6.4 专用术语
1)实体
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双方相同层次中的实体
2)协议
协议:控制两个对等实体进行逻辑通信(实际并不存在)的规则的集合
协议的三要素:
语法:定义所交换信息的格式(TCP/IP协议,HTTP协议等)
语义:定义收发双方所要完成的操作(主机发送请求,Web服务器响应请求)
同步:定义收发双方的时序关系
两个对等实体进行逻辑通信:
协议的同步:
TCP采用 “三报文握手” 建立连接的过程如下图,通过该图可以看出TCP客户端和TCP服务器之间的时序关系
3)服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要使用下面一层所提供的服务
协议是 “水平的” ,服务是 “垂直的”
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就说,下面的协议对上面的实体是"透明"的
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
数据链路层的服务访问点为帧的 “类型” 字段。
网络层的服务访问点为IP数据报首部中的 “协议字段” 。
运输层的服务访问点为 “端口号” 。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令成为服务原语
协议数据单元PDU:对等层次之间传送的数据报称为该层的协议数据单元
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
多个SDU可以合成为一个PDU;一个SDU也可以划分为几个PDU(因为有时SDU较长,而协议所要求的PDU较短。这时就要对SDU进行分段处理,将一个SDU分成两个或多个PDU来传送;当PDU所要求的长度比SDU还大时,也可将几个SDU合并成为一个PDU)
1.7 章节总结 --- 思维导图
因为笔记是用Markdown写的,编写文章的时候忘记使用Markdown编辑器了,所以有些符号,高亮或者幂函数显示不出来。可以自提PDF版的:
「概述.pdf」https://www.aliyundrive.com/s/rXs9n87kNvj 提取码: lq54 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
计算机网络 --- 概述(学习笔记)相关推荐
- 【计算机网络】学习笔记
[计算机网络]学习笔记 1. 概论 因特网中的服务 计算机网络特点 计算机网络功能 计算机网络的分类 2. 性能指标 体系结构 ISO/OSI参考模型 3. 物理层 传输媒体 物理层的功能 调制 码元 ...
- 计算机、程序和 Java 概述 学习笔记
计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. 计算机包括硬件( hardware ) 和软件( software) ...
- 计算机网络自顶向下学习笔记
计算机网络自顶向下学习笔记 第一章.计算机网络和因特网 1.1什么是因特网 1.1.1具体构成描述 1.1.2服务描述 1.1.3协议 1.2网络边缘 1.2.1接入网 1.2.2 物理媒体 1.3 ...
- 计算机网络协议学习笔记
title: "计算机网络协议学习笔记" url: "https://wsk1103.github.io/" tags: 学习笔记 OSI模型 开放式系统互联通 ...
- 计算机网络网桥思维导图,《王道计算机网络》学习笔记总目录+思维导图
0.思维导图 本篇文章是对<2021王道计算机网络>所有知识点的笔记总结归档 虽说是2021年的 但是这些都是最核心的底层基础知识 过多少年都不会有很大的变化 核心都差不多.欢迎大家关注我 ...
- 银河计算机网络,python学习笔记
python学习笔记 #####################20170820 import os os.chdir('/tmp')#更改目录 os.mkdir('/tmp/dir')#创建目录 o ...
- C语言之概述学习笔记
1,前言 相信计算机专业的同学已经再熟悉不过C语言是一门最基础的语言.学好这门语音,就可谓是行走天下.打遍天下无敌手.如今我们学校也开设了这门课程,还是想记录一下.做个笔记. 之前是学习过py ...
- 《计算机网络》学习笔记 ·001【概述】
注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 文章目录 一.计算机网络在信息时代中的作用 1."三 ...
- 【无标题】我的《计算机网络》学习笔记:第一篇、计算机网络概述
目录 前言 1.互联网概述 1.1 互联网基本特点 1.2 网络.互联网.因特网 1.3 互联网发展的三个阶段 ◼ ISP ◼基于ISP的三层结构因特网 1.4 互联网的标准化工作 ◼ISOC ...
- 计算机网络_学习笔记 索引
(本文为hcbbt个人总结,方便以后复习与查阅.) 开始学习计算机网络了,于是在这里开个坑,经常总结才能达到最好的学习效果. 教材为<计算机网络>第五版(谢希仁 编著),另外<计算机 ...
最新文章
- linux中js文件有乱码,解决node.js读取文件时中文乱码问题
- JQuery Basic Features Quick Walkthrough
- 【转】【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- 消防信号总线原理_消防报警系统中消防模块分类与用途简介
- 微软正在用实际行动告诉你: 拥抱开源,微软是认真的
- shell启动oracle客户端,Shell实现的Oracle启动脚本分享
- Spring 环境搭建与IOC HelloWorld
- C++跨平台开发——SOCKET网络编程中实现客户端对聊
- java fttp连接服务器操作
- ioncube php encode,ioncube 加密
- java.net.ConnectException: no available server
- 如何使用 Windows 电脑向 Android 设备安装 apk 应用
- 【论文阅读】MobileNet V2——MobileNetV2: Inverted Residuals and Linear Bottlenecks
- 在Unity中模仿游戏《江南百景图》中物体的出现效果
- Python - pyecharts:直接将图片保存为 png, pdf, gif 格式的文件
- 6818联网 8266wifi模块(附源码)
- oracle中sum求和
- 申请msn邮箱小方法
- 抖音商家引流的正确方法,抖音商家引流脚本实操教程。
- B2B电子竞价有什么好处?
热门文章
- 如何用zbrush雕刻布料和褶皱
- python3.7安装numpy库_安装了anaconda3,自带numpy库,但不能导入,问题出在哪里?
- easywechat (在thinkphp5中使用easywechat完成微信网页认证)
- android时间格式化
- c语言编程输出皮卡丘,c语言001第一节课程-函数方式输出皮卡丘画 2019-06-24
- echarts绘制函数曲线
- 马云的创业故事及他人生中的摆渡人-微信的兴起和支付宝的至暗时刻(十)
- php 生成指定长度字符串
- 微信小程序云开发 · 从0搭建商业级校园跑腿平台(已开源)
- 服务器2016安装系统教材,Windows Server 2016 正式版安装教程