华为18级大牛原来是这样理解网络协议的(附视频讲解)

前言

虽然在大学的时候你们都学过网络协议 ,可是确定感受网络协议的知识点很是多 ,很是复杂。学的时候就浑浑噩噩,真正到了实践中更是糊里糊涂,一旦工做中遇到了网络问题,除了会简单地 ping 几下 ,基本没有什么解决问题的思路。 然而当拿起书来学习,或者看一些官方文档的时候,各类生僻的专业词汇立刻扑面而来,每了解其中的一个词汇 ,都要看多几篇文章,读多几本书,致使一篇即便很短的有关网络技术的文章也要几个星期才能看完。算法

这严重打击着你们的自信心,而且很容易让人在技术的海洋中迷失自我,从而产生“从入门到放弃”的冲动!docker

网络协议和变化万千的前沿技术不一样,它的变化比较小,一旦掌握到必定程度,就会一直受益 技术变 很快,这 几年OpenStack、docker、Mesos、kubernetes、微服务、serverless、AIops等技术层出不穷,让大多数技术人员目不暇接,可是掌握了基础知识 后,反而发现不少技术看起来“轰轰烈烈”, 脱下外衣,其实本质仍是操做系计算机网络、算法与数据结构、编译原理 、计算机组成与系统结构 。编程

若是基础打好了,最大的收益就是,在最新的技术出来之后,只要通过短期的学习,就很容易上手,就能在新技术的滚滚浪潮中保持快速学习的能力。缓存

既然网络协议既是基础,又绕不过去,还这么难,可是趟过去以后又不怎么变,收益愈来愈大,那为何不写一文档,给你们一点可借鉴的经验,帮助你们尽快掌握网络协议呢?安全

那么,今天我们就从目录、主要包括的内容和总结三部分给你们进行网络协议的拓展学习,但愿你们可以喜欢!!服务器

目录

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

主要内容

主要把本文内容分为九章来给你们介绍:网络

第1章通讯协议概述.数据结构

1.1为何要学习网络协议多线程

1.2网络分层的真实含义,总结一下本节的内容,理解网络协议的工做模式,有如下两个小窍门。架构

  • 始终想象本身是一个处理网络包的程序:如何拿到网络包,如何根据规则进行处理,如何发出去。
  • 始终牢记一个原则:只要是在网络上跑的包,都是完整的。能够有下层没上层,绝对不可能有上层没下层。

1.3 ifconfig:熟悉又陌生的命令行,经过本节的学习但愿你能记住如下的知识点,后面都能用得上:

  • I地址有定位功能,MAC地址相似身份证号,无定位功能。
  • CIDR能够用来判断是否是本地地址。
  • IP地址分公网IP地址和私网IP地址。后面的章节中会谈到“出国门”,就与此有关。

1.4 DHCP与PXE:IP地址是怎么来的,又是怎么没的,本节内容总结以下:

  • DHCP主要租给客户端IP地址,这个过程和租房很像,要商谈、签约、续租,广播还不能“抢单”。
  • DHCP会给客户端推荐“装修队”PXE来安装操做系统,这在云计算领域大有用处。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第2章从二层到三层.

2.1从物理层到MAC层:如何在宿舍里本身组网玩联机游戏,本节有3个重点须要记住:

  • MAC层是用来解决多路访问的“堵车”问题的。
  • ARP是经过“吼”的方式来寻找目标MAC地址的,“吼”完以后会记住一段时间,这个叫做缓存。
  • 交换机是有MAC地址学习能力的,学会了它就能知道谁在哪里,不用广播了。

2.2交换机与VLAN:办公室太复杂,我要回学校,本节总结以下:

  • ·当交换机的数目愈来愈多时,会遭遇环路问题,让广播包迷路。这时就须要使用STP经过“比武论剑”的方式,将有环路的图变成没有环路的树,从而解决环路问题。
  • ·交换机数目过多会致使隔离问题。能够经过VLAN造成虚拟局域网,从而解决广播问题和安全问题。

2.3ICMP与ping:投石问路的侦察兵,本节内容总结以下:

  • ·ICMP 至关于网络世界的侦察兵。本节讲解了两种类型的ICMP报文,一种是主动探查的查询报文,一种异常报告的差错报文。
  • ping使用查询报文,Traceroute使用差错报文。

2.4世界这么大,我想出网关:欧洲十国游与玄奘西行,本节总结以下:

  • ·若是离开局域网,就须要通过网关。
  • ·路由器是一个三层设备,里面有如何寻找下一跳的规则。
  • ·通过路由器以后MAC头要变,若是I地址不变,至关于不换护照的“欧洲十国游”,若是IP地址改变,至关于换护照的“玄奘西行”。

2.5路由协议:“西出网关无端人""敢问路在何方”,本节总结以下:

  • 路由分静态路由和动态路由,静态路由能够配置复杂的策略路由,控制转发策略。
  • 动态路由有两种主流协议,距离矢量路由协议和链路状态路由协议。分别对应BGP和OSPF 这两个实现。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第3章重要的传输层.

3.1 UDP:虽然简单可是能够定制化,本节总结以下:

  • 若是将TCP比做成熟的社会人,UDP则是头脑简单的小朋友。TCP复杂,UDP简单。TCP维护链接,UDP谁都相信。TCP知进退,UDP愣头青一个,一往无前。
  • ·UDP虽然简单,但它有简单的用法。它能够用在环境简单、须要多播、应用层本身控制传输的地方,例如DHCP、VXLAN、QUIC等。

3.2 TCP(上):虽然复杂,使用起来却轻松,本节总结以下:

  • · TCP头很复杂,可是主要关注五个方面:顺序问题、丢包问题、链接维护、流量控制,以及拥塞控制。
  • 链接的创建要通过三次握手,断开要通过四次挥手。

3.3 TCP (下):西行一定多妖孽,恒心智慧消磨难,总结以下:

  • 顺序问题、丢包问题、流量控制都是经过滑动窗口来解决的,滑动窗口其实就至关于领导和下属的工做备忘录,布置过的工做要有编号,干完了有反馈,活儿不能派太多,也不能太少。
  • 拥塞控制是经过拥塞窗口来解决的,至关于往管道里面倒水,快了容易溢出,慢了浪费带宽,要摸着石头过河,找到最优值。

3.4 socket: Talk is cheap, show me the code ,本节总结以下:

  • 你须要记住在基于TCP和UDP的socket程序的函数调用过程当中,客户端和服务端都须要调用哪些函数。
  • 写一个可以支撑大量链接的高并发的服务端不容易,须要多进程、多线程,而 epoll能解决C10K问题。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第4章经常使用的应用层.

4.1 HTTP:看个新闻原来这么麻烦,本节总结以下:

  • HTTP很经常使用,也很复杂,重点记住GET、POST、PUT、DELETE这几个方法,以及重要的首部字段。
  • HTTP2.0经过头压缩、分帧、二进制编码、多路复用等技术提高性能。
  • QUIC协议经过基于UDP自定义的链接、重传、多路复用、流量控制等机制进一步提高性能。

4.2 HTTPS:点外卖的过程原来这么复杂,本节总结以下:

  • 加密分对称加密和非对称加密。对称加密效率高,可是解决不了密钥传输问题;非对称加密能够解决这个问题,可是效率低。
  • 非对称加密须要经过证书和权威机构来验证公钥的合法性。
  • HTTPS是综合了对称加密和非对称加密的HTTP。既保证传输安全,也保证传输效率。

4.3流媒体协议:如何在直播里看到帅哥美女,本节总结以下:

  • 编码两大流派达成了一致,都是经过关于时间、空间的各类算法来压缩数据的。
  • 压缩好的数据,为了方便传输会组成一系列NALU,按照帧和片依次排列。
  • 排列好的NALU在网络传输时,要按照RTMP包的格式进行包装,RTMP包会拆分红块进行传输。
  • 推送到流媒体服务器的视频流通过转码和分发,能够被客户端经过RTMP拉取,而后组合为NALU,解码成视频格式进行播放。

4.4 P2P协议:下载电影,分布式协议速度快,本节总结以下:

  • 下载一个文件可使用HTTP或FTP,这两种协议都使用集中下载的方式,而P2P则换了一种思路,采起去中心化下载的方式。
  • P2P也有两种下载方式,一种是依赖于tracker服务器,即元数据集中,文件数据分散;另外一种基于分布式哈希算法,元数据和文件数据所有分散。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第5章陌生的数据中心.

5.1 DNS:网络世界的地址簿,本节总结以下:

  • DNS是网络世界的地址簿,能够经过域名查询地址,因为DNS服务器是按照树状结构组织的,于是域名查找使用的是递归的方法,并经过缓存的方式加强性能。
  • 域名和IP地址相互映射的过程给了应用基于域名作负载均衡的机会,能够实现简单的负载均衡,也能够根据地址和运营商实现全局负载均衡。

5.2 HTTPDNS:网络世界的地址簿也会指错路,本节须要记住如下两个重点:

  • ·传统的DNS服务器有不少问题,例如解析慢、更新不及时。由于缓存、转发NAT问题致使客户端误会本身所在的位置和所属的运营商,从而影响流量的调度。
  • ·HTTPDNS服务器经过客户端SDK,服务端经过HTTP直接调用解析DNS服务器的方式,绕过了传统DNS服务器的缺点,实现了智能调度。

5.3 CDN:你去小卖部取过快递吗,本节需记住如下两个重点:

  • CDN和电商系统的分布式仓储系统-样,分为中心节点、区域节点、边缘节点,将数据缓存在离用户最近的位置。
  • CDN最擅长的是缓存静态数据,除此以外还能够缓存流媒体数据,这时要注意使用防盗链。CDN也支持动态数据缓存,可用模式有两种:一种是边缘计算的生鲜超市模式,另外一种 是链路优化的冷链运输模式。

5.4数据中心:我是开发商,本身拿地盖别墅,本节须要记住如下3个重点:

  • 数据中心分为三层。服务器链接到接入层,而后是汇聚层,接着是核心层,最外面是边界路由器和安全设备。
  • 数据中心的全部链路都要高可用。服务器能够绑定网卡,交换机能够堆叠,三层设备能够经过等价路由,二层设备能够经过TRILL协议实现高可用。
  • 随着云和大数据的发展,东西流量相较于南北流量更加剧要,于是演进出叶脊网络结构。

5.5 VPN:朝中有人好作官,本节总结以下:

  • VPN能够将一个机构的多个数据中心经过隧道链接起来,让机构感受在一个数据中内心面同样,如同自驾游经过琼州海峡。
  • 彻底基于软件的IPsec VPN能够保证私密性、完整性、真实性,简单便宜,可是性能稍微差一些。
  • MPLS-VPN综合了I转发模式和ATM标签转发模式的优点,性能较好,可是须要从运营商处购买。

5.6移动网络:去巴塞罗那,手机也上不了“脸书”,本节总结以下:

  • 移动网络的发展历程从2G到3G,再到4G,功能逐渐从以打电话为主转变为以上网为主。
  • 请记住4G网络的结构,有eNodeB、MME、SGW、PGW等,分控制面协议和数据面协议,你能够对照这个结构,试着说出手机上网的流程。
  • 即使你在国外运营商的范围内上网,也要由国内运营商控制,于是也上不了“脸书”。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第6章云计算中的网络.

6.1云中网络:本身拿地成本高,购买公寓更灵活,本节总结以下:

  • 云计算的关键技术是虚拟化,这里咱们重点关注的是虚拟网卡经过打开TUN/TAP字符设备的方式,将虚拟机内外链接起来。
  • 云中的网络重点关注四个方面:共享、隔离、互通、灵活。其中共享和互通有两种经常使用的方式,分别是桥接和NAT,隔离能够经过VLAN的方式来进行。

6.2软件定义网络:共享基础设施的小区物业管理办法,本节总结以下:

  • 用SDN 控制整个云里面的网络,就像小区保安从总控室管理整个物业是同样的,将控制面和数据面进行了分离。
  • Open vSwitch是一种开源的虚拟交换机的实现,它能对通过本身的网络包作任意修改,从而使得云对网络的控制十分灵活。
  • 将Open vSwitch引入云以后,可使配置简单而灵活,而且能够解耦物理网络和虚拟网络。

6.3云中网络之安全:虽然不是土豪,也须要基本保障,本节总结以下:

  • 云中的安全策略的经常使用方式是使用iptables的规则,请记住它的5个链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。
  • iptables 的表分为4种: raw、mangle、nat、filter。其中安全策略主要在filter表中实现,而虚拟网络和物理网络地址的转换主要在nat表中实现。

6.4云中网络之QoS:室友疯狂下电影,我该怎么办,本节总结以下:

  • 云中的流量控制主要是经过队列进行的,排队规则分为两大类:无类别排队规则和基于类别的排队规则。
  • 在云中网络Open vSwitch中,主要使用HTB将总的带宽在一棵树上按照配置的比例进行分配,而且在一个分支不使用流量时,借给另外的分支,从而加强带宽利用率。

6.5云中网络之隔离GRE、VXLAN:虽然住一个小区,也要保护隐私,本节总结以下:

  • 要对不一样用户的网络进行隔离,解决VLAN数目有限的问题,须要经过Overlay的方式,常使用的是GRE和VXLAN。
  • GRE是一种点对点的隧道模式,VXLAN是支撑组播的隧道模式,它们都要在某个隧道端口进行封装和解封装,实现跨物理机的互通。
  • Open vSwitch能够做为隧道端口,经过设置流表规则在虚拟机网络和物理机网络之间进行转换。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第7章容器技术中的网络.

7.1容器网络:来去自由的日子,不买公寓去合租,本节总结以下:

  • 容器是一种比虚拟机更加轻量级的隔离方式,主要经过namespace和 cgroup技术进行资源的隔离,namespace负责“看起来”隔离,cgroup负责“用起来”隔离。
  • 容器网络链接到物理网络的方式和虚拟机很像,经过桥接的方式能够实现一台物理机上容器的相互访问,若是要访问外网,最简单的方式仍是经过NAT。

7.2容器网络之Flannel:每人一亩三分地.,本节总结以下:

  • 基于NAT的容器网络模型在微服务架构下有两个问题,一个是IP地址重叠,另外一个是端口冲突,须要经过Overlay 网络保持跨节点的连通性。
  • Flannel是跨节点容器网络方案之一,它提供的Overlay方案主要有两种方式,一种是UDP在用户态封装,另外一种是VXLAN在内核态封装,而VXLAN的性能更好一些。

7.3容器网络之Calico:为了高效说出善意的谎话,本节总结以下:

  • Calico推荐使用物理机做为路由器,这种模式没有虚拟化开销,性能比较高。
  • Calico的主要组件包括路由、iptables 的配置组件Felix、路由广播组件BGP Speaker,以及大规模场景下的BGP路由反射器。
  • 为解决跨网段的问题,Calico还有一种IPIP模式,即在两台机器之间打一个隧道,两台机器分别位于隧道两端,这样原本不是邻居的两台机器,由于隧道变成了相邻的机器。

7.4 RPC概述:远在天边,近在眼前,本节总结以下:

  • 远程调用看起来用socket编程就能够了,实际上是很复杂的,要解决协议约定问题、传输协议问题和服务发现问题。
  • Bruce Jay Nelson的论文、早期ONC RPC框架,以及NFS的实现,给出了解决这三大问题的示范性实现,即协议约定要公用协议描述文件并经过这个文件生成Stub程序,RPC的传输通常须要一个状态机,同时须要另一个进程专门作服务发现。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第8章微服务相关协议.

8.1基于XML的SOAP:不要说NBA,请说美国职业篮球联赛,本节总结以下:

  • 原来的二进制RPC有不少缺点:格式要求严格、修改过于复杂、不面向对象。因而产生了基于文本的调用方式——基于XML的SOAP。
  • SOAP的三大要素:协议约定用WSDL、传输协议用HTTP、服务发现用UDDL。

8.2基于JSON的RESTful接口协议:我不关心过程,请给我结果,本节总结以下。

  • SOAP过于复杂,并且设计是面向动做的,于是每每由于架构问题致使并发量上不去。
  • RESTful不只仅是一个API,仍是一种架构模式,主要面向资源提供无状态服务,有利于横向扩展应对高并发。

8.3二进制类RPC协议:仍是叫NBA吧,总说全称多费劲,本节总结以下:

  • RESTful API对于接入层和Controller层以外的调用,已基本造成事实标准,但随着内部
  • 服务之间的调用愈来愈多,性能也愈来愈重要,因而Dubbo的RPC框架有了用武之地。
  • Dubbo经过注册中心解决服务发现问题,经过Hessian2序列化解决协议约定的问题,经过Netty解决网络传输的问题。

在更加复杂的微服务场景下,Spring Cloud的RESTful方式在内部调用时也会被考虑,重要的是JAR包的依赖和管理问题。

8.4跨语言类RPC协议:交流以前,双方先交换一下专业术语表,本节总结以下:

  • gRPC是一种二进制、性能好、跨语言、更灵活,同时能够进行服务治理的多快好省的
  • gRPC框架,惟一的不足就是要写协议文件。
  • gRPC 在序列化时使用Protocol Buffers,网络传输时使用HTTP 2.0,服务治理时可使用基于Envoy的Service Mesh。

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

第9章网络协议知识串讲.

9.1 知识串讲:用"双*"的故事串起网络协议的碎片知识(上),

9.2 知识串讲:用"双*"的故事串起网络协议的碎片知识(中),

9.3 知识串讲:用"双*“的故事串起网络协议的碎片知识(下),

9.4 搭建—个网络实验环境:授人以鱼不如授人以渔,

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

这份【趣谈网络协议】文档共有435页,须要完整版的朋友,能够点赞此文关注小编后看文末来获取!!

固然,单单有文档看是远远不够的,还有视频和相匹配的课件进行学习提高,努力把计算机网络这一起给搞明白,相信必定会有不凡的人生!!

TCP/IP/网络IO学习视频

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

TCP/IP网络协议

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

网络IO

还有课件分享

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

IO课件

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

TCP/IP课件

TCP/IP/IO网络通讯视频和课件获取,点赞+关注小编后添加↓↓↓免费获取!资料名字叫作【网络编程】

好了,今天就分享到这里了,但愿你们可以好好学习,把计算机网络这一起给提高上来,也但愿本文可以获得你们的喜欢!!