为什么要学习网络协议
相信大家都听过通天塔的故事,上帝为了阻止人类联合起来,让人类说不同的语言,人类没法沟通,达不成“协议",通天塔的计划就失败了。
但是千年以后,有一-种叫“程序猿”的物种,“敲”着一种这个群体通用的语言,打造着互联网世界的“通天塔”。如今的世界,正是因为互联网,才连接在一起。
还记得当"Hello World!"在显示器上出现的时候,你激动的心情吗?
如果你是程序员,一定看得懂上面这一段文字。 这是每一个程序员向计算机世界说“你好,世界”的方式。但是,你不一定知道,这段文字也是一种协议,是人类和计算机沟通的协议,只有通过这种协议,计算机才知道我们想让它做什么。
为了深入理解‘网络协议’,下面就让我们一起进入它的‘世界’吧
目录
第1章通信协议概述
程序是如何工作的
揭秘层与层之间的关系
小结
总结一下本节的内容,理解网络协议的工作模式,有以下两个小窍门。
- 始终想象自己是一个处理网络包的程序:如何拿到网络包,如何根据规则进行处理,如何发出去。
- 始终牢记一个原则:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。
第2章从二层到三层
第一层:物理层
第二层: MAC层
拓扑结构是怎么形成的
我们常见到的办公室内部结构大多是一排排的桌子, 每个桌子上都有一个网口, 一排十几个座位就有十几个网口,一个楼层就会有几十个甚至上百个网口。如果算上所有楼层,这个场景自然比宿舍复杂多了。哪里复杂呢?接下来会具体讲解。
如何解决常见的环路问题
这样看起来,两个交换机工作得非常好。随着办公室越来越大,交换机数目肯定越来越多。整个拓扑结构就会变得复杂,这么多网线,绕来绕去,不可避免地会出现一些意料之 外的情况,比较常见的就是环路问题。
如图2-7所示,当两个交换机将两个物理段同时连接起来时,你可能会觉得,这样确保了拓扑结构的高可用性,但是却不幸地出现了环路。出现了环路会有什么结果呢?
STP中那些难以理解的概念
IP头和MAC头什么时候变、什么时候不变
对于服务器发送包时IP头和MAC头什么时候变、什么时候不变这个问题,可以分两种类型进行讨论。我把它们称为“欧洲十国游”和“玄奘西行”。
之前我说过,MAC地址是一个在局域网内才有效的地址。因而,MAC地址只要过网关,就必定会改变,因为已经换了局域网。“欧洲十国游”和“玄奘西行”两者主要的区别在于包的IP地址是否改变。不改变IP地址的网关,我们称为转发网关;改变IP 地址的网关,我们称为NAT ( Network Address Translation )网关。
动态路由的两种分类
动态路由的两个实现
第3章最重要的传输层
TCP头格式
TCP的三次握手
由于内容实在太多了,避免影响到大家的阅读体验,就不一一展示了,只提取部分内容以供大家参考..........................
TCP四次挥手
TCP状态机
将连接建立和连接断开的两个时序状态图综合起来,就是著名的TCP的状态机,如图3-5所示。学习时建议将这个状态机和时序状态机对照着看。
流量控制问题
基于UDP的socket程序的函数调用过程
第4章最常用的应用层
HTTP请求报文的构建
HTTP返回报文的构建
HTTP的返回报文是有一-定格式的,也是基于HTTP1.1的,结构如图4-3所示。
HTTP 2.0
HTTPS的工作模式
我们知道,非对称加密在性能上不如对称加密,那是否能将两者结合起来呢?例如,使用非对称加密传输对称加密的密钥,而双方大部分的通信都通过对称加密进行。
这当然是可以的,即HTTPS的总体思路,如图4-10所示。
DHT
第5章陌生的数据中心
示例:通过DNS服务器访问数据中心中对象存储上的静态资源
假设全国有多个数据中心,托管在多个运营商处,每个数据中心有三个可用区( AvailableZone )。对象存储通过跨可用区部署实现高可用。在每个数据中心中,至少要部署两个内部负载均衡器,内部负载均衡器后面对接多个对象存储的前置服务器( Proxy-server )。下面我们以通过DNS服务器访问数据中心中对象存储上的静态资源为例,看看DNS解析和负载均衡的整个过程。如图5-3所示,各个步骤含义如下:
IPsec VPN的建立过程
2.5G网络
4G网络协议解析
异地上网问题
第6章云计算中的网络
虚拟网卡的原理
那网络是如何“骗”应用的呢?如何将虚拟机的网络和物理机的网络连接起来呢?
如图6-1所示,首先,虚拟机要有张网卡。 对于qemu-kvm 来说,这是通过Linux系统上的一种TUN/TAP技术来实现的。
OpenFlow协议和Open vSwitch
SDN有很多种实现方式,我们来看一种开源的实现方式。
如何在云计算中使用Open vSwitch
Open vSwitch 这么牛,如何在云计算中使用呢?图6-21是使用传统的VLAN模式和使用Open vSwitch的一个对比图。
控制网络的QoS有哪些方式
云中网络之隔离GRE、VXL AN:虽然住一个小区,也要保护隐私
第7章容器技术中的网络
Calico网络模型的设计思路
我们看图7-14中的两台物理机,它们的物理网卡在同一个二层网络里面。由于两台物理机的容器网段不同,完全可以将两台物理机配置成为路由器,并按照容器的网段配置路由表。
RPC概述:远在天边,近在眼前
服务发现问题
第8章微服务相关协议
数据中心内部是如何相互调用的
传输协议问题
如何解决Dubbo的协议约定问题
服务发现问题已经通过注册中心解决了。我们下面就来看一下Dubbo的协议约定问题。
第9章网络协议知识串讲
部署一个高可用高并发的电商平台
首先,要有个电商平台。假设我们已经有了一个特别大的电商平台,这个平台应该部署在哪里呢?如果使用公有云,一般会部署在多个位置,比如华东、华北、华南。我们的电商是要服务全国的,所以部署范围要广。同时,我们把主站点放在华东,如图9-1所示。
大声告诉全世界,可以到我这里买东西
当电商应用搭建完毕之后,接下来需要将如何访问到这个电商网站广播给全网。
图9-2画的是一个可用区的情况。对于多个可用区,我们可以隐去计算节点的情况,将外网访问区域放大,如图9-3所示。
看上宝贝点下单,双方开始建连接
如果你浏览了很多图片,发现实在喜欢某个商品,于是决定下单购买。
电商网站针对下单的情况提供了RESTful 的下单接口,而对于下单这种需要保密的操作,要通过HTTPS进行请求。
在进行所有这些操作之前,首先要做的事情是建立连接,过程如图9-6所示。
从数据中心进网关,公网NAT成私网
网络包从手机端经历千难万险,终于到了SLB的公网IP地址所在的公网网口。由于MAC地址和IP地址与之相匹配,因而网口将网络包收了进来。
如图9-10所示,虚拟网关节点的公网网口上会有一个NAT规则,将公网IP地址转换为VPC里面的私网IP地址,这个私网IP地址就是SLB的HAProxy所在的虚拟机的私网IP地址。
准备一个Docker的镜像
Open vSwitch的实验
笔记三大特点
第一,会从身边经常见到的事情出发,用讲故事的方式来讲解各种协议,然后慢慢扩大到不熟悉的领域。
例如,每个人都会使用查看IP地址的命令,我们就从这个命令开始,展开讲解一些相关概念。每个人都在大学宿舍组过简单的网络来打游戏,我们就从宿舍网络涉及的最简单的网络概念开始讲,然后说到办公室网络,再说到日常常用的与上网、购物、视频下载等活动相关的网络协议,最后才说到最陌生的数据中心。说到这里的时候,很多概念已经在前面的“宿舍”和“办公室”的例子中都出现过,因此更容易接受和理解。
第二,讲解网络协议时会更加贴近使用场景,将各个层次的关系串连起来,而非孤立地讲解某个概念。
常见的计算机网络课程往往会按照网络分层,. 一层一层地讲,却很少讲层与层之间的关系。例如,我们在学习路由协议的时候,在真实场景中,这么多的算法和二层是什么关系呢?和四层又是什么关系呢?再比如,我们在真实的网络通信中访问一个网站、进行一次支付, 那么在TCP三次握手的时候,IP 层在干什么? MAC层在干什么?这些内容本书都会逐一讲解。
第三,在讲解完各个层次的协议之后,会讲述如何在当前热门领域(比如云计算、容器和微服务)中使用这些协议。
通过学习本书,读者一方面可以了解这些网络协议的真实应用场景,另一方面也可以通过上手使用云计算、容器、微服务来进一步 加深对于网络协议的理解。
这份【趣谈网络协议】文档共有435页,需要完整版的朋友,可以点赞此文关注小编,【见下图】获取!!
当然,单单有文档看是远远不够的,还有视频和相匹配的课件进行学习提升,努力把计算机网络这一块儿给搞明白,相信一定会有不凡的人生!!
TCP/IP/网络IO学习视频
TCP/IP网络协议
网络IO
还有课件分享
IO课件
TCP/IP课件
TCP/IP/IO网络通信视频和课件获取,点赞关注小编,【见下图】获取!
好了,今天就分享到这里了,希望大家能够好好学习,把计算机网络这一块儿给提升上来,也希望本文能够得到大家的喜欢!!