• 互联网是如何连接的:计网概述


    当你在浏览器输入网址之后会发生什么

    最直观的感受当然是跳转到网址所指向的页面啦,但在网络比较卡的时候,你可能注意到过,浏览器的左下角通常会有一些等待什么什么请求之类的小字。这时候,一个问题让你搜索到了这篇博文,我输入网址之后,浏览器到底干了什么?更要命的是,我想知道互联网到底是如何把每个人连接起来的?

    我们先来认识一下你的浏览器,虽然大多数时间你都在使用它愉快的网上冲浪。可能在你的印象里,这个玩意儿就是只能开开网页,看看视频,功能强大,但略显单一。现在,随便找个PDF文件然后打开,你的默认方式应该是你心爱的浏览器。如果不是,可以右键选择打开方式,再用浏览器打开。

    应该都能打开吧?这么一说,好像我们从来没注意过这家伙居然还有别的用处。为什么潜意思里觉得它就是看看网页呢?这里要更新一下名词,实际上我们输入的网址,更准确的叫法应该是URL。

    URL: Uniform Resource Locator,统一资源定位符。词听起来有点绕口,你可以看看现在打开PDF标签页的地址栏,看看它的开头是不是跟网址不一样

    URL有各种各样的写法“http:”、“https:"、“ftp:”、“file:”、“mailto:”,开头部分表示了浏览器应当采取的访问方式。那么输入网址之后,首先发生了什么事就呼之欲出了。

    浏览器先得解析URL

    比如我们要访问博客园的首页,那么应该在地址栏输入https://www.cnblogs.com。浏览器看到URL的开头是https,就会明白这是一个web请求,后面的www.cnblogs.com指的是Web服务器域名。

    域名可以看成是IP地址的别名,你可以在搜索引擎里输入IP,你会看到一连串的数字。没有人会希望上个网还要先拿小本本把经常用到的IP地址记下来,再说,输入这一连串的数字也很麻烦,一不小心就输错了。所以我们使用域名来代替IP地址,帮助记忆。

    IP地址:你可以类比于现实中的住房地址,因特网上的计算机也拥有一个惟一标识符来区别它的网上邻居(其他的电脑)。

    APP支持IPv6网络是怎么回事?你可能在APP启动界面的底部看到过这行小字,实际上IPv6之前是IPv4(互联网通信协议第四版),就是一个给大家分配地址的协议,在这个版本里IP用32位的整数表示。32位?看起来很长的样子,然而2011年的时候,IANA就宣布IPv4地址43亿IP地址已经分配完毕。

    后续的IPv6可谓是超级加强版,32位扩展到了128位意味着能给地球上每一粒沙子编号,他能分配大约3.4×10^38个IP地址!

    向DNS查询Web服务器的IP地址

    域名对应着IP地址,那么如何才能知道这个域名对应的IP地址是什么呢?自然是得问拿小本本记下这些东西的人啦。

    DNS : 一个可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

    只用一台DNS服务器去存储数不胜数的IP地址是不可能的,所以在分散保存的情况下,一台DNS是如何处理它查询不到的域名信息呢?

    实际上,如同域名一样,DNS也是分级的。域名的最左边部分表示机器名字,它随后的部分则是该计算机所属的组织,可能还会有子组织。最右边则代表顶级域名,指定该计算机所属组织的类型。大部分的顶级域都被用于美国的公司和组织,其他国家的计算机一般是用国家的特有顶级域,比如cn(中国)。

    顶级域 主要应用
    edu 教育机构
    com 商业公司
    org 非盈利组织
    net 网络供应商
    cn 中国国家顶级域名

    负责管理下级域的DNS服务器找不到该域名对应的IP地址就会发送一个请求到它们的上级DNS服务器中去寻找,然后上级DNS还找不到就到更上一级的DNS服务器中,以此类推。最上一级叫做根域,根域服务器的地址在配置DNS服务器的时候就已经写入其配置文件里面了。

    分配给根域DNS服务器的IP地址在全世界仅有13个,很遗憾中国没有。日本占据一个,其他的全是欧美。

    虽然IP地址只有13个,但实际上服务器的数量远远多于13个,因为根域DNS是使用多台服务器对应一个IP地址的。

    不知道你是否有过浏览器突然不能访问网页的经历,更离谱的是QQ居然能用,就他浏览器不行。这是为什么呢?多半是DNS服务器地址的问题,在 控制面板网络和 Internet网络连接 右键属性选择IPv4 改成下图一般就好了

    为什么QQ没问题呢?因为QQ是直接通过IP连接的。

    你访问的其实是文件

    现在不如点开一下我首页的第一篇博客吧,或者直接访问https://www.cnblogs.com/AD-milk/p/13171059.html然后按下F12打开开发者模式,让我们看看都有些什么?

    我们请求了一个html文件,1317...好像就是输入的网址里的那个。这么说的话,这一个一个斜杆好像确实是像文件路径的结构!

    但如果你访问博客园的首页,你会发现路径名那里只有一个/,这表示根目录,好像并没有指定文件呀。这种省略文件名的情况下,一般是默认访问根目录下的index.html或者default.html这样的文件。

    html:超文本标记语言,你可以简单的认为是可以在文本中嵌入音频,图片和链接的语言

    按理说我们只是请求了13171059.html这个文件,但从图中来看我们好像请求了不止一个文件,这是为什么?回想一下,你会有过因为网卡而导致加载的页面只有文字的情况?这一般是因为网络问题,css文件以及图片没有被传输过来。浏览器在加载文件之前并不知道这里还需要什么图片或者文件,只有加载之后才会继续发送请求。

    博文中图片的源代码

    css文件是一种用来指定html样式的文件。缺少了它页面就没有好看的风格了。

    1 条请求消息中只能写 1 个 URI。如果需要获取多个文件,必须对每个文件单独发送 1 条请求。

    URI:Uniform Resource Identifier,统一资源标识符,URL是特殊的URI

    眨眼间的旅途

    你说的我都知道了,可你还是没有回答我,互联网到底是如何互联的?

    首先来考虑一个简单的场景:两台电脑之间如何互相通讯?当然是接跟线把两个都连上啦,那再来五台怎么办?往电脑上再打五个接口?这显然不现实,我们可以让集线器帮我们的忙。它具有多个端口,可以实现其内部所有网络设备的连通。不过集线器是个榆木脑袋,它唯一知道的事情就是:当某一个端口发出数据时,它就把这个数据复制到与其连接的其他端口,这样所有连接到集线器的设备都可以获得这个数据包。这跟个大喇叭一样,太烦人了,说点悄悄话都不行。

    之所以电缆不如光纤通信速率高,是因为电信号在提升通信速率的同时,其衰减率也会提高(信号在传播过程中减弱),导致信号无法传到目的地。相对地,光信号本来的衰减率就很低,提高通信速率也并不会提高衰减率。此外,光纤还不受电磁噪声的影响,因此光纤能够进行高速通信。

    不是光信号本来就比电信号快啦!!!

    为了解决广播所带来的安全问题,以及减少不必要的流量,我们可以换个聪明点的家伙:交换机。交换机比集线器智能的地方在于,它记下了与其相连的主机的物理地址MAC,他把这些存储在地址表里面。那么现在,当数据报从一个端口发出时,它能根据数据报提供的目标MAC,直接将数据发往预期的目的端口。终于可以和喜欢的女同学说悄悄话了,呼~~。

    但集线器和交换机只能在局域网中交换信息,无法在外部网络交换。因为要在互联网上通讯需要识别IP地址,显然集线器和交换机没有这个功能。所以我们需要用到路由器:它是一个能根据IP地址,将数据报从一个路由转发到另外一个路由的设备。这意味着它具有过滤功能,但一个数据报达到该路由时,它会检查这是否是发给自己的,如果不是的话就将它转发给其他路由。所以它相当于一个网络的网关。

    现在的路由器大多集成了三者的功能,成了“瑞士军刀”。让人想不到的是,尽管交换机比路由器简单,但实际上路由器早于交换机问世。

    现在从我们电脑发出的请求数据报就沿着电路,被多个路由器转发,最后到达目的地。

    至此,这眨眼间的漫长旅途迎来了终点。但其实网络通讯远不止这些,这里省去了很多东西,其中最重要的就是各式各样的协议了。缺少协议会使得网络世界通讯困难,就好比现实生活中你觉得点头表示OK,摇头表示NO,但另外一个人却持相反的认识,这时候你们俩的交流就会遇上大麻烦!

    协议:定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和接收一条报文或其他事件采取的动作

  • 相关阅读:
    eclipse注释乱码的一个小问题
    《java 编程思想》 读书笔记 (一)
    《java 编程思想》 读书笔记 (一)
    055_SSM——sprinMVC的返回值
    054_jQuary——html()与text()方法的区别?
    053_Servlet——resp.getWrite()与resp.getPrint()的区别?
    052_html——html转环成jsp出现乱码的问题?
    051_html——checkbox的默认值与工作属性
    050_SSM——SpringMVCV中的各个器都起了什么作用?
    047_SSM——为什么返回String使用StringHttpMessageConverter解析时会造成乱码?
  • 原文地址:https://www.cnblogs.com/AD-milk/p/13196820.html
Copyright © 2020-2023  润新知