• 2互联网和互联网的组成


    一、互联网的组成(教材版)

    150-互联网的组成-拓扑结构.png

    互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块:

    1. 边缘部分:这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
    2. 核心部分:由大量网络和连接这些网络的路由器组成。这部分用来为边缘部分提供服务。

    注意:上述分类过于正规,有兴趣深入的同学可以看大学计算机网络的教材,请看我们下述的科普版本。

    二、互联网的组成(科普版)

    说到互联网大家都不陌生,利用互联网打开电脑或手机看新闻、写邮件、逛淘宝、聊微信、看抖音。现代人离开了手机离开了互联网就好像和全世界断了联系,好像已经作为我们身体的一部分了。

    区块链号称是是下一代互联网。那么,到底什么是互联网?

    作为一个技术老兵,见证互联网的发展,以下是个人对什么是互联网的理解:谈互联网主要就是谈互联网的组成,也就是说明互联网的基础设施的组成。

    互联网的基础设施非常庞大,包含硬件、软件两部分。下面我们先来看下当你打开浏览器,输入一个网址比如 <www.taobao.com> ,几秒钟就看到淘宝首页。这个一个简单的动作,整个互联网到底发送了什么?其实这是一个非常非常复杂的事情。下面是一个简化的过程描述:

    1. 浏览器检查是否有缓存过域名对应IP地址
    2. 如果没有缓存的域名对应的IP,请求域名服务器解析成对应的IP地址(这个过程也非复杂,暂省了)
    3. 浏览器建立Socket连接,根据http协议组装get 类型的http header,通过tcp/ip协议发送报文。
    4. tcp/ip协议会通过网络层网卡(wifi或网线)发射信号到家庭里面的路由器,家里的路由器发送信号到电讯厂商的交换机(中间可能会经过很多次的路由)找到目标服务器,服务器也许托管在IDC机房,也许在阿里云VPS,也许在国外。
    5. 机房里面会有大型交换机、机柜、专业的精密空调,你要访问的那台IP的服务器就在其中某个机柜中。
    6. 在服务器接收到信号后,会根据tcp/ip协议解出http协议头。根据get的请求决定需要返回的数据
    7. 在服务器端实际上根据业务还有很复杂的逻辑;服务器后面还有许多台服务器,到底指定那台服务器来处理请求,需要负载均衡设备来完成
    8. 要返回的数据是在缓存里面、还是在静态文件中、还是在数据库(如MySQL,Oracle)中
    9. 浏览器根据返回的数据,发现有一些静态资源(如CSS,JS,图片等)时有重新发起新的http请求,而这些静态资源文件可能在CDN网络中,请求静态资源的整个过程需需要从第一步重新再走一遍,并且很可能中间经过的交换机,路由过程是不一样的。

    150-互联网和互联网的组成-架构图.png

    上面的过程是不是比你想象中的复杂呢?其实这只是非常非常简化的过程。在上面的过程中,也许你已经发现了一些名词,比如网卡,路由器,交换机,又比如tcp/ip,域名,http。这些其实就是互联网设施中的一部分,有些也许你听说过,有些也许没有听过。为了方便理解,笔者把互联网的组成分成硬件、软件两类总结如下。

    2.1 互联网的硬件组成

    硬件组成主要包括终端设备,主要是联网的个人设备;组成家庭(企业)局域网、城域网、主干网的网络设备;提供内容服务的服务主机设备等。

    1. 终端设备:电脑(pc,笔记本),移动设备(手机,pad),智能电视,智能家居
    2. 网络设备:网卡,网线,水晶头,路由器,家用交换机,防火墙设备,中继器,桥接器
    3. 主机设备:IDC机房,机柜,精密空调,负载均衡器,服务器,工作站,小型机、大型机

    注意:应该没有列全,想到后再补充

    2.2 互联网的软件组成

    互联网的软件非常多,不太好分类,大致分成网络协议类,操作系统类,平台中间件类,应用类。

    1. 网络协议类,比如互联网的基础协议tcp/ip协议
    2. 操作系统类,比如window,linux,macOS,android,iOS
    3. 平台中间件类:比如webServer,Nginx,Apache,Tomcat,MySQL等
    4. 应用类:比如浏览器,微信,邮箱,游戏等等。

    注意:上述四种分类,上三种都是基于协议开发的应用程序,也就说作为开发的我们要想开发上三种应用程序,则必须得了解互联网的基础协议。

    150-互联网与互联网的组成-常用协议.jpg

  • 相关阅读:
    HBTC 2012 Hadoop与大数据技术大会演讲PPT资料
    DLINQ *.dbml文件该属于哪一层
    建立用户、密码类型
    关于VS2005网站发布问题的继续探讨
    MS SqlServer 2000交换排序的一种方法
    Socket多线程编程委托控件的奇怪问题
    .Net 3.5(LINQ,AJAX) Web简易聊天室 源码
    数据层的逻辑
    VS2005在开发Addin(外接程序)时自动生成的bug
    钩子注入
  • 原文地址:https://www.cnblogs.com/liuqingzheng/p/16124309.html
Copyright © 2020-2023  润新知