云原生社区 > 微服务 > 正文

架构解密从分布式到微服务:分布式系统的基石:TCP/IP

简介: TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)是Internet 的基本协议,简单地说,由底层的IP和TCP组成。TCP/IP的开发工作始于20世纪70年代,该协议是用于互联网的第一套协议。TCP/IP结合 DNS、路由协议等一系列相关协议,最终实现了网络之间任意两点间的数据通信问题。我们来看看在访问百度首页时,数据包是如何从计算机传送到百度的服务器上的。
+关注继续查看

分布式系统的基石:TCP/IP

TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)是Internet 的基本协议,简单地说,由底层的IP和TCP组成。TCP/IP的开发工作始于20世纪70年代,该协议是用于互联网的第一套协议。TCP/IP结合 DNS、路由协议等一系列相关协议,最终实现了网络之间任意两点间的数据通信问题。我们来看看在访问百度首页时,数据包是如何从计算机传送到百度的服务器上的。

在命令行中运行 ipconfig/all,查看到当前计算机配置的TCP/IP参数,可以看到默认网关和DNS服务器的信息,如下所示。

image

在浏览器中输入http://baidu.com,浏览器会发现URL的主机部分有一个域名(domain name),就查找我们的本机配置的 DNS服务器16.110.135.52,用UDP向 DNS服务器发送DNS查询命令,DNS 服务器在获取查询命令后从数据库中查询该域名所对应的主机的IP地址。我们可以通过在命令行中运行nslookup来完成同样的查询结果。下图解释了目前依然被广泛使用的基于DNS的负载均衡机制的原理。

image

当浏览器获知220.181.111.85是 baidu.com的IP地址时,就向这个地址的80端口发起TCP连接,由于220.181.111.85这个地址不是计算机所在的局域网,而是广域网的一个地址,所以此时,另外一个重要概念“路由”产生了。互联网是多个相互隔离的小网络无限延伸而组成的一个大网,路由器负责将多个网络连接,并相互交换路由表信息来确定一个IP报文要经过哪个路由器的端口发出到另外一个互联的子网。为了防止一个数据包在转发过程中形成死循环,IP包中的TTL的字段每经过路由器转发一次就会减一,当TTL为零时被丢弃,认为网络不可达,一般默认最大跳数为30。在通常情况下,只有网络管理员和路由器知道一个报文应该被转发给哪一个互联的下一个路由器,但在网络产生问题以后,我们需要追踪是哪里出了问题,此时,tracert就成了排查此问题的重要工具。

tracert利用ICMP来确定一个IP报文到达目标地址所经过的路由器节点,程序发出的前3个数据包的TTL值是1,之后3个是2,依此类推,便得到一连串数据包路径,路径上的每一个IP地址都是一个路由器的IP。

image

从上图来看,数据包首先被发往网关(本机发现百度的IP地址不是本机所在局域网的网络,就将报文发给网关处理),网关之后继续进行转发。但不幸的是遍布网络的很多防火墙、路由器等设备屏蔽了ICMP报文,于是我们看到7以后的跳数都是未知的。另外,被广泛使用的 Ping命令也是采用ICMP来实现的,因此,Ping 不通主机不代表主机不是存活的,但大多数时候,两者还是等价的,特别是在企业内部的网络中。

通过上面的解释,我们初步明白了IP报文的路由问题,接下来著名的Socket出场了。Socket是一个P地址与端口的组合,代表计算机上的一个远程通信接口,本地的一个Socket与远程的一个Socket建立连接的过程,就是著名的3次握手过程,一旦连接建立,数据流就可以穿越网络并进行双向通信了。以上面的例子来说,百度的Web服务器有一个进程绑定在80端口的Socket 上,用来接收我们发起的HTTP请求并将请求的响应转换为HTML文本流返回给浏览器,浏览器则通过解析HTML标签,完成可视化的页面展现,最终我们看到百度搜索的主页。但实际上,这个过程还是极为复杂的。

本文给大家讲解的内容是架构解密从分布式到微服务:深入理解网络,分布式系统的基石: TCP/IP

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

版权声明:本文内容由便宜云服务器实名注册用户自发贡献,版权归原作者所有,便宜云服务器开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《便宜云服务器开发者社区用户服务协议》和《便宜云服务器开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
你真的懂分布式一致性吗?从业务开发视角看分布式系统一致性
分布式的本质:利用多台机器上进行计算和存储,为了防止某些台机器发生网络延迟、节点故障等问题,就需要使用”算法或者技术“协调”多台机器来一起工作,确保系统的正确性和健壮性。 我们的业务系统与业务系统的交互:因为是集群与集群之间的互相连接,某应用A连接应用B的时候连不通了(直接tcp无法建立连接 或者连接超时),这个时候其实分区就发生了, 而因为集群的存在,这分区发生的概率非常小, 这个时候,我们是选择AP还是CP呢?这个要根据业务场景以及当前系统间交互的复杂度而定。
34 0
架构解密从分布式到微服务:分布式系统的设计理念
分布式系统从诞生到现在已经有几十个年头了,其中伴随着一些很重要的基础理论,正是这些影响深远的基础理论,奠定了分布式系统的坚实基础,造就了分布式领域的一座座宏伟大厦。为了练就一身武功,让我们从这些经典的分布式理论开始学起吧。
90 0
具有 CIDR 的 IP 地址分配架构
本文提供了一种在 Internet 中分配 IP 地址的架构和方案。该架构和计划旨在在引导互联网朝着 [1] 中概述的地址分配和聚合策略方面发挥重要作用。
79 0
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
本周架构视点:知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大规模降薪;网易云音乐起诉腾讯音乐;GitHub 弃用 io;ARM 安谋中国 430 多名员工联名签署公开信,反对软银夺权;Firefox:我们不会卖给亿万富翁
82 0
了解分布式,dubbo,分布式系统,项目架构,rpc理解
了解分布式,dubbo,分布式系统,项目架构,rpc理解
154 0
分布式系统理论基础8:zookeeper分布式协调服务
分布式服务协调员zookeeper - 应用场景和监控 zookeeper在分布式系统中作为协调员的角色,可应用于Leader选举、分布式锁、配置管理等服务的实现。
1322 0
微服务
+关注
为微服务建设降本增效,为微服务落地保驾护航。
热门文章
热门讨论
+关注
愿天堂没有BUG(公众号同名)
面试真题·进阶教程·职场干货·思维导图免费分享
文章
问答
视频
相关电子书
更多
银行分布式核心系统建设实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载


http://www.vxiaotou.com