1. 传递字节数 = 总数据字节数 + 头部开销 + 丢失重传字节数 (自己算)
2. 不妨设分组中有p字节数据,则数据共分为1M/p组,对应于头部开销100*1M/p,因此传输总字节数sum = 100*1M/p + p + 1M,接下来就是一个简单的不等式hh
考察下图中示出的透明桥接器的布局,假定开始时所有的转发表都是空的,试给出在下列的传输序列之后,桥接器B1-B4的每一个转发表的内容: *A给C传送 *C给A发送 *D给C发送
原理:桥在路由表未遍历到目的地会进行广播转发并记录源节点与端口,如果记录后再查询会直接进行转发而不广播
B1:目的地A:端口A,目的地C:端口B2 (无D)
B2:目的地A:端口B1,目的地C:端口B3,目的地D:端口B4
B3:目的地A:端口B2,目的地C:端口C,目的地D:端口B2
B4:目的地A:端口B2,目的地D:端口D (无C)
- 单密钥/对称加密算法:收发双方都使用一个密钥对数据进行加密
- 优点:加解密速度快
- 缺点:1. 密钥数据量大,不易于管理;2. 对密钥传输有更高的安全性要求; 3. 无法支持数据签名
- 非对称加密:加解密使用不同的密钥,私钥由一方安全保管,不能泄露,公钥可以发送给任何请求它的人
- 优点:1. 密钥管理量小; 2. 加解密分离,保证私钥安全; 3. 支持数据签名
- 缺点:加解密速度慢
- RSA是非对称加密
- 公钥(e = 11, n =15),私钥(e = 3 , n = 15),明文10加解密结果均为10
原理:基于内容访问的局部性,20%的内容吸引了80%的访问。内容分发网络CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发和调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
优势:当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。可以减轻local服务器的负载,也可以使用户更快速访问到需要的信息,从而提升用户感知服务质量,也可以节约成本。
简答:1. 减少延迟和网络丢包; 2. 减轻服务器负载和网络拥塞; 3. 增加服务可扩展性和稳定性 4. 降低运营成本
劣势:在DNS查询过程中有这样一个问题,权威服务器接收请求的时候,只能得到localDNS的IP,并不知道client IP。一般如果Local DNS设置不当,例如没有使用当前ISP提供的Local DNS,这种实现方法可能会误判用户的位置,从而将用户误导到错误的CDN缓存节点,造成加速效果差的问题。
简答:1.由于服务器不知道客户端IP位置,可能将用户误导至错误的CDN节点;2.服务器端和缓存服务器可能会有不同步的情况(ps:边缘缓存通病
避免:可以利用end-user mapping的技术,通过client IP地址的前缀,来对client进行表示识别。
1. 网络管理
DCN是一个的管理域,而互联网是由许多自治系统组成
DCN使用集中控制和路径选择,而互联网使用分布式的控制和路由
DCN从源到目的由多个路径,而互联网是单个最短路径路由
2. 协议设计
DCN使用多种传输控制协议,如TCP In-cast,SWIFT,而互联网使用TCP和UDP进行标准化传输
DCN相对于互联网需要更加关注突发容忍、低时延和高吞吐
DCN在协议改进时不需要达成共识,直接由中心确认,而互联网需要达成共识
1. 主动测量
定义:由测量用户主动发起,将探测分组注入网络,根据测量数据流的传送情况来分析网络的性能
优点:1. 更有针对性 2. 测量方便,适合端到端的性能测量,在本地发送测试包观察网络响应即可 3. 安全性高,不涉及用户网络信息
缺点:1. 容易有偏采样,探测数据对背景流量也可能有影响 2. 增加了网络负载
2. 被动测量
定义:通过网络中的链路或设备上借助包捕获数据的方式来记录和分析网络流量,以及网络性能状况,用户被动捕获数据进行测量
优点:1. 不会对网络背景流量产生影响,测量准确性高 2.能详尽理解观察点的网络行为
缺点:1. 测量没有针对性 2. 容易捕获网络中的敏感信息,威胁用户信息安全 3. 只能获得网络局部数据,无法了解网络整体状况
3. 链路带宽:指该链路上数据报文的最大传输速率,即每秒钟传输的最大字节数。
4. 可用带宽:是指当应用程序和其它背景流共享网络路径时,该应用程序所能得到的带宽。也就是指网络在不降低其它业务流的传输速率的情况下,所能提供给一个业务流的最大传输速率
5. a.该视频网站和家里宽带不是一个运营商,受到限制;
b.视频网站给用户做了限制以避免少数人占用了大多数人的资源;
c.服务器的带宽不足;
d.其它进程占用了带宽;
e.电脑硬件读取和解析的能力限制了加载速度
PRM算法工作原理:自源端向目的端发送主动测量包,当测量包的速率大于可用带宽时,在链路瓶颈带宽上的探测包就会发生排队现象,则导致时延增⼤的发送速率转折点处对应的速率即代表了该链路最⼤可⽤带宽
(1)10.1.1.1
(2)192.168.240.1
(3)192.168.136.1
(4)192.168.224.1
(5)192.168.128.1
E C B C A 这不是送分。。
原因:
1. IP地址的二义性,IP地址既表示地址又标识主机身份,即位置和身份的紧耦合
2. 不支持身份和地址的动态绑定,当移动后,IP地址发生变化
为什么:
因为网络连接是和IP地址绑定的,当IP地址发生变化时,连接只能断开。我们在移动的时候会改变位置但不会改变身份,而由于位置和身份的紧耦合导致不能单独改变位置或身份,也不能动态更新位置和身份的耦合关系,因此TCP/IP体系结构对移动性支持不好。
解决:
1. Mobile IP技术。移动主机有一个永久的IP地址,作为identifier,与移动前的网络有相同的前缀。主机移动到新网络时,获得新的IP地址,作为locator。两个地址共存。locator负责接收数据,identifier负责解复用数据。
2. 连接和IP地址解绑定。当IP地址发送变化时,移动一方告知对方自己的新地址,两端的应用连接不断开。
原理:超时重传是TCP协议保证数据可靠性的另一个重要机制,发送端每发送一个报文段,TCP便为其保留一个副本、设定一个计时器并等待确认信息。如果计时器超时,而发送的报文段中的数据仍未得到确认,则重传这一报文段,直到发送成功为止
(1)两个方面:
1. RTO时间太长,可能时RTT的几个数量级以上,在RTO时间内不能传输数据,因此会时发送端经过较长时间的等待后才能发现报文段丢失,降低了连接数据传输的吞吐量。
2. 超时重传会导致进入慢开始阶段(slow start),影响传输速度。
(2)TCP根据得到的RTT值更新RTO值,发送端对每个发出的数据包进行计时,若在RTO时间内没有收到所发出数据包对应的ACK,则重传数据,若RTO较大,则系统在长时间无法发送数据包,此时若系统的带宽也很大,则造成了大量资源的浪费。
(3)不能直接减小。若RTO过小,可能会造成不必要的重传,浪费网络资源
注:超时重传机制主要依靠设置RTO进行控制:若设置过大,恢复丢包的效率低;若设置过小,可能导致误重传,浪费网络资源。
考虑如下子网。该子网使用了距离矢量路由算法,下面的矢量刚刚到达路由器C,(重点常考)
来自B的矢量为(5,0,8,12,6,2)
来自D的矢量为(16,12,6,0,9,10)
来自E的矢量为(7,6,3,9,0,4)
经测量,到B、D和E的延迟分别为6、3和5。请问C的新路由表将会如何?请给出将使用的输出线路以及期望延迟
实际延迟 = 延迟 + 距离向量
处理后三个向量分别为:
(11,6,14,18,12,8)
(19,15,9,3,12,13)
(12,11,8,14,5,9)
对各节点距离取最小值(C除外):
(11,6,0,3,5,8)
路线:
1. 网址域名DNS查询,解析IP地址
2. 建立TCP连接
3. 生成并向服务器发送HTTP请求
4. 服务器响应请求,返回所需网页信息
5. 浏览器解析并显示网页
1. 不成反比。高带宽高延迟:卫星链路;低带宽低延迟:56kbps调制解调器。一个横贯大陆的光纤连接可以有很大的带宽,但由于距离过长,时延也会很高;而56kbps调制解调器呼叫在同一楼内的计算机有低带宽和低延迟。
2. 抖动:网络传输时延的变化率
丢包率:丢包率越小,网络质量越好
启动时间:
(1)一个RTO
(2)在传输开始阶段,无法确定网络传输能力,因此需要缓慢探测可用传输资源,避免短时间内大量数据注入导致拥塞
(3)两种思路
1. 可以。节省从0增长到可用带宽的时间,提高网络利用率
2. 不可以。在这个RTO内,可能有新的流占用的带宽,使用原窗口大小发送将导致拥塞
原因:在CDN中,当多个节点向一个接收端发送数据时,产生的大量数据流量在缓冲区溢出,造成丢包
解决方案:(理论上不用答缺陷)
1. 增大交换机buffer。但成本高,且当长短流混合时,短流延迟增大
2. 减小RTO。但会导致不必要的超时重传及其带来的slow start
3. EFC:以太网流控。实际上就是对上游节点发送pause消息,但会有head of line阻塞问题(队头阻塞)
4. 人为增加随机delay。尾部时延降低,但整体时延(平均时延)增大
1. 首先,数据从C1的唯一端口发出,到S1
2. S1查表发现没有匹配的项,因此缓存该数据包,并查询controller
3. controller下发转发规则至S1,内容为“DstIP=H2, Outport=2”
4. S1按照相应规则,将数据包从port2发出,至S2
5. S2如上请求,得到转发规则,并转发
1. 数据链路层
功能:向该层用户提供透明的和可靠的数据传送基本服务,进行帧编码和差错控制,使之对网络层表现为无差错的线路(解决分组在一个网络(或一个链路)上传输的问题)
代表协议:
P2P协议
以太网协议
2. 网络层
功能:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。(负责为分组交换网上的不同主机提供通信服务,解决分组在多个网络上传输(路由)的问题)
代表协议:
IP
ARP(地址解析协议)
ICMP(网际控制报文协议)
路由选择协议
NAT(网络地址转换协议)
3. 传输层
功能:主要负责向两个主机中进程之间的通信提供服务,提供差错控制和流量控制
代表协议:
TCP
UDP
4. 应用层
功能:负责通过应用进程间的交互来完成特定网络应用的任务。(为应用进程提供服务)
代表协议:
FTP
DNS
HTTP
SMTP
队列大小的影响:
缓冲区太小,会导致丢包率过高,数据链路利用率低,TCP传输效率低
缓冲区太大,会导致网络拥塞时,数据包转发时延过大
RED(Random early detection)随机早期检测
在RED中,为缓存队列都设置了一个最小阈值和最大阈值,当收到数据包时:
- 若队列长度小于最小阈值,直接加入缓存队列
- 若队列长度大于最大阈值,直接丢弃数据包
- 若队列长度位于两者之间,开始按一定概率丢弃数据包。队列越长,丢弃概率越高
第七个实验mospf,做过自然懂嗷
运行原理:
OSPF设备向外发送hello包,与其他使用相同协议的设备建立邻居关系
互相发送LSA(链路状态通告)相互通告路由,形成LSDB(链路状态数据库)
基于LSDB通过SPF算法,计算通向每个目的网络的最佳路径后,放入路由表。
收敛过程:
进行LSA的泛洪
收集泛洪的LSA集合,进行LSDB的组建
基于LSDB用SPF算法得到一颗以自己为“根”覆盖全网的无环的树
扩展方法:
将一个自治系统再划分为若干个更小的范围,叫区域,使更新过程收敛更快
定义
见2017.1
复杂度:
假设查找字符串长度为n,则时间复杂度为O(n)
字典树每个节点都需要使用一个数组来存储子节点的指针即便实际只有两三个子节点,但依然需要一个完整大小的数组。所以,空间复杂度较高O(26^n)
基于Ipv6的路由表的查找算法:基于前缀hash表的二分搜索
优化方法:
降低时间复杂度: Sail
降低空间复杂度: DxR
在时空复杂性上进行折衷考虑和优化: Poptrie
见2020.11
原因:
要测量最大带宽,就要把瓶颈链路填满,此时buffer中有一定的数据包,自然测不了最小RTT
要测量最低延迟,就要保证buffer为空,网络中的数据包越少越好,这也与瓶颈链路带宽的测量条件相悖
如何准确测量:
针对测不准的问题,在论文中BBR算法采⽤的⽅案是,交替测量带宽和延迟,⽤⼀段时间内的带宽极⼤值和延迟极⼩值作为估计值,动态更新测量值,最终控制发送速率,避免⽹络拥塞。
见2020.8
影响:
在DNS查询过程中,权威服务器接收请求的时候,只能得到本地DNS的IP,并不知道客户端IP。如果本地DNS设置不当,可能会误判用户的位置,将用户误导到错误的CDN缓存节点,造成加速效果差的问题。
缓解:
可以利用end-user mapping的技术,通过客户端IP地址的前缀,来对客户端进行表示识别。
改变:
可拓展性:在现有互联网体系结构中,只能通过不断地增加硬件设备进行拓展
动态性:使网络中身份和位置分离,增加可移动性
安全可控性:构建面向服务和数据的安全架构,从源头上限制网络攻击行为的发生
部署困难原因:
网络规模太大,不易统一部署
且过去的网络设备在设计之初并没有考虑到这些问题,无法直接应用这些架构
构造的最小生成树是可能不唯一,但是最小生成树的权值是唯一的。当无向图中存在相同权值的边,并且该边的权值小于最小生成树中边集的最大权值,则一定存在多个最小生成树。(自由发挥)
和2016.10差不多,简简单单,自由发挥!
貌似就更新了C的ADF三项,cost分别为6,6,7,下一跳均为B(自行验证啊自行验证)
查找过程:
1. 从根结点开始一次搜索;
2. 取得要查找关键词的第一个字符,并根据该字符转到对应的子树进行检索
3. 在相应的子树上,取得要查找关键词的第二个字符,并进一步选择对应的子树进行检索。
4. 迭代过程……
5. 在某个结点处,关键词的所有字符已被取出,则读取附在该结点上的信息,即完成查找
时间复杂度:O(n) n为路由长度
空间复杂度:O(1) 无额外空间
答案参考下面这个图:不知道为啥的再去看看TCP机制
(1)D1 = RTT; Slope1 = ?; slope2 = 1 / RTT; S1 = BW * RTT; S2 = BW * RTT + Q
(2)前面有,略
(1)CDN的加速资源是跟域名绑定的,公共DNS由于结点数有限,可能经常离用户很远
原理:寻找CDN是由DNS服务器去查询的,因此寻找CDN的过程其实并不知道用户地址,如果是本地DNS则可以找到较近的CDN服务器,若使用公用DNS则可能不能获取到较近的CDN资源,影响用户感知体验。
(2)EDNS根据用户请求来对同一域名作出相应的不同解析,允许DNS resolver传递用户的ip地址给权威DNS服务器以进行精确调度
(3)Anycast则允许客户端向一组目标服务器发送数据,而这组服务器中最终处理数据的服务器是由路由系统选择“最近”服务器。
见2016.6
(1)当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳,可同时利用这些路径转发数据,增加带宽。
(2)ECMP对于流大小相差不多的情况效果更好,而对于流大小差异较大,特别大的数据流无论选择哪条路径都容易造成拥塞
补充:
优势:数据包级别的负载均衡需要对每一个数据包进行查表操作,因此转发效率较低;而流级别负载均衡转发效率更高
劣势:对于长短流差距较大的情况,流级别负载均衡难以达到预期效果
(3)基于的丢包反馈、路径延时反馈、显示反馈等信息进行拥塞窗口调节。
交换机作为集中控制器计算所有流的平均窗口值AVG,通过显示反馈给发送端,发送端统一将发送窗口调整为AVG大小来公平的分配带宽。
补充:
具体来说,在DCTCP方法中,在交换机处有一个阈值K,若数据包到达时,队列占用量大于K,则标记该数据包。当receiver接收到带有标记的数据包后,返回带有ECN标记的ACK给发送端,发送端以此调节拥塞窗口的大小。
名字和地址分离是支持移动性的关键
优势:
不存在身份与地址的绑定,支持移动性
安全性和可拓展性增强
减少冗余传输,节省带宽
劣势:
名字不定长,在路由表中难查找
网络设备的实现和维护复杂
见2016.3
区块链原理:
单点出块:指定一个节点生成账本
广播机制:将生成的账本广播给所有节点
交叉验证:全网参与,协作完成交易验证
共同存储:分布式记账,不依赖单个中心
共识算法作用:确保分布式系统的一致性,保证区块信息达成全网的一致共识
以国家法定数字货币业务场景作为例,阐述问题与解决方法
可编程的交易过程解决了精确可控的货币政策问题
扁平化架构解决了扩大流通范围取代纸币的问题
共同记账解决了高效便捷的跨境支付清算问题
不同点
区块链只能进行查和插,分布式数据库可以进行增删改查
区块链每个节点通常保存全量数据,分布式数据库一般只保存部分
区块链强调参与者平等、共享,公开透明、共建,分布式数据具有单一拥有者
区块链节点间协作不需要相互信任,分布式数据库节点间的协作建立在相互信任的基础上
区块链容错机制好,分布式数据库容错能力低
相同点:
共识机制:一致性控制 — 共识机制
存储机制:数据库日志 — 账本
智能合约:智能合约 — 存储过程
链技术主要解决了场景里面的什么问题,是如何解决的?
区块链与分布式数据库的异同?
区块链原理:
单点出块:指定一个节点生成账本
广播机制:将生成的账本广播给所有节点
交叉验证:全网参与,协作完成交易验证
共同存储:分布式记账,不依赖单个中心
共识算法作用:确保分布式系统的一致性,保证区块信息达成全网的一致共识
以国家法定数字货币业务场景作为例,阐述问题与解决方法
可编程的交易过程解决了精确可控的货币政策问题
扁平化架构解决了扩大流通范围取代纸币的问题
共同记账解决了高效便捷的跨境支付清算问题
不同点
区块链只能进行查和插,分布式数据库可以进行增删改查
区块链每个节点通常保存全量数据,分布式数据库一般只保存部分
区块链强调参与者平等、共享,公开透明、共建,分布式数据具有单一拥有者
区块链节点间协作不需要相互信任,分布式数据库节点间的协作建立在相互信任的基础上
区块链容错机制好,分布式数据库容错能力低
相同点:
共识机制:一致性控制 — 共识机制
存储机制:数据库日志 — 账本
智能合约:智能合约 — 存储过程