网络协议知识图谱
树图思维导图提供 网络协议知识图谱 在线思维导图免费制作,点击“编辑”按钮,可对 网络协议知识图谱 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2d7e16377fcb1809b154fe8d8eca5df7
网络协议知识图谱思维导图模板大纲
网络协议就是你交给一大片机器说同样的话,共同完成一件事儿。
复杂的程序都要分层,分层的优势是灵活性和独立性,不能表达层层封装的比喻都是不恰当的
不理解?如果你把代码都写在一起,但是产品经理却突然改了需求,你需要将TCP换成UDP的时候,你就明白了
只要是网络上跑的包,都是完整的,可以有下层没上层,不能有上层没有下层
把自己想象成为一个处理网络包的程序,你的脑袋就是处理逻辑,你的手就是网口
啥叫二层设备?有人递给你左手一个包,取下二层头来看,用脑袋想想,是自己吃了,还是扔了,还是右手递给其他人。
啥叫三层设备?有人递给你左手一个包,取下二层和三层头来看,用脑袋想想,是自己吃了,还是扔了,还是右手递给其他人。
IP地址是网络世界的通信地址,相当于现实世界的门牌号码,有定位功能
MAC地址是网络世界的身份证,没有定位功能。
网关往往是一台路由器,它有5个网口或者网卡,相当于5只手,分别连着5个局域网。每只手的IP地址都和局域网的IP地址相同的网段,每只手都是它握住的那个局域网的网关。
静态路由
在路由器上,配置一条一条规则。想访问BBS站,从2号口出去,下一跳就是IP2;想访问教学视频站,从3号口出去,下一跳是IP3。
策略路由
可以配置多个路由表,可以根据源IP地址、入口设备、TOS等选择路由表,然后在路由表中查找路由。这样可以使得来自不同来源的包走不同的路由。
欧洲十国游
MAC变IP不变
这就像在欧洲各国之间旅游,一个签证就能搞定。
玄奘西行
MAC变IP也变NAT网关转换
就像出国,不能用咱们自己的身份证,而要改用护照一样,玄奘西游也要拿着专门取经的通关文牒,而不能用自己国家的身份证。
唐僧西天取经,需要解决两大问题;一个是在每个国家如何找到正确的路,去换通关文牒、吃饭、休息;一个是国家之间,野外行走的时候,如何找到正确的路、水源的问题。
基于链路状态路由算法的OSPF
在一个国家内部,找到最短路径是最重要,走的越少越好。
基于距离矢量路由算法的BGP
国家之间,不光远近的问题,还有政策的问题。例如,唐僧去西天取经,路过女儿国,那最好绕着点走。
三大特点
沟通简单,不需要一肚子花花肠子(大量的数据结构、处理逻辑、包头字段)。前提是它相信网络世界是美好的,秉承性善论,相信网络通路默认就是很容易送达的,不容易被丢弃的。
轻信他人。它不会建立连接,虽然有端口号,但是监听在这个地方,谁都可以传给他数据,他也可以传递给任何人数据,甚至可以同时传递给多个人数据。
愣头青,做事不懂权变。不知道什么时候该坚持,什么时候该退让。它不会根据网络的情况进行发包的拥塞控制,无论网络丢包成啥样子,它该怎么发还怎么发。
三大使用场景
需要资源少,在网络情况比较好的内容,或者对于丢包不敏感的应用
你会让你们组刚毕业的小朋友去做一些没有那么难的项目,打一些没有那么难的客户,或者做一些失败了也能忍受的实验性项目
不需要一对一沟通,建立连接,而是可以广播的应用
咱们小时候人都很简单,大家在班级里谁得几个小红花都是当着全班的面讲的。长大了人心复杂了,薪水、奖金要背靠背,和员工一对一沟通。
需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前。
曾国藩建立湘军的时候,专门招初生牛犊不怕虎的新兵,而不用那些“老油条”的八旗兵,就是因为八旗兵经历的事情多,遇到敌军不敢舍生忘死。
方式0:在建立连接后,进行一个while循环,客户端发了收,服务端收了发
这就相当于老板成立一个公司,只有自己一个人,自己亲自上来服务客户,只能干完了再干下一家,赚不来多少钱。
方式1:将项目外包给其他公司(多进程)
就像来了一个新的项目,但是项目不一定是你自己做,可以再注册一家子公司,然后项目转包给这家子公司做,以后对接就交给这家子公司了,你又可以去接新的项目了。
方式2:将项目转给独立的项目组(多线程)
如果创建进程相当于成立新公司,购买新办公家具,而创建线程,就相当于在同一个公司成立项目组。一个项目做完了,那这个项目组就可以解散,组成另外的项目组,办公家具可以共用。
方式3:一个项目组支撑多个项目(IO多路复用,一个线程多个Socket)
一个项目组看多个项目了,这个时候,每个项目组都应该有个项目进度墙,将自己组看的项目列在那里,然后每天通过项目墙看每个项目的进度,一旦某个项目有了进展,就派人去盯一下。
方式4:一个项目组支撑多个项目(IO多路复用,从派人盯着到有事通知)
如果改成事件通知的方式,情况就会好很多,项目组不需要通过轮询挨个盯着这些项目,而是当项目进度发生变化的时候,主动通知项目组,然后项目组再根据项目进展情况做相应的操作。
编码:如何将丰富多彩的图片变成二进制流?
视频是一张张图片的序列,但是如果每张图片都完整,就太大了,因而会将视频序列分成三种帧I、B、P。
一个视频,可以拆分为一系列的帧,每一个帧拆分成一系列的片,每一片都放在一个NALU里面,NALU之间都是通过特殊的起始标识符分隔,在每一个I帧的第一片前面,要插入单独保存SPS和PPS的NALU,最终形成一个长长的NALU序列。
推流:如何将数据流打包传输到对端?
推流的过程,就是将NALU放在Message里面发送,这个也称为RTMP Packet包。
RTMP在收发数据的时候并不是以Message为单位的,而是把Message拆分成Chunk发送。
分发与流处理
分发网络分为中心和边缘两层。边缘层服务器部署在全国各地及横跨各大运营商里,和用户距离很近。中心层是流媒体服务集群,负责内容的转发。
拉流:观众的客户端如何看到视频?
先读到的是H.264的解码参数,例如SPS和PPS,然后对收到的NALU组成一个个帧,进行解码,交给播发器播放,一个绚丽多彩的视频画面就出来了。
DNS
DNS服务器组织成树状结构,老大是根域名服务器,老二是顶级域名服务器,真正干活的是权威DNS服务器,每次查找地址簿,都要遍历这棵树,比较费时,因而每个运营商都有本地域名服务器做缓存。
常用的网站就有二三十个,如果全部用IP地址访问,恐怕很难记住。于是,就需要一个地址簿,根据名称就可以查看具体的地址。
我们肯定希望北京的用户访问北京的数据中心,上海的用户访问上海的数据中心,这样,客户体验就会非常好,访问速度就会超快。这就是全局负载均衡的概念。
传统DNS问题
缓存问题(不能及时刷新缓存)
导游去过一个饭店,自己脑子记住了地址,当有一个游客问的时候,他就会凭记忆回答了。结果饭店已经搬家了,但是导游并没有刷新这个缓存。
负载均衡失效
客户要吃西湖醋鱼的事,导游知道西湖边有一家,因为当时游客就在西湖。可是下一次客户在灵隐寺,想吃西湖醋鱼的时候,导游还指向西湖边的那一家,那这就绕的太远了。
域名转发
西湖边导游比较懒,自己不去查,去问负责灵隐寺的导游同事,就推荐了灵隐寺旁边的西湖醋鱼。
HTTPDNS
HTTPDNS其实就是,不走传统的DNS解析,而是自己搭建基于HTTP协议的DNS服务器集群,分布在多个地址和多个运营商。当客户端需要DNS解析的时候,直接通过HTTP协议进行请求这个服务器集群,得到就近的地址。
通过自己的HTTPDNS服务器和自己的SDK,实现从依赖本地导游,到自己上网查询做旅游攻略,进行自由行,爱怎么玩怎么玩。这样就能够避免依赖导游,而导游又不专业,你还不能把他怎么样的尴尬。
手动配置IP地址相当于自己买房装修,DHCP协议相当于租房
新到一个城市要先找中介(DHCP服务器)租个房(IP)——Discover
中介(DHCP服务器)会带你看房,可能会有多个中介带你看多个房——Offer
你看上其中一个房,愿意租下来——Request
中介说没问题,咱们签合同,租约达成——Ack
租约达成要广播,防止中介之间跳单
租期快到之前,记得续租
PXE再DHCP配置里面多了一个next-server,可以安装操作系统。
这就是中介租给你房子之后,签完约说,还给你介绍一个装修公司:“哥们,想装修一下吗,接下来找它”
MAC层主要解决多路访问的堵车问题
思路一:划分多个车道,你走你的,我走我的
思路二:单双号,今天单号出行,明天双号出行
思路三:不管三七二十一,有事先出去,发现堵车再回去,错过高峰再出门。以太网是这个思路。
STP就是在二层,将拓扑图中的环破了,生成了树。
树要有树根,形成树的是一场血雨腥风的武林比武,最终决出谁是盟主,谁是长老,谁是堂主,谁是小兵的方式
比武规则:先比掌门(当前树的树根ID),再比和掌门关系铁(距离当前树根的路径开销),最后比自己的本事(自己的ID)
广播问题:公司大了都在一个会议室吵,谁也没法工作
不同的部门不同的VLAN,你听不到别的部门开会,清净很多
安全问题:公司大了都在一个会议室吵,HR聊的东西,程序员都听到了
不同的部门不同的VLAN,你别想听到HR开会,打听薪资
查询报文类型
主帅说,来人啊,前方战事如何,快去派人打探,一有情况,立即通报
ping
差错报文类型
主帅骑着马走着走着,突然来了一匹快马,上面的小兵气喘喘的:报告主公,不好啦,将军遭遇埋伏,全军覆没没啦
traceroute
顺序问题,稳重不乱
给每个事情编个号。程序员平时看任务的时候,就像程序员都会看JIRA的ID,等开周会的时候,将JIRA ID的列表拉出来就行了。
丢包问题,承诺靠谱
比如你交代给下属一个事情后,下属到底能不能做到,做到什么程度,什么时候能够交付,往往就会有应答,有回复
连接维护,有始有终
三次握手和四次挥手
流量控制,把握分寸
滑动窗口就是你和你下属记录你布置给他的任务的本子
四部分
做完了的应该划掉
已经布置的任务,正在做还没做完
尚未布置的任务
工作饱和,不能再布置的任务
滑动方式
做完一条划掉一条,新来一条,在最后添加一条
做完一条能够再布置一条
如果下属反应能力强,可以多布置几条,反馈做不过来就需要少布置几条
拥塞控制,知进知退
慢启动,指数性增长
我们通过漏斗往瓶子里灌水,一桶水一下子倒进去,肯定会溅出来,要一开始慢慢地到,然后发现还可以倒进去,就可以越倒越快。这叫做慢启动。
拥塞避免,线性增长
涨到什么时候是个头呢?有一个值ssthresh为65535个字节,当超过这个值的时候,就要小心一点了,不能到这么快了,可能快满了,再慢下来。
快速重传,快速恢复
一旦超时重传,马上回到解放前,窗口为1,从头开始慢启动
部分丢包可以快速重传,窗口腰斩,并非回到解放前为1
HTTP1.1
GET
GET就是去服务器获取一些资源。对于访问网页来说,要获取的资源往往是一个页面。
POST
支付场景,客户端就需要把“我是谁?我要支付多少?我要买啥?“告诉服务器,这就需要通过POST方法
PUT
向指定资源位置上传最新内容
DELETE
用来删除资源
HTTP2.0
头索引
分流
分帧
二进制编码
QUIC
基于UDP
自定义连接机制
自定义重传机制
无阻塞的多路复用
自定义流量控制
对称加密
我们在谍战剧里面经常看到这样的场景,就是特工破译的密码会有个密码本,截获无线电台,通过密码本就能将原文破译出来。
非对称加密
非对称加密的私钥放在外卖网站这里,不会再互联网上传输,这样就能保证这个私钥的私密性。对应私钥的公钥,是可以在互联网上随意传播的,只要外卖网站把这个公钥给你,你们就可以愉快地互通了。
数字证书
你怎么鉴别别人给你的公钥是对的呢?这个时候就需要权威部门的介入了,而由权威部门颁发的就是证书。
证书里面有什么呢?有公钥,有证书的所有者,还有证书的发布机构和证书的有效期。
P2P就是peer-to-peer。资源开始并不集中地存储在某些设备上,而是分散地存储在多台设备上。这些设备我们成为peer。
任何一个BitTorrent启动后,都有两个角色。peer,用来上传和下载文件;DHT node,通过这个角色,这个节点加入了一个DHT网络;每个DHT node都应该知道某些文件是保存在哪些节点上,也就是文件索引。
如果一个文件计算出一个哈希值,DHT node的ID是和哈希值相同长度的串,则和这个哈希值一样的或者很接近的那些DHT node,就有责任知道从哪里下载这个文件。
DHT网络特别像一个社交网络,每个node都保存了一些其他node的联系方式,也就是朋友圈,节点之间会相互通信,添加朋友或者删除朋友。这样ID之间的距离就不是物理位置的距离,而是社交网络中的社交距离。
一个新的DHT node上线,只要联系上DHT网络中的一个节点,就加入了这个网络。
新DHT node节点通过计算文件哈希,可以知道某个node应该有这个文件保存在哪里的知识,于是去万能的朋友圈去问,朋友如果不知道,朋友再去自己的朋友圈问,很快就能找到。
静态资源模拟物流“就近配送”
网站根据统计大概知道,每个种类的物品,各大城市每天能够卖出去多少。平时就可以将这类物品分布在各地仓库,客户一下单,就近的仓库就发出,客户很快就收到了。
动态资源
生鲜超市模式,也即边缘计算的模式。既然数据是动态生成的,所以数据的逻辑计算和存储,也相应放在边缘的节点。
冷链运输模式,也即路径优化的模式。数据不是在边缘计算生成的,而是在源站生成的,但是数据的下发可以通过CDN的网络,对路径进行优化。
数据中心分为三层。服务器连接到接入层,然后是汇聚层,再然后是核心层,最外面是边界路由器和安全设备。
数据中心的所有链路都需要高可用性。服务器需要绑定网卡,交换机需要堆叠,三层设备可以通过等价路由,二层设备可以通过TRILL协议。
VPN通过隧道技术在公众网络上仿真一条点对点的专线,是通过利用一种协议来传输另一种协议的技术。三种协议:乘客协议、隧道协议和承载协议。
VPN相当于自驾海南游,如何通过琼州海峡呢?这里用到轮渡,就是隧道协议。
在广州这边开车是有“协议”的,例如靠右行驶、红灯停、绿灯行,这就相当于“被封装”的乘客协议。当然在海南那边,开车也是同样的协议
在海上坐船航行,也有协议,例如要看灯塔、要按照航道航行等。这是外层的承载协议。
车如何从广州到海南呢?需要遵循开车的(乘客协议),将车开上轮渡,所有通过轮渡的车都关在船舱里面,按照既定的规则排列好,这就是(隧道协议)。
在大海上,车是关在船舱里面的,就像在隧道里面一样,这时内部的乘客协议,也即驾驶协议没啥用处,只需要船遵从外层的(承载协议),到达海南就可以了。
到达之后,外部(承载协议)的任务就结束了,打开船舱,将车开出来,就相当于取下承载协议和隧道协议的头。接下来,在海南该怎么开车,就怎么开车,还是内部的(乘客协议)起作用。
手机通过无线信号连接基站
基站一面朝前连接无线,一面朝后连接核心网
核心网一面朝前连接到基站请求,一是判断你是否合法,二是判断你是不是本地号,还有没有钱,一面通过网关连接互联网。
树图思维导图提供 Linux 网络基础知识 在线思维导图免费制作,点击“编辑”按钮,可对 Linux 网络基础知识 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:199680f0e48eac8a1aeaadb90447d4f4
树图思维导图提供 ——重点行业机构业务客户生态图谱(锦州地区) 在线思维导图免费制作,点击“编辑”按钮,可对 ——重点行业机构业务客户生态图谱(锦州地区) 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f930058a554a09639a5c5c0e168c451c