趣谈网络协议(刘超)笔记
文章平均质量分 62
谛听-
线上幽灵
展开
-
趣谈网络协议---DHCP与PXE:IP是怎么来的,又是怎么没的?
linux主机在发包前,先判断目标IP是否跟自己是同一个网段的,如果是 ,则发送ARP请求,获取目标MAC,否则,获取网关MAC,将包发送给网关。如果没有配置网关,包发不出去。网关要和当前网络至少一个网卡是同一个网段的。动态主机配置协议(DHCP)DHCP Discover:新机器加入网络时,先广播自己的请求(Boot request),报告自己的Mac,同时请求IP,源IP为0.0.0.0...原创 2018-09-23 16:32:05 · 1734 阅读 · 0 评论 -
趣谈网络协议---基于XML的SOAP协议:不要说NBA,请说美国职业篮球联赛
ONC RPC 存在哪些问题?ONC RPC 将客户端要发送的参数,及服务要发送的回复,都压缩为一个二进制串,存在不便。双方的压缩格式完全一致,一点都不能差,有一位不同都可能造成无法解压缩。协议修改不灵活,业务发生改变时,修改了传递的参数,如果没有及时通知对方,重新生成双方的 Stub 程序,就会造成解压缩不成功。版本问题。服务端提供的服务的参数格式为版本1,如果有一个客户端需要加一个字...原创 2018-10-03 12:20:11 · 299 阅读 · 0 评论 -
趣谈网络协议---基于JSON的RESTful接口协议:我不关心过程,请给我结果
SOAP 过于复杂,设计是面向动作的,往往因为架构问题导致并发量上不去。RESTful 是一种架构模式,主要面向资源,提供无状态服务,有利于横向扩展应对高并发。传输协议问题传输协议问题—基于 HTTP。对于 SOAP,删除一个订单,用 POST 动作,在 XML 中写明动作是 DeleteOrder。其实可以简化,直接用 DELETE 动作,然后在 XML 中放一个订单 ID 即可。于是...原创 2018-10-03 13:50:15 · 525 阅读 · 0 评论 -
趣谈网络协议---P2P协议:我下小电影,99%急死你
FTP两种工作模式FTP采用两个TCP连接传输一个文件:控制连接、数据连接。从FTP服务器角度,FTO有两种工作模式。主动模式(PORT):客户端打开端口N、N+1,用N端口向服务器的命令端口21发起连接,用N+1端口监听并向服务器发出“port N+1"命令,服务器从数据端口20主动连向客户端指定的端口N+1。被动模式(PASV):客户端打开端口N、N+1,用N端口向服务器的命令端口2...原创 2018-09-26 20:57:48 · 1803 阅读 · 0 评论 -
趣谈网络协议---二进制类RPC协议:还是叫NBA吧,总说全称多费劲
接入层,对于静态资源或动态资源静态化的部分可以做缓存,但对于下单、支付等交易场景,还是需要调用 API。对于微服务架构,API 需要一个 API 网关统一的处理。API 网关实现由多种方式,Nginx 或 OpenResty 结合 Lua 脚本是常用的方式,也可以用 Spring Cloud 中的组件 Zuul。数据中心内部是如何相互调用的?Controller 层对外提供基于 RESTfu...原创 2018-10-03 20:13:57 · 347 阅读 · 0 评论 -
趣谈网络协议---DNS协议:网络世界的地址簿
DNS 服务器DNS 服务器,一定要设置成高可用、高并发和分布式的。根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址。顶级域 DNS 服务器:返回区权威 DNS 服务器的 IP 地址。权威 DNS 服务器:返回相应主机的 IP 地址。DNS 解析流程为提高 DNS 解析性能,很多网络都会就近部署 DNS 缓存服务器。客户端向本地 DNS 发送 DNS 请求,解析 ...原创 2018-09-27 08:34:33 · 1717 阅读 · 0 评论 -
趣谈谈网络协议---跨语言类RPC协议:交流之前,双方先来个专业术语表
GRPC 是一种二进制,性能好,跨语言,还灵活,同时可以进行服务治理的多快好省的 RPC 框架,唯一的不足是还要写协议文件。GRPC 序列化使用 Protocol Buffers,网络传输使用 HTTP 2.0,服务治理可以使用基于 Envoy 的 Service Mesh。Protocol BuffersGRPC 要同时做到使用二进制、跨语言,需要双方定义一个协议文件 .proto,规定好...原创 2018-10-04 12:40:57 · 653 阅读 · 0 评论 -
趣谈网络协议---HTTPDNS:网络世界的地址簿也会指错路
传统 DNS 存在哪些问题?解析慢,更新不及时。因为缓存、域名转发、NAT 问题导致客户端误会自己所在的位置和运营商,从而影响流量的调度。HTTPDNS 的工作模式HTTPDNS 是自己搭建基于 HTTP 协议的 DNS 服务器集群,分布在多个地点和多个运营商。当客户端需要 DNS 解析时,直接通过 HTTP 协议请求这个服务器集群,得到就近的地址。使用 HTTPDNS 的,往往是手机应用...原创 2018-09-27 13:37:26 · 947 阅读 · 0 评论 -
趣谈网络协议---CDN:你去小卖部取过快递么?
CDN 和 电商系统的分布式仓储系统一样,分为中心节点、区域节点、边缘节点,数据缓存在离用户最近的位置。客户端如何找到相应的边缘节点?用户向浏览器输入 www.web.com,web.com 这个权威 DNS 服务器 ,会设置一个 CNAME 别名,指向另外一个域名 www.web.cdn.com,返回给本地 DNS 服务器。本地 DNS 服务器再访问 web.cdn.com 的权威 D...原创 2018-09-27 19:45:32 · 606 阅读 · 0 评论 -
趣谈网络协议---数据中心:我是开发商,自己拿地盖别墅
数据中心里是服务器,放在机架(Rack)上。数据中心的入库和出口的路由器,为边界路由器(Border Router)。原创 2018-09-28 06:53:03 · 492 阅读 · 0 评论 -
趣谈网络协议---移动网络:去巴塞罗那,手机也上不了脸书
移动网络的发展历程2G公共交换电话网(PSTN,Public Switched Telephone Network),不是 IP 网络,走模拟信号。手机通过收发无线信号通信,需嵌入 SIM。手机是客户端,无线信号的服务端是基站子系统(BSS,Base Station Subsysem)。基站子系统分两部分:对外提供无线通信,叫基站收发信台(BTS,Base Transceiver S...原创 2018-09-29 19:17:03 · 847 阅读 · 0 评论 -
趣谈网络协议---云中网络:自己拿地成本高,购买公寓更灵活
从物理机到虚拟机基于虚拟机,产生了云计算技术。数据中心里,有类似与虚拟机的开源技术 qemu-kvm。软件模拟硬件,主要模拟 CPU、内存、网络、硬盘。虚拟网卡的原理虚拟机打开 Linux 上的 TUN/TAP,一种字符设备文件,在物理机可看到一张虚拟 TAP 网卡,虚拟机里的应用会将网络包往这里发。它将网络包转换为文件流,写入字符设备。内核中的 TUN/TAP 字符设备驱动收到写入的...原创 2018-09-30 10:41:35 · 346 阅读 · 0 评论 -
趣谈网络协议---软件定义网络 SDN:共享基础设施的小区物业管理办法
软件定义网络(SDN)控制与转发分离。转发平面式一个个虚拟或物理的网络设备。控制平面是统一的空hi中心。控制平面与转发平面之间的开放接口。控制器向上提供接口,被应用层调用,向下调用接口,控制网络设备。逻辑上的集中控制。逻辑上集中的控制平面可控制多个转发设备,即控制整个物理网络,可获得全局的网络状态视图,并根据网络全局网络状态视图实现对网络的优化控制。OpenFlow 和 OpenSw...原创 2018-09-30 13:03:09 · 827 阅读 · 0 评论 -
趣谈网络协议---RPC协议综述:远在天边,近在眼前
RPC 框架客户端的应用发起一个远程调用时,实际是通过本地调用 Stub。Stub 负责将调用的接口、方法和参数,通过约定的协议规范进行编码,并通过本地的 RPCRuntime 进行传输,将网络包发送到服务器。服务器的 RPCRuntime 收到请求,交给提供方 Stub 解码,然后调用服务端的方法,服务端执行方法,返回结果。提供方 Stub 将结果编码,发送各客户端。客户端的...原创 2018-10-02 19:03:31 · 600 阅读 · 0 评论 -
趣谈网络协议---容器网络之Calico:为高效说出善意的谎言
Calico 网络模型的设计思路不走 Overlay 网络,不引入另外的网络性能损耗,而是将转发全部用三层网络的路由转发实现。1、两台物理机的网卡在同一个二层网络中。由于物理机的容器网段不同,可完全将物理机配置为路由器,并按照容器的网段配置路由表。2、容器外,直接用路由转发到 veth pair 在物理机这一端的网卡,省掉一个 IP。容器内,把容器外面的 veth pair 网卡算作默认网...原创 2018-10-02 16:53:33 · 1965 阅读 · 0 评论 -
趣谈网络协议---从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?
第一层(物理层)Hub,集线器,采用广播模式,会将自己收到的每一个字节都复制到别的端口。第二层(数据链路层)相比于Hub,有以下优势:1、交换机有学习MAC的能力,学会后就知道谁在哪里了,就不用广播 了。2、多路访问,可控制往媒体上发数据的时候,谁先发,谁后发。第二层网络包格式:当源机器不知道目标机器的MAC地址时,需要ARP协议,已知IP,求MAC,然后进行缓存。广播报文:...原创 2018-09-23 16:58:38 · 1203 阅读 · 1 评论 -
趣谈网络协议---交换机与VLAN:办公室太复杂,我要回学校
拓扑结构是怎么形成的?交换机之间相连,可形成一个较复杂的拓扑结构。机器1想要访问机器4,必须要知道机器4的MAC,知道机器4与自己是同一个网段后,进行ARP广播。别的机器收到广播后,发现不是找自己,不处理。交互机A收到广播后,一开始不知道拓扑信息,转发给除来的网口外的所有网口,交换机B也同样,这时,机器4收到广播后,发现是找自己的,主动回应了自己MAC,ARP请求完成。在这个过程中,交换机...原创 2018-09-23 18:13:57 · 660 阅读 · 0 评论 -
趣谈网络协议---ICMP与ping:投石问路的侦察兵
ICMP协议格式ICMP 报文是封装在 IP 包里面的,因为侦察兵需要轻装上阵。最常用的类型是主动请求为 8,主动请求的应答为 0。查询报文类型ping使用查询报文,是一种主动请求,并获得主动应答的ICMP协议。标识设置成发送进程的ID号。序号用于编号,查看是否有分组丢失、失序或重复。选项数据中,ping会存放发送请求的时间值,来计算往返时间,说明路程的长短。差错报文类型IP差...原创 2018-09-23 19:59:57 · 352 阅读 · 0 评论 -
趣谈网络协议---世界这么大,我想出网关:欧洲十国游与玄奘西行
怎么在宿舍上网?学习给每隔宿舍的网口分配了一个IP地址。这个IP地址是校园网的IP,有网管部门控制。宿舍上网有2个方法:1、买个网卡。一张网卡的线插到交换机,另一张网卡的线插到校园网的网口。且新网卡的IP地址要按网管部门分配的配置。2、买个家庭路由器。外网网口的线插到校园网的网口,且配置成和网管部的一样。内网网口连上宿舍所有的电脑。宿舍中的电脑还需配置网关。MAC头中,协议类型,可以...原创 2018-09-23 20:32:43 · 800 阅读 · 0 评论 -
趣谈网络协议---UDP协议:因性善而简单,难免碰到“城会玩”
TCP 和 UDP 有哪些区别?TCP是面向连接的,UDP是面向无连接的。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。例如:TCP提供可靠交付。通过TCP连接传输的数据,无差错、不丢失、不重复、并且按序到达。TCP是面向字节流的。UDP是基于数据报的。TCP是可以有拥塞控制的。TCP是一个有状...原创 2018-09-24 14:58:07 · 315 阅读 · 0 评论 -
趣谈网络协议---TCP协议:因性恶而复杂,先恶后善反轻松
TCP包头格式序号解决包的乱序问题。确认序号确认对方收到,没有收到则重新发送。状态位维护连接的状态。SYN发起连接,ACK回复,RST重新连接,FIN结束连接。窗口大小用于流量控制。TCP三次握手为什么是3次握手?1、为了防止已失效的连接请求报文段突然又回到服务端。两次次握手:A的请求连接B的报文在网络中滞留,延误到连接释放后才到达B,B以为是A新发起的连接请求,同意建立连...原创 2018-09-24 18:45:49 · 764 阅读 · 0 评论 -
趣谈网络协议---HTTP协议:看个新闻原来这么麻烦
HTTP 请求的准备将域名发送给DNS服务器,解析为IP地址。然后建立TCP连接。HTTP协议大部分为1.1,默认开启Keep-Alive,建立的TCP连接可在多次请求中复用。HTTP请求的构建第一部分:请求行方法有几种类型。GET,向服务器获取资源。返回的可能是JSON字符串。POST,主动告诉服务端一些信息,这些信息可放在JSON字符串中。往往用来创建一个资源。PUT,向指定...原创 2018-09-24 20:13:45 · 747 阅读 · 0 评论 -
趣谈网络协议---HTTPS协议:点外卖的过程原来这么复杂
对称加密加密和解密的密钥相同。效率高。非对称加密加密和解秘的密钥不同。安全性高。有两对,每对中一把是公钥,一把是私钥。公钥加密的信息只有私钥能解。私钥加密的信息只有公钥能解。客户端给外卖网站发送的时候,用外卖网站的公钥加密。外卖网站给客户端发送消息的时候,使用客户端的公钥。数字证书外卖网站需要把公钥传给客户端,但是客户端如何验证这个公钥一定是外卖网站给的,而不是黑客?数字证书可以验证...原创 2018-09-25 13:50:09 · 571 阅读 · 0 评论 -
趣谈网络协议---云中的网络QoS:邻居疯狂下电影,我该怎么办?
流量控制技术,可实现 QoS(Quality of Service),从而保障大多数用户的服务质量。对于控制一台机器的网络的 QoS,分两个方向,入、出。只能控制出方向,通过 Shaping 控制出的流量。进入的方向无法控制,只能通过 Policy 将包丢弃。控制网络的 QoS 有哪些方式?在 Linux 下,可通过 TC 控制网络的 QoS,主要通过队列的方式。1、无类别排队规则(Cl...原创 2018-09-30 21:18:10 · 650 阅读 · 0 评论 -
趣谈网络协议---云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私
VLAN 只有 12 位,共 4096 个,对于云平台的隔离问题,不够用。所以,要扩展 VLAN 协议,在原来的包的格式的基础上扩展出一个头,里面包含用于区分租户的 ID,外层的包的和格式尽量和传统一样,很像隧道协议。底层的物理网络设备组成的网络为 Underlay 网络,用于虚拟机和云种的技术组成的网络为 Overlay 网络。两个 Overlay 技术:GREGeneric Rout...原创 2018-10-01 15:03:34 · 1454 阅读 · 0 评论 -
趣谈网络协议---流媒体协议:如何在直播里看到美女帅哥?
视频时快速播放一连串连续的图片。视频中的图片压缩:视频编码的两大流派ITU(International Telecommunications Union)的VCEG(Video Codding Experts Group)。侧重传输。ISO(International Standards Organization)的MPEG(Moving Picture Experts Group)。...原创 2018-09-25 21:19:25 · 752 阅读 · 0 评论 -
趣谈网络协议---容器网络:来去自由的日子,不买公寓去合租
云计算解决了基础资源层的弹性伸缩,却没有解决 PaaS(平台即服务) 层应用随基础资源层弹性伸缩而带来的批量、快速部署问题。于是,容器应运而生。容器如何将应用打包?1、隔离技术,相当于制造集装箱。namespace,负责看起来隔离,即每个 namespace 中的应用看到的是不同的 IP 地址、用户空间、进程号等。cgroup,负责用起来隔离,一个应用只能用机器中的一部分 CPU、内存。...原创 2018-10-01 17:21:07 · 437 阅读 · 0 评论 -
趣谈网络协议---容器网络之Flannel:每人一亩三分地
Kubernetes,可灵活地将一个容器调度到任何一台机器上,还可修改容器的副本数。要解决的重要问题,是通信。1、应用将自己环境的 IP 和端口注册到注册中心指挥部,方便其他应用请求。如果发生变化,重新注册。2、应用如何相互通信?通过 Flannel。(1)不能每个物理机的网段都是 172.17.0.0/16,而是应该每台物理机从这个大网段抠出一个小的网段,这样,容器内的应用向注册中心指...原创 2018-10-01 20:03:01 · 925 阅读 · 0 评论 -
趣谈网络协议---云中的网络安全:虽然不是土豪,也需要基本安全和保障
对于公有云上的虚拟机,仅开放需要的端口。采用的方式常常是用 ACL(Access Control List)来控制 IP 和端口。设置好规则,只有指定的 IP 段能访问指定的开放接口,这些规则的集合称为安全组。安全组如何实现?网络包进入一台机器的过程:Netfilter 框架可在上图 5 个节点中插入 hook 函数,截获数据包,对数据包干预。一个著名的实现,是内核模块 ip_tabl...原创 2018-09-30 17:07:13 · 503 阅读 · 0 评论