【计网】我们是怎么上网的

引言

在现代社会,互联网已成为我们日常生活的重要组成部分,无论是工作、学习还是娱乐,都离不开它的支持。然而,很多人对互联网的工作原理了解甚少。其实,上网并不仅仅是点击一个链接或打开一个应用程序这么简单,它背后涉及到复杂的数据传输、协议交换和硬件支持。接下来,我们将探讨上网的基本原理,揭示在我们浏览网页、发送邮件或观看视频时,数据是如何从一台设备传输到另一台设备的。

知识铺垫

1.IP地址:我们在进行数据传输和通信等操作时,都是基于IP地址来定位对方的(IP地址你可以理解为全球唯一的地址,他的设计之初,是设计为唯一的,但由于后来全球网民增多,导致原来的ip地址不够用,之后,又更改为ipv6规则,但ipv6还未全部普及,还有一些其他原因,导致ip地址在某些特殊地区有不唯一(私网),但绝大多数ip地址都是唯一的,所以可以这么理解,IP地址是全球唯一的地址)
2.MAC地址(Media Access Control Address)是网络接口卡(NIC)在网络中唯一的物理地址,用于在局域网(LAN)中唯一标识一个网络设备。每个网络设备在制造时都会被分配一个MAC地址,通常是永久性的,并且不会更改。(实际地址)
3.MAC-IP:IP地址是MAC地址按一定协议的映射,MAC地址是实际的真实地址,而IP地址是映射后的虚拟地址
4.端口号:端口号是网络通信中用于区分不同服务或进程的标识符。每个运行在网络设备上的应用程序或服务都会监听一个或多个端口,来接收入站连接或发送出站数据。端口号通常与协议类型相关,用于帮助操作系统将数据包正确地转发到相应的应用层服务。例如,HTTP 使用 80 端口,HTTPS 使用 443 端口。HTTP 是无加密的协议,而 HTTPS 是加密的协议,因此,服务器在收到数据包后,会根据端口号判断该请求是 HTTP 还是 HTTPS,然后转发到相应的服务。对于 HTTPS 请求,服务器还需要进行 SSL/TLS 证书验证和加密算法的协商等处理。
5.超链接:又叫链接,点击后可以跳转到另一个文档或网页

网络架构

在实际生活中,互联网的运作依赖于一个分层结构,这就是所谓的五层网络结构(图1)。这五层结构从底层到顶层依次是:物理层、数据链路层、网络层、传输层和应用层。每一层都有不同的职责,确保数据能够从源头顺利传输到目标,保证通信的可靠性和高效性。接下来,我将用一个案例来解释这五层是怎么工作的。
在这里插入图片描述
图1:五层结构

案例

理解版案例

理解版:当我们使用浏览器上网时,比如访问百度网站(https://www.baidu.com/),其中 URL 是 https://www.baidu.com/,域名 是 www.baidu.com,而 https 是网络协议。域名会经过一个叫做 DNS 解析 的过程,被解析为对应的 IP 地址,然后使用该 IP 地址进行通信。接下来,浏览器会与服务器建立连接,通常是通过 TCP 三次握手 过程。连接建立后,浏览器会根据网络协议构建请求包(该请求包包括目标地址、对方的 IP 地址、源地址、我的设备的 IP 地址、请求内容、请求方法如 GET 或 POST、端口号等信息)。百度的服务器收到请求包后,会解析该包,检查目标地址是否正确,并进行包完整性检查。根据请求内容,服务器可能需要访问数据库查找相关数据。服务器将响应内容封装为响应包,添加源地址、目标地址、HTTP 状态码等信息,并返回给浏览器。最后,浏览器会解析和渲染响应包,呈现我们在网页上看到的内容,流程如图2

在这里插入图片描述
图2:理解版流程(这里第五步IP地址查找是多余的,因为在dns解析过程,就已经把IP地址定位了,之后是把数据包转发给中间体,中间体查表转发,这里的中间体(代指路由器、交换机)

详细版案例:

第一种情况: 用户知道自己要访问的网站,在地址栏输入 URL(如 https://www.baidu.com)后,浏览器首先会检查自己的缓存中是否有该域名(www.baidu.com)的 IP 地址。如果浏览器没有缓存,浏览器会向操作系统请求解析。操作系统会先检查本地的 DNS 缓存,如果没有结果,再检查 hosts 文件。如果操作系统的本地缓存和 hosts 文件中都没有找到相应的 IP 地址,操作系统会向配置的 DNS 服务器发起查询,最终解析出目标 IP 地址。这个过程叫做 DNS 解析过程。
第二种情况:用户不知道自己要访问那个网站,他现在输入框里面输入内容进行相关的查找如图3,然后会看到一些和你输入内容相关的一条条信息(也即是链接)如图4
在这里插入图片描述
图3:输入内容
在这里插入图片描述
图4:相关内容
第一部分:搜索结果是如何展示的?计算机是如何确定哪些内容展示的?以图4“搜索什么时候放假”为例,搜索结果大致可以分为三种情况:完全匹配、部分匹配和完全不匹配。对于完全匹配的情况,可能会有多个相关信息,这些信息的排序是基于多种因素的,例如页面内容质量、页面的权威性、外部链接数量等。部分匹配的情况则更复杂,在海量网页中,搜索引擎如何排序这些部分匹配的结果呢?在这个过程中,搜索引擎不仅仅考虑关键词的匹配度,还会通过算法来理解用户的意图和相关性。对于绝大多数用户而言,通常只会点击前几页的搜索结果,因此优化搜索引擎的排序算法、提高结果的相关性和质量就成为了提高浏览器竞争力的关键。通过这些方式,搜索引擎能够不断改进用户体验,增加用户的留存率。
第二点:如图5所示,这条信息可能是一篇几千字甚至几万字的长文章。用户通常不会逐字逐句地查看这类文章,而是通过浏览标题和摘要(如图6所示)来快速判断该文章是否符合他们的需求,然后决定是否点击跳转到具体页面查看完整内容。(这里补充一下为什么会有这么多相关内容的展示,这就是爬虫的作用。百度爬虫按照一定的规则和算法自动地爬取其他网站的信息,进行整合和处理,并将这些信息存储到本地或数据库中。之后,当用户进行搜索时,搜索引擎会根据用户的查询关键词,快速检索这些存储的信息,并根据相关性和重要性对结果进行排序,最终将最匹配的搜索结果展示给用户。所以我们看到的信息是百度爬取整合排序后的内容)

在这里插入图片描述
图5:
在这里插入图片描述
图6:标题(这里的标题算是伪标题)和摘要
综合以上两点,网页展示的核心因素包括排序相关性网页的重要性(例如,假设有两个网页都介绍西红柿炒鸡蛋的做法,如果第一个网页被许多其他网站链接,而第二个网页很少有外部链接,那么显然,第一个网页在搜索引擎中会被认为更重要)这里就简单的介绍一下,感兴趣的可以去看一下
相关性计算:
(1).关键词匹配:中文搜索通常是基于词语的匹配进行相关性计算的。与英文不同,英文单词之间由空格分隔,而中文没有空格,且字与字之间的组合方式决定了含义的变化。因此,中文搜索需要先通过分词技术将文本分解成有意义的词语,再在词库中进行匹配,这就是关键词匹配的过程。
(2).TF-IDFTF(词频,Term Frequency):某个词在文档中出现的频率。一个词在文档中出现的频率越高,通常认为它对该文档越重要。
IDF(逆文档频率,Inverse Document Frequency):一个词在所有文档中的出现频率。词出现的频率越低(即该词在少数文档中出现),该词的重要性越高,因为它能帮助区分不同文档的主题。这里只介绍这俩个点
网页重要程度:推介去看著名的google的pagerank算法
排序:需要考虑以下几点:相关程度,用户搜索意图(比如有时候用户之搜索一个词或一个字,就需要适当的扩展),还有网站的权威性等等

接下来是五层结构的作用(图7):

构建HTTP请求(应用层): 浏览器在应用层根据用户输入的URL构建HTTP请求。该请求包括请求行(如GET或POST方法,请求的资源路径和HTTP版本)、请求头(如Host、User-Agent、Accept等附加信息),以及可选的请求体(对于POST请求包含的数据)。

封装为TCP段(传输层): 应用层构建的HTTP请求会传递给传输层,封装成TCP段。TCP负责在客户端和服务器之间建立可靠的连接,并确保数据传输的顺序和完整性。TCP还会为每个数据段添加必要的头信息,如源端口号和目标端口号。

封装为IP数据包(网络层): TCP段会被传递到网络层,并进一步封装成IP数据包。IP数据包包含源IP地址和目标IP地址,用于在网络中路由数据包。网络层的主要任务是根据目标IP地址选择合适的路径来将数据传输到目标设备。

封装为以太网帧(链路层): 网络层的IP数据包会被传递给链路层,封装成以太网帧。以太网帧包括源和目标的MAC地址,用于局域网内的数据传输。链路层还会计算并添加帧校验序列(FCS),以确保数据传输的完整性。

物理传输(物理层): 最后,以太网帧被转换成电信号或光信号,并通过物理介质(如电缆或光纤)传输到目标服务器。物理层负责数据的实际传输,包括信号的调制、传输速率和信号强度的控制。

在这里插入图片描述
图7:在请求流程中,还有很多细节没有说全(比如MAC地址和IP地址之间的映射是通过ARP协议来实现的。传输过程中,数据可能经过多个中间设备,如路由器和交换机。交换机通常用于同一局域网内的设备之间的数据转发,而路由器则负责不同网络之间的通信,连接两个局域网。局域网有一定的范围,跨越局域网之间的通信需要通过路由器进行。数据链路层会检查MAC地址还有检查包的完整性等等)

服务器接受了数据包,之后进行响应,流程和请求流程类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值