返回

计算机网络

nothing here

计算机网络

image-20220907211516207
image-20220907211516207

计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善软件实现资源共享和信息传递的系统。

计网具有的功能包括:数据通信、资源共享、分布式处理、提高可靠性、负载均衡

计算机网络的发展时期:ARPA的ARPAnet->internet->ARPAnet接收TCP/IP->Internet->美国国家科学基金会组建了NSFNET(三层Net)->ISP

计算机网络包括:硬件、软件、协议

工作方式:边缘部分(C/S和P2P方式)、核心部分

根据功能组成分为:通信子网(实现数据通信)和资源子网(实现资源共享和数据处理)

image-20220907213418892
image-20220907213418892

计算机根据分布类型分类可以分为:WAN(交换技术)、MAN、LAN(广播技术)、PAN。按使用者分为公用网和专用网。按交换技术分为电路交换、报文交换、分组交换(使用存储转发)。按拓扑结构分为总线型、星型、环形和网状型。传输技术:广播式、点对点。

RFC到互联网标准的阶段:因特网草案-建议标准(成为RFC文档)-草案标准-互联网标准

相关组织:

image-20220907214635582
image-20220907214635582

性能指标:

  • 速率(数据率、比特率)单位时间传送数据位数的速率
  • 带宽最高数据率
  • 吞吐量单位时间内某个网络的数据量(受带宽或额定速率限制 )
  • 时延从一端到另一端的时间(发送时延(数据长度/信道带宽)、传播时延(传播速度和链路长度)、排队时延 、处理时延)
  • 时延带宽积(传播时延*带宽)链路中的比特量
  • 往返时延RTT(往返传播时延+末端处理时间)从发送方发送数据到发送方收到接收方的确认的时延
  • 利用率(信道利用率数据通过时间/整体时间 网络利用率信道利用率加权和)

利用率增大会使得时延迅速增大。

计网层次结构(根据功能描述)

image-20220907221715359
image-20220907221715359

image-20220907221834268
image-20220907221834268

使用的是TCP/IP4层,标准是OSI7层。

ISO/OSI模型的起源:诸多公司提出体系-ISO提出OSI。

image-20220907222127535
image-20220907222127535

应用层:能和用户交互产生流量。表示层:用于处理在两个通信系统中交换信息的表示方式(语法和语义)。会话层:向表示层的实体/用户进程提供建立连接并在连接之上有序地传输数据(建立同步)。传输层:负责两个进程的通信(端到端通信),传输单位是报文段或用户数据包。网络层“把分组从源传送到目的,以分组交换网上不同主机提供的通信服务。数据链路层:把网络层的数据报封装成帧。物理层:物理媒体上实现比特流的透明传输。

OSI和TCP/IP的不同点在于:

image-20220907230317266
image-20220907230317266

我们学的是这个:

image-20220907230433133
image-20220907230433133

物理层

image-20220907235955169
image-20220907235955169

物理接口特性考选择题:

image-20220908001903426
image-20220908001903426

数据通信系统的通信方式分三种:单工、半双工、全双工。传输方式分两种:串行传输(速度慢费用低适合远距)、并行传输。传输模式可以分为同步传输(需要先送出同步字符再送出数据)和异步传输(直接将数据分组发送,分布包含终止位和起始位)。

数据通信的术语:

  • 码元:1码元可以携带多个比特的信息量(承载信息量的基本信号单位)
  • 码元传输速率(Baud)、信息传输速率(b/s)。若一个码元携带n bit信息量,则M Baud马原传输速率对应的信息传输速率为M*n bit/s。
  • 带宽:最高数据率bps

失真程度的因素:码元传输速率、信号传输距离、噪声干扰、传播媒体质量

码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象(带宽受限无噪声)

image-20220908223308103
image-20220908223308103

image-20220908223356518
image-20220908223356518

可以得出:码元传输速率有上限,频带越宽,理想速率越高,可以想办法使每个马原携带更多的比特的信号量。但是并没有给出信息传输速率的限制。

香农定理:噪声影响,昕号较强不容易受噪声影响,需要控制信噪比:信号的平均功率/噪声的平均功率S/N=dB:(条件:带宽限制有噪声)

image-20220908223740329
image-20220908223740329

image-20220908223925632
image-20220908223925632

W也是带宽。带宽信噪比越大极限速率越高,只要信息的传输速率低于信道的极限传输速率就有无差错的传输,香农定理给出的是理论的极限传输速率。

奈式准则属于内部问题,香农定理属于外部干扰

编码和调制

image-20220908224358212
image-20220908224358212

近距离使用基带传输,远距离使用宽带信号。

image-20220908224604697
image-20220908224604697

数子数据编码为数字信号:NRZ(非归零编码)、曼切斯特、差分曼切斯特 RZ归零编码NRZI反向不归零编码4B/5B编码(80%效率)

非归零编码不能同步,曼切斯特一个周期变化两次,导致数据传输速率只有调制速率的一般。

image-20220908224954274
image-20220908224954274

数字数据调制为模拟信号

image-20220908225035902
image-20220908225035902

模拟数据转为数字信号:PCM 抽样(采样频率>=2倍信号最高频率) 量化 编码

模拟数据调制为模拟信号,频分复用等技术。

数据交换的方式包括:电路交换、报文交换、分组交换(数据报、虚电路)。

image-20220908225504715
image-20220908225504715

image-20220908230004023
image-20220908230004023

报文交换:

image-20220908230052264
image-20220908230052264

image-20220908230043423
image-20220908230043423

image-20220908230139954
image-20220908230139954

image-20220908230149016
image-20220908230149016

image-20220908230207574
image-20220908230207574

由于分组交换还可以分为数据报方式和虚电路方式

image-20220908230327578
image-20220908230327578

虚电路结合了数据报和电路交换的邮电

image-20220908230409224
image-20220908230409224

image-20220908230421875
image-20220908230421875

image-20220908230439335
image-20220908230439335

传输介质:是设备的物理通路。分为导向性传输介质和非导向型传输介质。对于导向型传输介质,分为:

  • 双绞线:

    image-20220908230743862
    image-20220908230743862

  • 同轴电缆

image-20220908230839279
image-20220908230839279

  • 光纤:带宽远高于前两个,需要激光器和光检测器。传输损耗小、抗干扰强等特点

image-20220908231408112
image-20220908231408112

非导向性传输介质:无线电波、 微波、红外线/激光

image-20220908231335612
image-20220908231335612

物理层的设备只有中继器和集线器:

image-20220908231517051
image-20220908231517051

image-20220908231611110
image-20220908231611110

数据链路层 重要之一

image-20220908231749255
image-20220908231749255

image-20220908232617615
image-20220908232617615

image-20220908232829862
image-20220908232829862

封装成帧和透明传输

image-20220908233137107
image-20220908233137107

透明传输是指在组帧时并不关心其中的内容。组帧的方式很多:

  • 字符计数法:帧首部指出帧长(8位)但是一旦前面出问题后面全部都会故障
  • 字符填充法:使用SOH和EOT来说明帧头帧尾。但是传输的数据可能会包含这两个东西中的内容,所以需要字符填充:发送时在文本中添加转义字符
  • 零比特填充法:首部和尾部均为01111110。数据中出现时只要有连续5个1就填一个0。接收端先找到头尾,发现连续5个1时去除0
  • 违规编码法:在物理层使用不会用到的方式来表示

image-20220908233914147
image-20220908233914147

数据链路层还需要实现差错控制:由于噪声引起,会导致如下问题:

image-20220909222834573
image-20220909222834573

链路层的差错控制可以在任意一个结点实现:

差错控制的方式有奇偶校验、循环冗余校验、海明码

奇偶校验码看1的个数,只能检测奇数个错误。

image-20220909223444584
image-20220909223444584

image-20220909223624772
image-20220909223624772

接收端只需要除以多项式看余数是否为0即可。(接收端数据链路层接收的帧均无差错)

纠错编码——海明码:可以找到错误、找到位置、纠正错误。

检错 纠错
d d
d+1 2d+1

海明码:

image-20220909224423766
image-20220909224423766

image-20220909224507457
image-20220909224507457

image-20220909224528347
image-20220909224528347

流量控制和可靠传输机制(关键是滑动窗口):

流量控制就是匹配发送方和接收方的速度。在链路层的流量控制是点对点的,而传输层的流量控制是端到端的。链路层的流量控制如果接收段收不下就不回复确认而传输层则需要接收端给发送端一个窗口公告。

image-20220909225255965
image-20220909225255965

image-20220909225311355
image-20220909225311355

链路层的窗口数量是固定的。

image-20220909225418944
image-20220909225418944

停止等待协议用于解决丢包问题(每次发送完一个分组就停止发送,等待对方确认)停止等待协议有效,但是信道利用率太低

image-20220909230528829
image-20220909230528829

image-20220909230602243
image-20220909230602243

image-20220909231805210
image-20220909231805210

接收方未收到的帧由超时来处理

image-20220909231923810
image-20220909231923810

image-20220909232342837
image-20220909232342837

GBN中的重点:累积确认;接收方只按序接收;确认序列号最大的、按序到达的帧;发送窗口大小限制。 为了解决需要传输多个数据的问题,就有了选择重传机制。SR需要响应三件事:

image-20220909233445890
image-20220909233445890

对于接收方:无视顺序接收:

image-20220909233733635
image-20220909233733635

SR滑动窗口的限制:过大会导致溢出,过小就没有意义了

image-20220909233947797
image-20220909233947797

信道划分访问介质一系列概念:前面提到了传输数据使用点对点和广播式链路。介质访问控制就是采取措施使得节点之间的1通信不会相互干扰:

image-20220909234343660
image-20220909234343660

FDM对不同通信同一时间使用不同频率,TDM不同通信轮流使用时间,STDM统计需要来进行划分轮流时间(注意,这里的STDM帧是物理层划分的比特流),WDM(对于光纤)类似FDM利用光的频分多路复用,最后一个是CDM码分复用其中包含CDMA(码分多址)的方法

image-20220909234550844
image-20220909234550844

image-20220909234935185
image-20220909234935185

接下来是动态的分配信道(并非在用户通信时固定分给用户),其中的随机访问介质访问控制(都可以占用全部带宽随时发送信息)分为四种协议:纯ALOHA协议,

image-20220911220320589
image-20220911220320589

image-20220911220928797
image-20220911220928797

image-20220911220909514
image-20220911220909514

image-20220911221620355
image-20220911221620355

但是发送如果发生冲突仍然会保持着发送出去。CSMA/CD就比较不错:

image-20220911222217974
image-20220911222217974

通过传播延迟t可以计算出最迟才能知道碰撞的时间2t(争用期、冲突窗口、碰撞窗口)。

image-20220911224055037
image-20220911224055037

image-20220911224446215
image-20220911224446215

CSMA/CA不是重点

image-20220911224920252
image-20220911224920252

image-20220911225331169
image-20220911225331169

image-20220911225409395
image-20220911225409395

最后是轮询访问机制:不产生冲突且在发送时占用全部带宽。主要有轮询协议和令牌

轮询协议就是主结点轮流“邀请”从属结点发送数据(轮询开销、等待延迟(后面的等前面的)、单点故障)。

image-20220911230946846
image-20220911230946846

接下来时局域网基本概念和体系结构(概念多)

image-20220911231523706
image-20220911231523706

image-20220911231643358
image-20220911231643358

常用的还是总线型。

局域网采用MAC方法主要有CSMA/CD、令牌总线(对于总线型按照一定顺序形成逻辑环)、令牌环

image-20220911231846891
image-20220911231846891

关于无线局域网使用的IEEE标准,主要着重与:802.3(CSMA/CD)、802.5(令牌环网)、802.8(光纤技术咨询)、802.11重点

image-20220911232159544
image-20220911232159544

接着是以太网

image-20220911232608892
image-20220911232608892

注意,以太网提供无连接、不可靠的服务(无握手、不编号、不确认、差错帧直接丢弃)

以太网的拓扑在逻辑上是总线型的在物理上是星型的。一些名词

image-20220911232902843
image-20220911232902843

image-20220911232926353
image-20220911232926353

image-20220911233308873
image-20220911233308873

image-20220911233320892
image-20220911233320892

无线局域网的主要是802.11协议,有以下重点

image-20220911234025392
image-20220911234025392

image-20220911234245697
image-20220911234245697

image-20220911234316361
image-20220911234316361

传统的局域网存在广播的流量隔离机制、且难以用户管理、路由器成本较高,所以有了虚拟局域网:

image-20220912223159830
image-20220912223159830

要想实现VLAN的通信,需要借助路由器、三层交换机(存储一个VLAN表)。根据VALN表中存储不同的值端口、MAC地址分为基于端口和基于MAC的VLAN实现(常见基于端口的):

image-20220912224206663
image-20220912224206663

广域网貌似不考了。。。

链路层设备算是一个重点了:物理层扩展以太网的方式包括使用光纤来拓展长度或是使用集线器增加冲突域

image-20220912232343003
image-20220912232343003

两种网桥:

image-20220912232740381
image-20220912232740381

image-20220912233316640
image-20220912233316640

image-20220912233357931
image-20220912233357931

image-20220912233416567
image-20220912233416567

不过常用的是存储转发式交换机(和网桥的效果一样,但是有多个接口),超过生存周期就会消失。

image-20220912233813995
image-20220912233813995

网络层

image-20220912234246688
image-20220912234246688

具有较为复杂的功能,也因此难度较大。好在重点只有基于路由选择的转发。

image-20220912234512612
image-20220912234512612

2022年的新考点:SDN

image-20220912235430803
image-20220912235430803

数据平面只进行转发。控制平面分为传统方法/每路由器法或SDN(软件定义方法 )

image-20220912235626737
image-20220912235626737

image-20220912235821948
image-20220912235821948

image-20220912235902868
image-20220912235902868

SDN需要实现的功能:

image-20220912235933752
image-20220912235933752

image-20220913000105601
image-20220913000105601

路由算法是另一个重点

image-20220913230414460
image-20220913230414460

image-20220913231048936
image-20220913231048936

在进一步了解路由选择算法之前,还需要先了解一下IP数据报格式。TCP/IP协议栈如图

image-20220913231206701
image-20220913231206701

IP数据报格式分为首部和数据部分,而首部又分为固定部分和可变部分。具体的首部如图:

image-20220913231822262
image-20220913231822262

image-20220913231915323
image-20220913231915323

以太网的最大传送单元为1500,所以需要对数据部分进行分片。前面提到了IP数据报的格式,其中标识、标志、片偏移就是与之相关的。

image-20220913232724830
image-20220913232724830

image-20220913233859612
image-20220913233859612

IP地址格式:

image-20220913234651130
image-20220913234651130

image-20220913234713109
image-20220913234713109

image-20220913234813117
image-20220913234813117

nat(网络地址转换)延续了ipv4的生命:在专用网连接到因特网的路由器上安装NAT软件,其至少需要一个外部全球IP地址,工作原理如下:

image-20220913235313559
image-20220913235313559

子网划分用于解决IP地址空间利用率较低和两级IP地址不够灵活的问题,但是子网的多级划分又会导致难以识别的问题,所以又有了子网掩码:

image-20220914000939673
image-20220914000939673

目前常用的子网划分地址就是CIDR,主要是由于B类地址的分配和路由表中项目急剧增长引起的,所以只使用了无分类编址CIDR

image-20220914001100285
image-20220914001100285

CIDR的应用是组成超网:将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合(将所有网络地址求交集)。最长前缀匹配:根据子网掩码与,选择最长网络前缀的路由,越长越详细

然后就是诸多协议了,首先是ARP协议:ARP高速缓存负责存储IP地址到MAC地址的映射,当需要添加MAC地址时添加,如果没有找到对应的MAC时则广播ARP请求分组,其中填充的MAC是下一跳的设备MAC

image-20220914224501157
image-20220914224501157

image-20220914224820506
image-20220914224820506

接着是DHCP:动态分配IP(虽然是应用层协议,但是对于了解网络层比较有用)

image-20220914225826784
image-20220914225826784

ICMP主要用于声明错误:

image-20220914230050180
image-20220914230050180

image-20220914230142079
image-20220914230142079

image-20220914230207068
image-20220914230207068

image-20220914230252452
image-20220914230252452

image-20220914230319837
image-20220914230319837

image-20220914230331141
image-20220914230331141

IPv6彻底解决地址不够用的问题,同时也能提高性能:

image-20220914231204547
image-20220914231204547

image-20220914231217882
image-20220914231217882

IPv6的格式,连续四个0可以用一个0表示,一连串的0可以用冒号取代。IPv6的地址格式分为单播、多播和任播

image-20220914231519820
image-20220914231519820

接下来是路由选择协议RIP、OSPF和BGP

首先是RIP

image-20220914233652447
image-20220914233652447

image-20220914233729477
image-20220914233729477

image-20220914233843539
image-20220914233843539

RIP同样是应用层协议,具体的报文格式可以不记忆,但是要注意其协议中的内容是存储在UDP报文中的。RIP存在一些问题:网络出现故障时比较长的时间才能传送到所有路由器即慢收敛。

接着是OSPF(开放最短路径优先协议)

image-20220914234634642
image-20220914234634642

最后所有的路由器都能建立一个链路状态数据库,即网络拓扑。算法流程如下:

image-20220914234828670
image-20220914234828670

image-20220914234927347
image-20220914234927347

OSPF是网络层协议,放在IP数据报中。

image-20220914235037889
image-20220914235037889

在完成AS内的网关协议之后就有了外部网关协议BGP

image-20220914235126406
image-20220914235126406
image-20220914235147310
image-20220914235147310

image-20220914235229817
image-20220914235229817

image-20220914235254853
image-20220914235254853

BGP报文分版本,主要学习BGP-4:

image-20220914235348595
image-20220914235348595

image-20220915000039146
image-20220915000039146

IP组播:形象说明,分为两种情况:在局域网上硬件组播、在因特网的范围内进行组播

image-20220915222327516
image-20220915222327516

组播的地址如何设计?

image-20220915222507098
image-20220915222507098

关于硬件组播:

image-20220915223539218
image-20220915223539218

组播实现的协议包括IGMP和组播路由选择协议

IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。

image-20220915223807615
image-20220915223807615

image-20220915223919545
image-20220915223919545

常用的算法有:基于链路状态的路由选择、基于距离向量的路由选择和协议无关的组播(稀疏/密集)

移动IP保持IP地址不变:

image-20220915224148491
image-20220915224148491

image-20220915224430045
image-20220915224430045

最后一点就是网络层设备——路由器:

image-20220915224559213
image-20220915224559213

image-20220915224641253
image-20220915224641253

image-20220915224717128
image-20220915224717128

image-20220915224836701
image-20220915224836701

传输层

接近终点了。

image-20220915224920461
image-20220915224920461

传输层只有主机才有

image-20220915225130900
image-20220915225130900

image-20220915225339926
image-20220915225339926

image-20220915225724845
image-20220915225724845

image-20220915225746096
image-20220915225746096

image-20220915225752969
image-20220915225752969

首先是简单的UDP:

image-20220915225845548
image-20220915225845548

image-20220915225906187
image-20220915225906187

UDP会添加一个伪首部用于校验:

image-20220915230014019
image-20220915230014019

image-20220915230132464
image-20220915230132464

接着是TCP:

image-20220915230346125
image-20220915230346125

TCP协议是面向字节流的,发送方和接收方都会设置一个TCP缓存,在发送数据时加入TCP头进行传输。

然后是蛋疼的TCP报文首部格式:

image-20220915230659055
image-20220915230659055

image-20220915230858147
image-20220915230858147

image-20220915231035314
image-20220915231035314

TCP连接建立的方式采用客户服务器方式,需要进行三次握手

image-20220916000427275
image-20220916000427275

image-20220916000504621
image-20220916000504621

连接释放需要四次握手:

image-20220916000646641
image-20220916000646641

TCP实现了可靠传输,即保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。其实现可靠传输的机制是:校验(伪首部)、序号、确认、重传

其它机制或多或少已经有所了解了,一个没有过多说明的是确认机制:服务端和客户端均会维护一个TCP缓存,只有当客户端向服务端发送确认后才会使服务端删除对应的数据缓存,当发送的报文中有部分丢失时,采用累计确认机制,即发送缺失的开头,服务端从开头之后发送而不关心是否后面有没有被成功接收。重传则使用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。

image-20220916001816754
image-20220916001816754

关于这里使用的窗口协议,在数据链路层已经了解过了。

TCP使用滑动窗口机制实现流量控制,

image-20220916002302413
image-20220916002302413

举个例子:

image-20220916222818987
image-20220916222818987

上面是流量控制,下面是拥塞控制(两者不相同):

image-20220916223227918
image-20220916223227918

拥塞控制使用了四种算法:慢 开始、拥塞避免、快重传、快恢复

image-20220916223406355
image-20220916223406355

image-20220916223848184
image-20220916223848184

image-20220916224018055
image-20220916224018055

应用层

image-20220916224244341
image-20220916224244341

image-20220916224345959
image-20220916224345959

image-20220916224410367
image-20220916224410367

image-20220916224426061
image-20220916224426061

DNS算是一个比较重要的应用

域名:

image-20220916224702056
image-20220916224702056

image-20220916225009115
image-20220916225009115

查询方式

image-20220916225024786
image-20220916225024786

为了方便查找,一般都会维护一个高速缓存来缓存域名对应的ip,同时需要设置定时器,进行不断地更新。

FTP是老协议了:

image-20220916225457074
image-20220916225457074

image-20220916225628894
image-20220916225628894

FTP的传输模式只有文本模式:文本模式和二进制模式

邮件主要涉及到了三种协议:

image-20220916230006502
image-20220916230006502

image-20220916230157144
image-20220916230157144

image-20220916230810761
image-20220916230810761

image-20220916231033880
image-20220916231033880

image-20220916231109482
image-20220916231109482

image-20220916231159122
image-20220916231159122

image-20220916231338264
image-20220916231338264

image-20220916231404536
image-20220916231404536

最后一个:

image-20220916231530475
image-20220916231530475

image-20220916231627872
image-20220916231627872

image-20220916231711735
image-20220916231711735

image-20220916231904068
image-20220916231904068

上面显示的是非流水线的传输,连续不断地发送请求就是流水线传输

image-20220916232033019
image-20220916232033019

image-20220916232058979
image-20220916232058979

Licensed under CC BY-NC-SA 4.0