您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

时间:2022-02-23 10:00:26  来源:微信公众号  作者:网络之路博客

作者:一天,本文首发于公众号:网络之路博客

前言

前一篇介绍了OSI参考模型/TCP/IP协议体系每层的作用以及分层的好处,但是对于一个应用数据访问来说,在TCP/IP协议体系中,它不是独立完成的,而是各层之间共同完成,直到从物理层介质变成比特流发送出去,这一篇就以一个平时常用的网站访问来了解下整个的通信过程。(这个过程不严谨,只是让初学者理解起来更加方便,省去了一些细节的过程。)

当我打开浏览器,访问自己博客时,中间经历了什么,它是如何到达对方服务器的呢?

这里只是讲解重点部分,很多协议的细节或者网络环境都进行了简化,这个其实就是后面我们要学的,但是对于初学者来说,先了解一个通信的大致过程,以及数据包在处理过程中,每一层发生了什么事情,这样在后续的学习中就会一个很大的帮助。

 

(1)打开浏览器,输入www.ccieh3c.com,这个时候应用程序浏览器会查找hosts文件或者DNS缓存,是否有这个域名对应的IP信息,如果没有则会发送给DNS进行请求,转换成对应的IP。(这里假设ccieh3c.com的地址是1.1.1.1,浏览器知道,DNS协议在后续会讲解)得到IP后,浏览器开始打包访问的请求,使用HTTP或者HTTPS,不管使用哪种,里面请求的是ccieh3c.com的首页,对应的协议会把这个请求给组织好进行封装,然后通过socket接口交给下一层传输层去完成。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

(2)传输层有两种协议,一种TCP(面向连接协议),一种UDP(无连接协议),而HTTP使用的是TCP协议,简单理解面向连接就是TCP能够保证数据能够到达对方,如果对方没收到,就会重新发送,直到对方收到为止。(这里暂时省去了TCP的细节)TCP会产生两个端口号,一个是访问者自己浏览器随机生成的端口号(假设为21345),服务器WEB的端口号为标准端口号(80),这个端口号我们在后续会在提及,传输层封装完毕,会交给下一层网络层

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

(3)在TCP/IP中网络层使用的是IP协议,IP协议里面涉及两个重要地址,一个是源IP地址,一个是目的IP地址,源地址表示访问者,目的就是我们要去访问的服务器地址1.1.1.1,大家可能好奇,平时我打开电脑就能上网了呀,并没有去设置过什么IP地址,那是因为在网络里面有另外一个协议帮助电脑自动获取地址,这个协议就是DHCP。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 


有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

这个时候电脑操作系统知道了服务器的目标IP,就开始根据这个IP找服务器,并且操作系统会做一个判断,这个目标IP地址是不是本地,还是其他的地方的,显然在服务器IP 1.1.1.1与本地电脑IP 192.168.255.2不在一个地方,不在一个地方的话,那怎么去往对方呢?操作系统会进行一个操作,把这个数据丢给默认网关,192.168.255.254,让网关来进行转发。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

(4)这个时候是不是就万事大吉了,知道了服务器的IP地址,也知道去往对方交给网关处理就行了,但是要考虑这样一个问题,这个数据是要继续往下面封装的,下一层是数据链路层,在数据链路层里面可能存在着多个设备,那访问者怎么来确定你就是我要找的网关呢?

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 


有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 


到这里,访问者电脑总算是完成了整个的数据封装流程,把这个浏览器的请求发送出去,交给网关了。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

(5)网关收到以后,需要考虑一个问题,这个数据是给自己的呢?还是交给其他地方的?这个时候网关就需要做一个操作,就是把数据给解封装,因为网关只有看到了对应的信息,它才能够判断这个包到底是给自己的还是交给其他。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

接下来的流程就不提物理层了,只要是正常规范的网卡跟线路它都能够去处理这些比特流的内容,后续重点放在二层、三层上面(这个也是路由交换的重点。)网关通过解封装后,得到以太网头部,发现目标mac是自己,继续解封装,得到IP头部,发现目标IP地址是1.1.1.1,这个地址不是自己,那就是需要交给其他地方的,网关会执行一个操作,查找路由表,选择去往1.1.1.1的最优路径。这里从图上面可以发现去往目的地可以通过B,也可以通过C到达,也非常像我们去往一个地方,比如去北京,都知道做飞机是最快的,但是可能从你源地方那没有机场,你需要做班车或者地铁到最近的机场才行。同样的,网关查路由表发现去往目的IP 1.1.1.1,有B、C两条路径可以发送,它会通过路由算法做出一个计算,选择一条最优的路径抵达到对方,然后发送出去,比如这里从B去往目的地最优,这个条目会体现在路由表里面,网关知道去往1.1.1.1,发送给B,这个时候就有2个疑问了,第一:链路层与网络层的头部已经被解封装去掉了,路由器需要重新封装,第二:封装的内容怎么填写。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

从访问者电脑到网关,以太网的头部源MAC地址是电脑的,目的MAC地址是网关的,那么到了网关这里,网关的网卡接口也有自己的MAC地址,B路由器的接口也有自己的MAC地址,这时候网关封装链路层的以太网头部在用之前的信息就不行了,因为它表示的是电脑找网关这段链路中用的,而到了这里则变成了网关去往1.1.1.1,交给B处理,那是不是以太网头部的源MAC变成了网关接口的MAC,而目的MAC变成了B的,这样B在收到这个包以后,它会发现原来是找它的,它也跟网关一样执行一样的解封装,查路由表,在封装,最终到达D。(网关到B,B到D获取的MAC同样通过ARP协议)

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

在这个结构里面,D的身后就是WEB服务器了,D在收到这个数据以后,也跟之前网关、B的操作一样,解封装链路层,发现目的MAC是找自己,解封网络网络层后 ,发现IP是1.1.1.1,就在自己身后,通过ARP得到服务器的MAC,然后封装好 ,交给服务器。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

服务器收到以后,开始如下的解封装。

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

(6)服务器收到请求后会进行回包,最终跟来的时候一样,通过封装,然后中间经过路由器转发,最终也到达客户端,解封装,最终内容呈现在了浏览器的界面上。(是不是觉得不可思议,平时我们打开浏览器输入一个域名回车,中间竟然发生了这么多的事情。)

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

从上面例子划出重点

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

从上面的通信例子,跟我们生活中寄快递是不是有点类似,在某平台购买了一个商品,卖家作为发送方,将商品进行打包,通过快递平台选择一家,让其收件、打印单号(包含收件人信息:地址+姓名+电话),快递小哥会上门收件,回到快递点,快递公司会通过去往相近地区统一装车发往下一个转运中心,可能中间会经过一个或者多个转运中心,期间也可能会经历一次或者多次卸车、装车的过程,以及去往的路径也不一样,可能某一段走的陆运、某一段走的是空运,到达了最近的转运中心,开始卸车,将同一个区域的送往代理点,代理点的送货员将对应快递送到指定的地址(这个地址可能是某公司、某小区、某学校,这是没办法确定具体的收件人),最终会通过电话号码联系到最终的收件人进行收件,这样完成了整个的运输过程, 买家收到以后,就是一个拆件的过程。这里说下,快递的举例是没法全部跟上面的通信过程全部对应上的,只是说很多流程比较相似,便于初学者理解,毕竟用生活的例子代入进来比枯燥的协议流程要容易理解些,通过一个网络通信的流程以及生活的例子,这里列出几个重点信息(也是我们后续要学的内容)

有没有好奇过,用浏览器访问某个网站时,中间经历了什么

 

  • 从上面的例子可以看出来,从客户端的应用程序发送数据到服务器,是一层一层的往下封装,最终发送出去,这个过程叫做封装,服务器收到以后,要看到实际的数据,必须一层一层的解封装,看到最终的数据,然后进行回复。
  • 封装的作用是为了把这个数据发送出去,应用层的应用程序负责产生数据,交给下层,这里有一个关键的点记住,应用程序是知道对方服务器的具体地址的,它会告诉下层。比如这里访问的是域名ccieh3c.com,这个ccieh3c.com是用户输入告诉浏览器的,浏览器它必须知道域名对应的IP,所以会通过另外一个应用层协议DNS来获取对应的IP,这个时候浏览器就知道了对应的IP。(DNS协议在后面会介绍到的)
  • 传输层负责建立双方的逻辑通信,并且能够正确表示上层应用,因为在实际中,可能对方服务器运行了WEB、FTP、邮件等应用功能,那客户端在封装的时候要明确标识出来上层的应用是什么,这样对方在读取的时候才知道,哦,原来你是访问我WEB应用,这个能够标识上层应用的功能叫做端口号。从这里也可以发现,地址加端口号能够确定最终去往的目的服务器是哪台以及访问这台服务器的什么应用。
  • 传输层完毕后,会继续封装给网络层,网络层必要知道2个重要功能,(1)通过上层给的地址信息,生成IP头部(IP头里面有两个最重要的信息,源IP,目的IP,源IP表示客户端自己,目的IP表示访问的最终目标)(2)查找目标地址怎么走然后继续封装交给下一层链路层。
  • 链路层目前主流使用的是以太网(局域网),以太网头部有三个重要的信息(1)必须包含源目MAC,否则无法进行封装(2)源目MAC应该怎么填写呢,从上面的流程来看,会发现一个特点,从客户端最终抵达服务器,以太网头部的变化从客户端--网关网关--B,B--DD--服务器,每经过一个设备,源目MAC是会变化的,是不是可以理解成以太网的源目MAC只在本地链路内有效。(3)不管是客户端--网关、B--D,它本身是不知道对端的MAC地址的,它依靠一个协议去获取,那就是ARP协议,最终封装完成,交给物理层转换成比特流从网线发送出去到网关。
  • 中间设备收到,比如B、D,它们是会进行解封装的,查看以太网头部,发现MAC是自己,继续解封 装,查看IP头部,发现去往的目的IP不是自己,那就查路由表转发,交给下一个传递设备,然后封装以太网头部的时候,源MAC更新为自己,目的MAC为下一个传递设备,这里的重点是什么呢?(1)能把数据在本地链路内准确的发送给下一个传递设备 (2)下一个传递设备收到以后,通过解封装发现MAC是自己,又解封装,查看IP,发现不是自己,通过路由表查询下一个传递设备,重新封装以太网头部,打上新的MAC,这样在传递过程中就不会出错了,否则客户端--网关,网关--B的时候,以太网头部没有更改MAC地址,它看目的MAC是网关,而不是自己,那说明不是找我的,直接就把这个给丢弃了,不做处理了。
  • 最终服务器收到这个数据,它开始解封装,查看以太网头部,发现目的MAC地址是自己,继续解封装,查看IP头部,发现目的IP还是自己,这个时候服务器可以断定这个数据是给我的了,继续开始解封装,从传输层头部(TCP)中得到上层的端口号,最终通过端口号知道客户端访问什么服务,交给对应的应用程序处理,完成交互。
  • 整个通信过程就是一个不断封装、解封装的过程,不通的终端读取的层次不一样,并且在强调下之前提到过的,应用程序它不关心这个数据最终如何抵达对方的,同样网络层以及数据链路层,它也不关心你上层的应用是网页浏览、QQ、微信、还是游戏,各层负责各自的事情,下层为上层提供对应的服务。

总结

到这里呢,这篇内容就接近尾声了,这里先说下,最开始的案例有部分的流程是不对的,但是对于初学者来说,只能简化按这样的顺序讲解,否则就非常的复杂,不易于理解,后续在随着深入,博主会继续把这个流程在梳理一次,这样印象就更加深刻了,从最开始的举例,到中间的生活中的快递举例,在到后面的重要细节总结,一直在重复的讲解数据在传递过程中发生的事情,因为这个流程很关键,也是我们学习的重点,所以不断的重复加深印象,了解了整个通信过程,好处在于后续学习协议的时候会更加理解,并且排错的时候知道如何下手,因为清楚的知道每一层的作用,大致能够定位卡在哪个地方,比如网络层,目的IP在路由表中不存在,那自然数据就发不出去了,又或者以太网头部封装中,网关设备的MAC获取错误,自然数据会转发给错误的设备,希望大家可以多花时间去理解这个大致通信过程,做到心底有底,剩下的内容就是我们接下来要慢慢去学习的细节部分,完善整个路由交换的知识框架,这样才好进行网络的规划、对接、运用什么技术实现客户的需求等。顺便接下来留几个疑问,这样也是下面要开始涉及的内容了。

  • 什么是IP地址,它的作用是什么呢?
  • 电脑系统是怎么知道要把这个数据交给网关处理呢?以及什么情况下才需要交给网关处理?
  • DNS是做什么用的?
  • ARP协议它如何实现的?
  • 服务器在解封装的时候,它是在下一层的时候就知道上一层使用的是什么协议?还是必须解封装后,抵达上一层,才能知道呢?
  • 电脑的IP地址是哪里来的?
  • 在网络传输中,IP与MAC哪个变化,哪个是不变化的?
  • 像网关这样有多个接口的设备,它在封装MAC的时候以哪个口进行封装呢?

(可以尝试自己根据上面的举例理解下,这样提高学习兴趣,后面会更有动力哇,但是切记不要钻牛角尖,这样很容易卡死在胡同里面,降低学习兴趣。)

 

心底有底,剩下的内容就是我们接下来要慢慢去学习的细节部分,完善整个路由交换的知识框架,这样才好进行网络的规划、对接、运用什么技术实现客户的需求等。顺便接下来留几个疑问,这样也是下面要开始涉及的内容了。

  • 什么是IP地址,它的作用是什么呢?
  • 电脑系统是怎么知道要把这个数据交给网关处理呢?以及什么情况下才需要交给网关处理?
  • DNS是做什么用的?
  • ARP协议它如何实现的?
  • 服务器在解封装的时候,它是在下一层的时候就知道上一层使用的是什么协议?还是必须解封装后,抵达上一层,才能知道呢?
  • 电脑的IP地址是哪里来的?
  • 在网络传输中,IP与MAC哪个变化,哪个是不变化的?
  • 像网关这样有多个接口的设备,它在封装MAC的时候以哪个口进行封装呢?

(可以尝试自己根据上面的举例理解下,这样提高学习兴趣,后面会更有动力哇,但是切记不要钻牛角尖,这样很容易卡死在胡同里面,降低学习兴趣。)



Tags:浏览器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29  Search: 浏览器  点击:(19)  评论:(0)  加入收藏
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 ——star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  Search: 浏览器  点击:(28)  评论:(0)  加入收藏
微软Edge浏览器新功能:手机上传 配对设备直接传文件
2月21日,微软最新的稳定版本Edge浏览器在Windows 11/10端加入了“手机上传”功能。这一功能允许用户直接从移动设备上上传文件,适用于所有网站,并且没有文件格式限制。要使用这...【详细内容】
2024-02-21  Search: 浏览器  点击:(140)  评论:(0)  加入收藏
腾讯QQ浏览器工具权益卡上线PC端,每月最低6元
IT之家 1 月 29 日消息,腾讯 QQ 浏览器此前在手机端上线工具权益卡,现将部分权益适用范围拓展至 PC 端,每月 10 元,连续包月为 6 元。开通后用户可以在 QQ 浏览器软件内享有由腾...【详细内容】
2024-01-29  Search: 浏览器  点击:(84)  评论:(0)  加入收藏
苹果Safari浏览器如何快速清理缓存?只需简单两步,轻松解决!
Safari是一款由苹果公司开发的多功能浏览器,以其快速、稳定和安全而受到用户的青睐。在我们使用Safari时,它会产生大量的缓存文件。这些缓存文件会占用存储空间,影响设备的运行...【详细内容】
2024-01-17  Search: 浏览器  点击:(85)  评论:(0)  加入收藏
微软 Edge 浏览器支持双引擎同时搜索功能,便利与槽点并存
IT之家 1 月 15 日消息,微软广告和网络服务部门首席执行官 Mikhail Parakhin 近日透露了一个微软 Edge 浏览器的隐藏功能:双引擎同时搜索。顾名思义,该功能允许用户同时使用两...【详细内容】
2024-01-16  Search: 浏览器  点击:(63)  评论:(0)  加入收藏
你用的哪个!全球浏览器份额一览:Chrome遥遥领先、微软新高苹果暴跌
快科技1月1日消息,Statcounter的调查报告显示,目前全球第一的浏览器仍然是Chrome,而微软也取得不错的成绩。Google Chrome仍然是大多数台式电脑用户的首选浏览器。它的市场份额...【详细内容】
2024-01-02  Search: 浏览器  点击:(57)  评论:(0)  加入收藏
Chameleon 恶意木马曝光,伪装成谷歌 Chrome 浏览器等应用
IT之家 12 月 26 日消息,安全公司 Threat Fabric 日前曝光了一款名为“Chameleon”的恶意木马,该木马通常伪装成谷歌 Chrome 浏览器及部分银行应用,安装后便会在后台持续录制受...【详细内容】
2023-12-26  Search: 浏览器  点击:(93)  评论:(0)  加入收藏
谷歌浏览器扩展程序位置介绍
有很多朋友还不知道谷歌浏览器扩展程序在哪,所以下面小编就讲解了谷歌浏览器扩展程序的位置介绍,有需要的小伙伴赶紧来看一下吧,相信对大家一定会有所帮助哦。谷歌浏览器扩展程...【详细内容】
2023-12-25  Search: 浏览器  点击:(64)  评论:(0)  加入收藏
谷歌浏览器开启阅读模式的方法
很多小伙伴不知道谷歌浏览器在哪开启阅读模式,所以下面小编就分享了谷歌浏览器开启阅读模式的方法,一起跟着小编来看看吧,相信对大家会有帮助。谷歌浏览器在哪开启阅读模式?1、...【详细内容】
2023-12-25  Search: 浏览器  点击:(113)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(17)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(34)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(42)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(40)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(72)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(60)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(43)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(157)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(53)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(84)  评论:(0)  加入收藏
站内最新
站内热门
站内头条