- ARP 协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源
例如机器1 要发送包给机器4,在只知道机器4的IP地址的情况下是无法发送的,因为要通过机器4的数据连路层必须包内含有4的Mac地址,这时候就需要ARP协议先对局域网进行广播,ARP广播传播路线
机器1>交换机A左口(当然广播,机器2也会收到,但发现自己不是目标IP不会给回应,其他同理)>交换机右口>交换机B左右口>机器4, 机器4 返回ARP响应
在这个ARP 广播的过程中,交换机会慢慢建立拓扑接口,存在本地转发表中,当下次机器1 在发送给4的时候,就不会转发到其他端口了(一般还有很多出口,图中只有两个,只会发到右出口),当然这个会存在一定失效时间,用来防止机器4下线,在其他网络位置登录
- STP
STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。
在交换机的拓扑结构中,如果出现环会很麻烦,导致ARP广播,或者其他传输信息,被循环的广播,以至于一个交换机不知道目标是在左侧还是右侧(其实是究竟哪个端口),所以在交换机接入的时候会根据交换机的配置,通过STP协议规避这种环状结构,变成树状结构 - HTTP 1.0 和 HTTP 2.0 的区别
- HTTP 2.0 会对 HTTP 的头进行一定的压缩,将原来每次都要携带的大量 key value 在两端建立一个索引表,对相同的头只发送索引表中的索引。
-
HTTP 2.0 的客户端可以将多个请求分到不同的流中,然后将请求内容拆成帧,进行二进制传输。这些帧可以打散乱序发送, 然后根据每个帧首部的流标识符重新组装,并且可以根据优先级,决定优先处理哪个流的数据(不用等待一个资源返回在请求下一个)h
HTTP 2.0 通过头压缩、分帧、二进制编码、多路复用等技术提升性能;
QUIC 协议通过基于 UDP 自定义的类似 TCP 的连接、重试、多路复用、流量控制技术,进一步提升性能
下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载的方式;P2P 也是有两种,一种是依赖于 tracker (一个中心化服务器,用于给下载者提供哪些ip下有需要的文件)的,也即元数据集中,文件数据分散;另一种是基于分布式的哈希算法,元数据和文件数据全部分散。
p2p(pear to pear):
将文件和文件位置知识图谱都分开保存,对用户有一个hash ID 文件有一个hash ID ,用户有义务直到和自己ID 相差不多的Hash ID 的文件在网络上的位置,到底是哪一些电脑上有这个文件,当一个用户需要下载某个文件的时候,会对应去查找到相似或者相同的Hash ID 的用户哪里,去获取文件的真实位置的拥有者IP,(知识图谱自己未必拥有该文件),然后向真实拥有者发起文件点对点的下载,这种去中心画的P2P网络被称为DHT(Distributed Hash Table)
种子(.torrent)
文件但是有一个问题,当你想下载一个文件的时候,怎么知道哪些 peer 有这个文件呢?这就用到种子啦,也即咱们比较熟悉的.torrent 文件。.torrent 文件由两部分组成,分别是:
announce(tracker URL)和文件信息。文件信息里面有这些内容。
info 区:这里指定的是该种子有几个文件、文件有多长、目录结构,以及目录和文件的名字。
Name 字段:指定顶层目录名字。
每个段的大小:BitTorrent(简称 BT)协议把一个文件分成很多个小段,然后分段下载。
段哈希值:将整个种子中,每个段的 SHA-1 哈希值拼在一起。
视频推拉流协议 RTMP
编码:如何将丰富多彩的图片变成二进制流?虽然我们说视频是一张张图片的序列,但是如果每张图片都完整,就太大了,因而会将视频序列分成三种帧。
I 帧,也称关键帧。里面是完整的图片,只需要本帧数据,就可以完成解码。
P 帧,前向预测编码帧。P 帧表示的是这一帧跟之前的一个关键帧(或 P 帧)的差别,解码时需要用之前缓存的画面,叠加上和本帧定义的差别,生成最终画面。
B 帧,双向预测内插编码帧。B 帧记录的是本帧与前后帧的差别。要解码 B 帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的数据与本帧数据的叠加,取得最终的画面。
视频和图片的压缩过程有什么特点?之所以能够对视频流中的图片进行压缩,因为视频和图片有这样一些特点。空间冗余:图像的相邻像素之间有较强的相关性,一张图片相邻像素往往是渐变的,不是突变的,没必要每个像素都完整地保存,可以隔几个保存一个,中间的用算法计算出来。时间冗余:视频序列的相邻图像之间内容相似。一个视频中连续出现的图片也不是突变的,可以根据已有的图片进行预测和推断。视觉冗余:人的视觉系统对某些细节不敏感,因此不会每一个细节都注意到,可以允许丢失一些数据。编码冗余:不同像素值出现的概率不同,概率高的用的字节少,概率低的用的字节多,类似霍夫曼编码(Huffman Coding)的思路。
- DNS 的作用
- 将域名解析为IP地址
- 负载均衡