为什么要学习网络协议

相信大家都听过通天塔的故事,上帝为了阻止人类联合起来,让人类说不同的语言,人类没法沟通,达不成“协议",通天塔的计划就失败了。

但是千年以后,有一-种叫“程序猿”的物种,“敲”着一种这个群体通用的语言,打造着互联网世界的“通天塔”。如今的世界,正是因为互联网,才连接在一起。

还记得当"Hello World!"在显示器上出现的时候,你激动的心情吗?

如果你是程序员,一定看得懂上面这一段文字。 这是每一个程序员向计算机世界说“你好,世界”的方式。但是,你不一定知道,这段文字也是一种协议,是人类和计算机沟通的协议,只有通过这种协议,计算机才知道我们想让它做什么。

为了深入理解‘网络协议’,下面就让我们一起进入它的‘世界’吧

目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5k02dg8c-1659440014069)(https://upload-images.jianshu.io/upload_images/19999858-e14d61b43398a85e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

第1章通信协议概述

程序是如何工作的

揭秘层与层之间的关系

小结

总结一下本节的内容,理解网络协议的工作模式,有以下两个小窍门。

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

第2章从二层到三层

第一层:物理层

第二层: MAC层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HYLblSol-1659440014082)(https://upload-images.jianshu.io/upload_images/19999858-612b06bffec48b6c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

拓扑结构是怎么形成的

我们常见到的办公室内部结构大多是一排排的桌子, 每个桌子上都有一个网口, 一排十几个座位就有十几个网口,一个楼层就会有几十个甚至上百个网口。如果算上所有楼层,这个场景自然比宿舍复杂多了。哪里复杂呢?接下来会具体讲解。

如何解决常见的环路问题

这样看起来,两个交换机工作得非常好。随着办公室越来越大,交换机数目肯定越来越多。整个拓扑结构就会变得复杂,这么多网线,绕来绕去,不可避免地会出现一些意料之 外的情况,比较常见的就是环路问题。

如图2-7所示,当两个交换机将两个物理段同时连接起来时,你可能会觉得,这样确保了拓扑结构的高可用性,但是却不幸地出现了环路。出现了环路会有什么结果呢?

STP中那些难以理解的概念

IP头和MAC头什么时候变、什么时候不变

对于服务器发送包时IP头和MAC头什么时候变、什么时候不变这个问题,可以分两种类型进行讨论。我把它们称为“欧洲十国游”和“玄奘西行”。

之前我说过,MAC地址是一个在局域网内才有效的地址。因而,MAC地址只要过网关,就必定会改变,因为已经换了局域网。“欧洲十国游”和“玄奘西行”两者主要的区别在于包的IP地址是否改变。不改变IP地址的网关,我们称为转发网关;改变IP 地址的网关,我们称为NAT ( Network Address Translation )网关。

动态路由的两种分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzuiGJdH-1659440014085)(https://upload-images.jianshu.io/upload_images/19999858-478546e578878156.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

动态路由的两个实现

第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概述:远在天边,近在眼前

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A08ZFXYX-1659440014106)(https://upload-images.jianshu.io/upload_images/19999858-4f8dfab008a18ce1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

服务发现问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-plMlA7YN-1659440014106)(https://upload-images.jianshu.io/upload_images/19999858-bad6a288c88ebe08.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

第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层在干什么?这些内容本书都会逐一讲解。

第三,在讲解完各个层次的协议之后,会讲述如何在当前热门领域(比如云计算、容器和微服务)中使用这些协议。

通过学习本书,读者一方面可以了解这些网络协议的真实应用场景,另一方面也可以通过上手使用云计算、容器、微服务来进一步 加深对于网络协议的理解。

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

TCP/IP/网络IO学习视频

TCP/IP网络协议

网络IO

还有课件分享

IO课件

TCP/IP课件

好了,今天就到这里了,希望大家能够好好学习,把计算机网络这一块儿给提升上来,也希望本文能够得到大家的喜欢!!

华为出品,必属精品!华为资深专家十年‘成神之作’网络协议宝典相关推荐

  1. 全世界最详细的图形化VMware中linux环境下oracle安装(三)【weber出品必属精品】...

    数据库软件和数据库都建好了,基本上可以说完成90%的工作,但是美中不足的就是企业管理器还没有安装好,现在我们就开始安装企业管理器吧. 安装之前我们先将补丁给补上.补丁我们也是采用禁默安装.补丁:p83 ...

  2. 解决linux下oracle进入sqlplus环境中后退键显示^H、上下键无效与ctrl+l无法清屏等问题【weber出品必属精品】...

    习惯linux中上下键回退历史输入的人们肯定也希望sqlplus中也能实现相同的效果,可是不幸的是,sqlplus中不提供诸多方便的快捷键,这个时候我们就需要另外安装一个插件来实现这个想法. 这个插件 ...

  3. 使用DML语句【weber出品必属精品】

    DML语句包含以下语法: INSERT:往一个表中增加新行 DELETE:从一个表中删除掉现有的行 UPDATE:更改一个表中现有的行 INSERT语句 语法:INSERT INTO TABLE(CO ...

  4. 控制用户的访问之权限、角色【weber出品必属精品】

    权限的作用 限制用户对数据的访问 权限的分类 1. 系统权限:能够存取数据库的权限 2. 对象权限:操作数据库对象的内容 系统权限   1.1 如何创建用户: SQL> create user ...

  5. 【阿朱出品 必属精品】你也说医院,我也说医院

    怎么说俺也是在卫生部官办国企做了4年啊,那就说道说道.由于中国医疗制度牵扯全民利益所以变革非常谨慎微小,中国医生圈子大多属于几个院系派系嫡系自我近支繁衍,体制内有事业单位编制问题,体制外有莆田系金钱交 ...

  6. ChatGPT团队出品,必属精品—Bito插件完全指北

    Bito是一个IntelliJ IDEA插件,由ChatGPT团队开发,用于提高开发效率和生产力. 首先,安装Bito插件非常简单.在IntelliJ IDEA编辑器中打开"Plugins& ...

  7. 剪映,最简单的PC端视频处理工具,大厂出品必属精品~

    相信在座的小伙伴都用过抖音app,看的多了难免也有想要发视频的冲动. 这时我们就会想到诸如Ae.Pr之类的视频制作工具,但他们都有一定的上手难度-- 好在抖音霸霸很早就推出了免费的官方全能剪辑工具,也 ...

  8. 关于电信重组(华为中兴观察员出品,必属精品)

    关于电信重组 论坛里很多人对国产设备商的未来在我看来过于乐观,电信重组最简单的结果就是运营商减少,这使得第四名第五名直接kill掉了,重组前这些运营商处于弱势,对技术的前沿性要求不高,从而在外国设备商 ...

  9. 吾爱出品,必属精品~

    前言 吾爱破解论坛目前是一个非常老牌的软件解密与技术交流地,从名字可以看出论坛内有着非常丰富的PJ软件资源,但随着最近的几次整改,论坛实质也逐渐与破解无缘.这也是没有办法的事,作为一个日访问量10万+ ...

最新文章

  1. VoIP败家子的游戏
  2. 有备无患的Linux操作系统备份方法
  3. STL源代码分析(ch2 内存分配)destroy
  4. 实用正则表达式(实用篇)
  5. 智能化家庭弱电布线标准规范
  6. 多个网站tracert测试用的批处理
  7. Linux下文件的三个时间意义及用法
  8. Windows下显示目录大小及文件个数
  9. *【牛客 - 318B】签到题(单调栈,水题)
  10. php上传完没进度条_php使用APC实现实时上传进度条功能
  11. AmS中的一些重要调度相关变量
  12. Docker 安装 Redis 并配置 Docker 方式的 phpRedisAdmin
  13. 《酒吧圣经》学习笔记1
  14. 关于两个HC05通讯的实际操作流程
  15. android 汉字拼音排序,Android实现中文按拼音排序方法
  16. 互换性与测量技术基础总复习题(答案)
  17. vue.js 知乎_zhihu每日水疗中心与vue.js
  18. 数据标注是做什么的?
  19. 计算机教师工作事迹介绍,先进个人 信息技术老师先进事迹.doc
  20. 改变人类进程的,除了霍金,还有他的好基友们

热门文章

  1. 【话题】什么是前端工程化?
  2. linux 安装 iftop
  3. 最新版谷歌浏览器每次都要设置允许网站使用flash的解决方法
  4. Android按键音的默认值修改流程
  5. 中国石油大学(北京)-《石油加工工程》第二阶段在线作业
  6. 枚举算法2——百钱买百鸡
  7. 长尾词是什么?如何做长尾关键词排名?
  8. 【工控安全产品】工业控制系统信息安全检查工具箱
  9. 商业搜索引擎大行其道 未来规模将超越ERP
  10. ppt模板最后一页写什么?