[toc]
前言
此笔记为学习教材《计算机网络》(第7版)-谢希仁以及中国大学MOOC 哈尔滨工业大学 李全龙老师的视频所记录的一些知识点
1.1 计算机网络基本概念
什么是计算机网络?
计算机网络=通信技术+计算机技术
- 通信系统模型:
graph LR
A[信源]-->B[发送设备]
B[发送设备]-->C[信道]
D[噪声源]-->C[信道]
C[信道]-->E[接收设备]
E[接收设备]-->F[信宿]
计算机网络就是一种通信网络
定义:计算机网络就是互连的、自治的计算机集合。
(互连:无主从关系 互联:通过通信链路完成互联互通)
主机距离远、数量大需要通过交换网络互连主机
交换网络中的交换节点:路由器或交换机
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705191419376.png" width="30%"/></center>
-
Internet组成细节角度
全球最大的互联网络 IPS网络互连的“网络之网络”
计算设备集合:主机(hosts)=端系统(end systems)
通信链路:光纤、铜缆、无线电、卫星......
分组交换:转发分组(数据包) 路由器和交换机
-
Internet服务角度
为网络应用提供通信服务的通信基础设施:Web、VoIP、email、网络游戏、电子商务...
为网络应用提供编程接口(API):支持应用程序“连接”Internet,发送/接收数据;提供数据传输服务...
然鹅,仅有硬件(主机、通信链路、路由器...)连接,Internet是无法顺畅运行的(无法保证应用数据有序交付),因此协议
什么是网络协议?
网络协议主要是为了让网络资源物尽其用。
-
协议是计算机网络有序运行的重要保证
硬件
计算机网络中的数据交换必须遵守事先约定好的规则
网络协议(network protocol),简称协议,是为进行网络中的数据交换而建立的规则、标准。
协议规定了通信实体之间所交换消息的格式、意义、排序以及针对收到信息或发生事件所采取的“动作”。
-
协议的三要素
-
语法(Syntax)
数据与控制信息的结构或格式
信号电平(底层信息)
-
语义(Semantics)
需要发出何种控制信息
完成何种动作以及做出何种响应
差错控制
-
时序(Timing)
事件顺序
速度匹配
-
-
协议是计算机网络的重要内容
-
协议规范了网络中所有信息的发送和接收过程
eg: TCP , IP , HTTP , Skype , 802.11
学习网络的重要内容之一
网络创新的表现形式之一
-
Internet协议标准
- RFC:Request for Comments(权威)
- IETF:互联网工程任务组(Internet Engineering Task Force)
-
1.2 计算机网络结构
计算机网络结构
网络边缘
-
主机
- 位于“网络边缘”
- 运行网络应用程序,例如:web,email
-
网络应用
-
客户/服务器(client/server)应用模型
客户发送请求,接收服务器响应,如:Web应用,文件传输FTP应用
-
对等(peer-peer,P2P)应用模型
无(或不仅依赖)专用服务器
通信在对等实体之间直接进行
如:Skype,QQ
-
接入网络(物理介质)
- 有线或无线通信链路
接入网络主要为将网络边缘接入核心网络
接入网络分为:住宅/家庭接入网络;机构接入网络(学校企业等);移动接入网络
用户关心的是:带宽(bandwidth,bps) ;独占/共享?
举个栗子:
-
栗子一,接入网络:数字用户线路(DSL)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705191649867.png" width="50%"/></center>
1. 家庭用户利用**已有的**电话线连接中心局的DSLAM(数据通过DSL电话线接入Internet,语音/电话通过DSL电话线接入电话网)
2. <2.5Mbps上行传输速率(典型速率<1Mbps) ~上传速度
3. <24Mbps 下行传输速率(典型速率<1Mbps) ~下载速度
4. FDM(利用不同的频带传输):50 kHz- 1MHz用于下行;4 kHz- 50kHz用于上行;0 kHz- 4kHz用于传统通话;
-
栗子二,接入网络:电缆网络
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192154360.png" width="50%"/></center>
FDM频分多路复用:在不同频带(载波)上传输不同频道
HFC:混合光纤同轴电缆(非对称,下行高达30Mbps传输速率,上行2Mbps传输速率)
各家庭设备通过电缆网络→光纤接入ISP路由器(各家庭共享家庭至电缆头端的接入网络;不同DSL的独占至中心局的接入)
-
栗子三,接入网络:典型家庭网络的接入
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192228414.png" width="50%"/></center>
-
栗子四,接入网络:机构(企业)接入网络
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192307888.png" width="50%"/></center>
主要用于公司、高校等组织机构 (个人或家庭也可以用)
典型传输速率:10Mbps,100Mbps,1Gbps,10Gbps
目前,端系统通常直接连接以太网交换机(switch)
-
栗子五,交换网络:无线接入网络
通过共享接入网络连接端系统与路由器 【通过"基站 (base station)"或称为"接入点 (access point)"】
例如,无线局域网(LANs)
- 同一建筑物内(30m)
- 802.11b/g(WiFi):11Mbps\54Mbps传输速率
例如,广域无线接入
- 通过电信运营商(蜂窝网),接入范围几十公里
- 带宽:1Mbps、10Mbps、100Mbps
- 移动互联网
网络核心(核心网络)
互联的路由器(或分组转发设备)
网络之网络
网络核心的关键功能是:路由+转发
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192401433.png" width="50%"/></center>
网络核心解决的基本问题是:用数据交换的方法实现数据源主机通过网络核心送达目的主机
Internet结构
端系统通过接入ISP(access ISPs)连接到Internet,例如家庭、公司和大学ISPs
接入ISP必须进一步互联(这样任意两个主机才可以互相发送分组)
构成复杂的网络互连的网络(经济和国家政策是网络演进的主要驱动力)
当前Internet结构无人能给出精确描述
1.3 网络核心
电路交换
考虑:链路问题,连通性,网络规模
交换的含义:1.动态转接;2.动态分配传输资源;
数据交换的类型:
- 电路交换
- 报文交换
- 分组交换
-
电路交换的特点
- 最典型的交换网络:电话网络
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705235934426.png" width="50%"/></center>
-
电路交换的三个阶段:
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
-
独占资源(释放连接之后电路资源才可被第三方占有)
【然而电路交换网络中,每条电路不是独占其经过的物理链路的,至于电路交换网络如何实现链路共享,这又扯到多路复用】
多路复用
多路复用(multiplexing),简称复用,是通信技术中的基本概念。
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706001117993.png" width="50%"/></center>
- 多路复用:链路/网络资源(如带宽)划分为“资源片”
- 将资源片分配给各路“呼叫”(calls)
- 每路呼叫独占分配到的资源片进行通信
- 资源片可能“闲置”(idle)(无共享)
- 典型多路复用方法:
- 频分多路复用(frequency divsion multiplexing,FDM)
- 时分多路复用(time divsion multiplexing,TDM)
- 时分多路复用(Wavelength divsion multiplexing,WDM)
- 码分多路复用(Code divsion multiplexing,CDM)
-
频分多路复用(FMD)
频分多路复用的个用户占用不同的带宽资源(这的“带宽”是频率带宽(单位:Hz)而不是数据的发送速率)
-
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带
-
时分多路复用(TDM)
时分复用则是将时间划分为一段段等长的十分复用帧(TDM帧),每个用户在每个TDM帧中占用固定序号的时隙。
每个用户所占用的时隙是周期性出现(其周期就是TDM帧的长度)。
-
时分复用的所有用户是在不同的时间占用相同的频带宽度。
-
波分多路复用(WDM)
WDM的实质是FDM
-
码分多路复用(CDM)
详细码分多址(CDMA)
广泛应用于无线链路共享(如蜂窝网,卫星通信等)
-
每个用户分配一个唯一 m bit码片序列(chipping sequence),其中“0”用“-1”表示、“1”用“+1”表示,例如:
S站的码片序列:(-1 -1 - 1 +1 +1 -1 +1 +1)
各用户使用相同频率载波,利用各自码片序列编码数据
-
编码信号=(原始数据) (码片序列)
如发送比特 1 (+1),则发送自己的m bit 码片序列
如发送比特 0 (-1),则发送自己的m bit 码片序列的反码
-
各用户序列相互正交(orthogonal)
此用于判断是否为用户自己的码片序列,令为原始数据序列,各用户的叠加向量为:
-
解码:码片序列与编码信号的内积
例题:站点A、B、C通过CDMA共享链路,A、B、C的码片序列(chipping sequence)分别是(1,1,1,1)、(1,-1,1,-1)和(1,1,-1,-1),若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是 ()
A.000
B.101
C.110
D.111
正确答案是 B
C接收到的是A,B发送过来的叠加码片,C想要看A发送的数据,就将接收到的叠加码片与A的码片序列进行规格化内积操作:(2,0,2,0;0,-2,0,-2;0,2,0,2)每四位与(1,1,1,1)进行规格化内积,(2 * 1+0 * 1+2 * 1+0 * 1)/4=1;(0 * 1+2 * 1+0 * 1+2 * 1)/4=-1,-1即0;(0 * 1+2 * 1+0 * 1+2 * 1)/4=1;可以得到结果101
报文交换与分组交换
-
报文交换(message switching)
报文:源(应用)发送信息整体,比如一个文件
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064307886.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064339694.png" width="50%"/></center>
-
分组交换(package switching)
分组:报文拆出来的一系列相对较小的数据包 (由头+数据包构成)
<center><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="54" height="20"><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="54" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="21" height="20" fill="#555"/><rect x="21" width="33" height="20" fill="#4c1"/><rect width="54" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="115" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="110">头</text><text x="115" y="140" transform="scale(.1)" textLength="110">头</text><text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="230">数据</text><text x="365" y="140" transform="scale(.1)" textLength="230">数据</text></g></svg></center>
分组交换需要报文的拆分与重组
产生额外开销
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064427056.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064516951.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064601183.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064719009.png" width="50%"/></center>
A&B分组序列不确定(不是事先分配好的),按需共享链路(A与B总共带宽是1.5Mb/s)
【PS: “Mbps”,其全称为Million bits per second,意为每秒传输百万位(比特) , Mbps=Mb/s ;MB表示Million Bytes(百万字节) 。】
-
存储转发 (store-and-forward)
报文交换与分组交换均采用存储-转发交换方式(区别:报文交换以完整报文进行“存储-转发”)
分组交换以较小的分组进行“存储-转发”
哪种交换好呢?