本次计算机网络学习的教程来自中科大郑烇老师,由于体系不同,遂与财院课程分开记笔记。
https://www.bilibili.com/video/BV1JV411t7ow
网络概论:
什么是internet:
inter(继)net-网继/互联网:由很多网络组成的网络;并不是一个平面或是一个网络,是由一堆网络构成的,这些网络通过网络互联设备——路由器连接在一起的网络的网络。并且不同的网络所处的层次不同
网络:
包括节点和边,蜘蛛网是网络,神经网络也是网络,神经元是网络的边,树突轴突是神经网络的点。人与人之间的关系网也是网络。所以网络是节点和边它们之间的关系。蜘蛛网是节点和边构成的、与大小形状无关的拓扑。
计算机网络:
a.包括主机节点,如手机、电脑、联网的冰箱和web服务器,他们是数据的源和目标。
b.数据交换节点如路由器、交换机,它既不是源也不是目标,它以提前设定好的工作方式转发数据。他们(路由器和交换机)只是工作层次和作用不同,这些设备是节点,但不是源与目标,是数据的中转节点
通过中转节点的相互配合,最后完成从源节点到目标节点。
c.链路将节点连接起来,最后大家共同构成一个网
d.所以由联网的、节点和边构成的系统我们称其为计算机网络
节点如上分为两类,链路也被分为两类。
a.主机通过以太网网线接入最近的一个交换机,被称为接入网链路(access link)。即主机连接到互联网的链路
b.路由器和路由器之间,路由器和交换机之间被称为骨干链路/主干链路(Backbone)
除了构成互联网的这些零件外(节点和边)还有——协议。协议指的是支撑互联网工作的重要的标准。
互联网:
互联网的协议是以TCP协议、IP协议为主的一簇协议,由这些协议支撑起工作的那个网络、就叫互联网。
数以十亿计的互联的计算设备:主机=端系统(end saystem / host) 他们运行网络应用程序
通信链路:网线、光纤本身、无线电、卫星还有在它们之上支撑他们运转的链路层的协议,重要指标是带宽(bps(bit per second))即每秒钟传输的位
协议:对等层的实体在通讯过程中遵循的规则的集合
网络协议:机器之间的协议而非人与人之间的协议
互联网中所有通信行为都受协议制约
协议定义了两个或多个通信实体之间的交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作

上述是从组成的角度看,而如果从服务的角度来看
互联网是分布式的应用进程以及为分布式应用进程提供通讯服务的基础设施。基础设施包括主机、应用层以下的所有协议实体、目标主机当中的应用层之下的所有应用实体
从“某一个主机”的角度来看的话、互联网是“我、对方、对方应用进程还有底下的所有为我们提供通讯服务的基础设施、(我)主机应用层以下的协议实体、对方主机所有应用层以下的所有应用实体,以及所有的网络”
互联网就是基础设施和分布式的应用。
分布式的应用是网络存在的理由,另一个组成就是为分布式应用服务的基础设施。
基础设施向分布式应用提供服务的方式:
通信基础设施为apps提供编程接口(通信服务)
操作系统向应用进程提供通讯服务的api被称为网络api
应用进程借助本机操作系统提供的网络api可以和对方的应用进程进行通讯、建立连接发送报文,也可以通过这个api接受对方发送给本机的报文
事实上分为两种(在互联网中):连接/无连接
面向连接:TCP/IP协议
面向应用进程提供的无连接服务:UDP协议
网络结构:
由三部分组成
网络边缘(core):主机和主机上运行的分布式应用程序(客户端和服务器)
运行网络应用,如游戏、电子商务、管理系统。
边缘系统上面存在运行的应用是网络存在的理由。
网络核心(edge):互联着的路由器、网络的网络
构建可复用的链路,构建出有效的通讯网络,达成节点与节点之间的通讯关系
网络核心的作用是数据交换的作用。
接入网、物理媒体(access):有线或者无线通信链路
作用是将边缘的主机系统接入互联网

基础设施:
基础设施为分布式应用提供通信服务
网络核心 应用层之下 主机系统之下 都属于基础设施
从服务 应用进程的角度看,上面是应用、所有的下面(主机的下面、网络、对方主机的应用层之下)都叫基础设施
网络边缘:端系统(主机)
网络边缘是分布式的应用 和 支持分布式应用的"一部分基础设施"
(这也是为什么上图的网络边缘的主机要画成上下两部分)
端系统(主机):
- 运行应用程序
- 如Web、email
- 在"网络的边缘"
应用进程之间通讯的模式有两种:
应用进程之间的两种通讯模式:
客户端/服务器模式(cs模式)
- 客户端向服务器请求、接收服务
- 如Web浏览器/服务器;email客户端/服务器
- 服务器是主要的地位,客户端是从地位
- 客户端主动请求服务器的资源
- 客户端是后运行起来的,服务器先运行
客户端/服务器模式主要的问题就是可扩展性与可靠性的问题
对等(peer to peer/p2p)模式
peer 对等体 也是一个分布式的应用进程
比如一个迅雷的客户端,我作为一个peer 对等体,别人可以请求我所具备的资源,在这个会话上、我也可以向他提供这个文件的服务,对于他来说我是服务器,同时我向另外一个peer节点请求文件的另外一个片段,所以我也是客户端。
所以这个任务就分布下来了,每个节点即是客户端,也是服务器。
随着peer节点的增多,请求资源的节点也随之增多、但同时提供资源的节点也增多。同时节点是分布式的、不存在cs模式的致密性的缺陷,在可扩展性上相对没有缺陷
而不管是哪种模式,都要借助于基础设施提供的通讯服务
基础设施为网络应用提供的通信服务又有两种方式
基础设施向分布式应用提供服务的方式:
第一种就是面向连接的通讯方式
TCP - 传输控制协议(Transmission Control Protocol)
TCP就是面向连接的通讯方式
两个应用进程通讯之前握手,两者做好准备,底层的协议栈做好准备,为后面的通讯要分配好相应的资源,要做好合适的设置。
这是一种面向连接的方式,面向连接和有连接是有区别的。
面向连接:应用进程知道、底层的协议栈、TCP实体知道、连接的对方的应用进程、协议栈TCP知道,网络不知道,通信的状态只在端系统当中维护。仅仅是端系统维持连接状态。
有连接不同,不仅他们知道,中间的通信节点也要维护他们的通信状态。
TCP向上层提供服务的特性:可靠的、保序的
可靠性:一边提交什么,对方就能收到什么。不出错、不重复、不丢失、不乱序
但是落实到物理传输上难免出现错误(下层提供的服务不可靠),要靠TCP自己的机制保证可靠
靠空间资源、时间资源、复杂性把下层的不可靠变成可靠。(确认和重传)可靠地、按顺序地传送数据
还有个机制是流量控制,如果服务器性能过强,客户端性能较弱,如果流量发送太快对方来不及处理就会出现问题。TCP提供的特性支持客户端的协议实体发送反馈,让服务器调节发送的流量大小。
如果目前的情况是服务器发的快,客户端接受的快,但是一条或多条网络路径堵塞,在交换节点处没办法处理过来,就会产生数据的丢失。所以除了考虑接收方的处理能力,还要考虑网络路径的通行能力
所以还有个机制是拥塞控制(congestion control)发送方发送快、接收方可以处理、但是TCP实体可以感受到路径当中的通断的情况,如果比较通畅那就可以让应用进程发的快一些,比较堵塞就慢一些。
第二种就是面向应用进程的协议
UDP - 用户数据报协议(User Datagram Protocol)
守候在UDP之上的两个应用进程、它们两者的通讯是无连接的
如果应用进程采用的是UDP来交互的话、那么基础设施向应用进程提供的服务是无连接的
UPD向应用进程提供的服务无连接、不可靠、没有流量控制、没有拥塞控制
UDP向上层提供服务的特性:
UDP把主机到主机的通信(通过UDP的端口)细分为进程到进程
不可靠。没有TCP庞大的时间代价
无连接。进行事物查询的时候不需要连接,TCP建立连接的时候UDP都查完了
适合网络实时多媒体应用。
使用TCP的应用:
- HTTP(Web)
- FTP(文件传送)
- Telnet(远程登录)
- SMTP(Email)
使用UDP的应用:
- 流媒体
- 远程会议
- DNS
- Internet电话
不管是哪种协议,都没有好坏之分,只有针对应用进程的合适与否
网络核心:
网络核心的组成是交换节点和链路,作用是进行数
据交换
数据交换的形式有两种:
网络核心的两种数据交换形式:
电路交换/线路交换(Circuit Switching)
基本上用于电话网、为每个呼叫预留一条专有电路
打电话之前要建立和目标电话的电路连接(特别是固网的电话)
两个电话在通讯之前要建立一个物理的线路,这个线路就分配给这两个电话了。
两个边缘主机要通讯首先要通过信令系统,在网络核心当中为两者之间的通讯分配一条独享的线路。
交换节点与交换节点之间的通信链路带宽比较大,可以采用各种方法分解成若干个小片(pieces),如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)。
两个主机的通讯,从中间的每个链路中挑出一个没有使用的一片,那么主机到目标主机就有独享的一条线路。
比如分配的是一片64kbps的
独享的链路好处是具有性能保障。坏处是资源共享的能力要差一些
计算机与计算机的连接不是持续性的,具有突发性,比如浏览网页,在浏览的过程中不进行数据的交换,所以使用线路交换是不适合的。
线路交换需要消耗线路建立的时间,通话建立的时间相比于通话很小、是有必要的,而对于计算机花费两秒建立连接可能一毫秒就传输完毕,这是不划算的。
将宽带分成片的方法:频分复用(FDM,Frequency Division Multiplexing)、时分复用(TDM,Time Division Multiplexing)、波分复用(WDM,Wavelength Division Multiplexing)、码分复用(CDM,Code Division Multiplexing)。
频分复用(FDM,Frequency Division Multiplexing):


这个图,其实横过来比较好可能
两个数据交换节点之间的链路带宽比较宽的时候,他的可用通讯频率的覆盖范围是上面这一段

时分复用(TDM,Time Division Multiplexing):
划分时间片:
就是首先需要同步,大家公用一个时间基准,比如把每秒分为十份,每份0.1秒,这就是十个时隙,每个时隙只给一个用户使用,所以不同用户依次跟基站通信,也就没有了干扰。


波分复用(WDM,Wavelength Division Multiplexing)
采用光纤的方法连接,采用光通讯的方法完成两个节点之间的数据通信
将可用的波段分为若干个小的波段,每个用户使用其中的一个小的波段。

码分复用(CDM,Code Division Multiplexing):
就是不同用户在不同的编码方式下实现通信
例1:
如果大家都用各自的语言说话,有的人说英语,有的人说法语,有的人说中文,那就是码分多址。

例2:
这个有点像谍战片,间谍从一堆信息中,按照事先约定好的密码本,寻找有用的信息。
比如截获的一段信息:

用户A,B用一张挖有小洞的纸牌(编码方式A,B)罩在写满字的纸牌上的时候,你会发现上面写着一句话,如下所示:

简单的理解就如上所述,细了解参考:码分多址(CDMA)的本质-正交之美(这篇文章虽然乍一看很长,但满满干货)
一个例子:
两个通讯节点之间的带宽是1.536Mpbs,使用时分复用分为24个时隙,两个主机在通讯之前建立线路所需时间500ms,传输一个640Kbits的文件需要多长时间

电路交换不适合计算机之间的通讯:
连接建立时间长/计算机之间的通信具有突发性,如果使用线路交换则浪费的片较多(即使这个呼叫没有数据传递,所占据的片也不能被别的呼叫使用)/可靠性不高(?)
分组交换(packet switching)
互联网、几乎所有的网络都使用分组交换
以分组为单位,存储转发的方式来实现网络核心的交换作用。
以分组为单位存储-转发方式,资源共享,按需使用
网络宽带资源不再分为一个个片,传输时使用全部宽带
主机之间传输的数据被分为一个个单位,这种单位叫分组(packet)
数据传输的时候打成一个个的包,包在越过每个通讯链路的时候使用带宽的全部,以分组为单位,在每个节点进行存储-转发-存储-转发的方式送到目标主机。这样就导致存储延迟比较高,换来的好处就是共享性。
当a路由器收到很多个分组时,a路由器下载分组需要排队,同样的传出也需要排队。
发送与存储事实上是相同的,是一件事的两个方面,发送端可以是发送端也可以是存储端,发送的时间与存储的时间也是相同的,当两个路由器的距离无限接近,他们之间传输文件的时间不是双倍的,当A路由器刚开始发送数据的时候,B路由器就已经接收到了,所以当A传输完毕,B也就接收完毕了。
一个路由器的输出队列是一个有限值,一直排队,队列用完的时候再来的包就只能丢掉,所以可能发生传送中的分组消失了,可能是某个路由器丢弃了它。
同样的网络资源,在网络主机具有突发性的情况下,分组交换所能承载的主机的数量更多。(按需使用)
网络核心的关键功能:
像ip网这种分组交换的网络而言,网络核心的主要功能有两个:转发与路由
转发是局部的,一个分组交换路由机在一个链路一个端口收到一个分组,查询路由表,决定从某个方向放走,存储下来然后转发(路由表是路由实体(运行中的路由模块)与其他路由器交换路由信息算出来的)所以说路由是全局的,转发是局部的。所以:
转发:将分组从路由器的输入链路转移到输出链路。
路由:路由算法,决定分组采用的源到目标的路径。
分组交换:统计时分多路复用
分组交换其实是一种时分复用,链路上的时间资源分配

绿色给A用,蓝色给B用,白色空闲。也是一种划分时间片的复用方式。
只不过时分复用划分时间片的方式是固定的,分组交换是随机的,没有固定的模式。这种多路复用的方式被称为统计时分多路复用(统计多路复用)(statistical time division multiplexing,STDM)。
分组交换按照网络层的连接有无分为两种方式
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
数据报网络:
源主机发向给目标主机的分组,携带了目标主机的完整地址,交换节点收到这个分组,根据每个分组所携带的完整地址来进行存储转发,两个主机在通讯之前不需要握手,每个分组的传递都是独立的。就像寄信一样,每个信件上都有独立的地址,邮寄公司需要对每个信单独处理
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类型:回路
- internent
虚电路网络:
虚电路方式就像打电话,主机和目标主机通讯之前要握手,在交换节点之间保持通讯的状态,建立起虚拟的线路,每个分组携带了一个虚电路号,每个分组按照虚电路号标识,到交换节点的时候存储转发。
- 每个分组都标签有虚电路标识VCID,标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
数据报(datagram)的工作原理
源主机发送给目标主机的数据封装成一个个的分组,在无连接的网络中被称为数据报,每个数据报都携带主机B的完整地址,每经过一个路径的时候像ip分组一样把目标ip等取出来匹配路由表,决定向哪个方向转,每个节点都如是。一条一条存储转发,每个分组独立传送。
源主机传送给目标主机的一系列分组,有没有可能走的是不同的路径,因为路由表是变动的。
路由器不维护主机与主机之间的通讯状态,只负责转发。
虚电路(Virtual Circuit)的工作原理
虚电路是如何建立起来的:依靠信令,控制信息的传递

虚电路建立起来之后,在每个经过的节点中都有相应的虚电路表项,和它相对应。建立好之后源主机发送的所有分组的标识都以虚电路号表示,分组在路径上经过多次存储-转发、最终到达目标主机。(在这个过程中虚电路号有可能变化)虚电路在主机1、主机4、中间节点中都有标识,维护了两个主机之间的连接。
接入网和物理媒体
在核心网、接入网中存在物理媒体
接入网的作用是接入边缘的端系统进行数据交换,实现端到端的通信
接入的方式从实用的角度有住宅的接入与单位的接入,除了有线还有无线的方式、无线分为无线局域与无线广域
接入的重要指标是 带宽(bps) 和 共享与独享
住宅接入:Modem
调制解调器(Modem/猫):将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来调制解调器是Modulator( 调制器 )与Demodulator( 解调器 )合并的简称
占用电话线资源进行通讯,只使用4kHz的带宽。
因为人的说话频率基本上为300Hz-3400Hz,所以以前的电话带宽是4kHz。
另外一种方式也使用调制解调
接入网:DSL
它也使用电话线,只是0Hz-4kHz用于语音通话,然后4kHz-50kHz上行,50kHz-1MHz下行,我们将其称为DSL。数字用户线(DSL)调制解调器是一种用于将个人计算机(PC)连接到Internet的调制解调器。如果其上下行是不对称的,将其称为ADSL,其扩展了4kHz以上的频率。
还有一种方式是有线电视公司提供的方式:
接入网:线缆网络
有线电视公司也有类似于电话线的资源,有线电视通入电缆收到公司的广播,只不过其为单向的,是公司向所有用户的广播。切节目其实就是在广播频段当中跳转。
将其数字化-进行双向改造(原来的线缆只能传输下行)-所以部分传输电视信号、部分带宽用来传输互联网的上行数据、部分用于传输下行。[使用频分多路复用(FDM)的方式分频段传输电视信号和上网数据(上下行)]其上行是用户通过modem接入后通过 接入控制 的方式来协调使用上行带宽,上行带宽是共享的。下行带宽都是通过头端向下送达的。
以这种方式接入互联网是共享的带宽。
事实上电力公司的线缆资源也可以用于上网,不过国内使用情况较少。
其需要在终端安装电力猫(Power Line Communication,PLC)
有线电视公司所提供的接入服务,越往上游越是光纤、越往下游越是通路电缆。他的带宽划分是非对称的。
混合光纤同轴电缆(Hybrid Fiber Coax,HFC):由传统有线电视网引入光纤后演变而成的一个双向的媒体共享式的宽带传输系统。在前端与光节点之间使用光纤干线,而光节点至用户驻地则沿用同轴电缆分配网络。
线缆和光纤网络将各个家庭用户接入到ISP(有线电视公司)路由器,用户通过电缆调制解调器(或线缆调制解调器 Cable Modem)接入网络,互联网提供商就是有线电视公司
住宅接入:电缆模式
cable modem的
https://www.bilibili.com/video/BV1JV411t7ow?p=6
1745
本笔记内直接或间接引用了如下内容:
- CSDN-频分复用、时分复用、码分复用、复用和多址的区别_Mr DaYang:
https://blog.csdn.net/m0_46204224/article/details/106062968