了解互联网是如何运作的?

109 阅读7分钟

写文章的原因

刚来公司,在安排的课程中学习到网络基础,因为本人是非计算机专业,对于计算机网络并不是很清楚,所以通过视频的学习做出了此总结。个人并不专业,不喜勿喷,错误的地方望指正。

好的,我们开始!

1. 网站的首页如何显示在客户端的页面?

当客户端和服务器连接互联网的时候,都会分配一个IP

简单的过程:客户端的消息将会被转化成电子信号,通过电缆发送到服务器,在服务器端再将电子信号转化为计算机可以使用的文本数据。 而两者之间是通过TCP/IP协议族实现的

协议:一组规则,用于指定计算机用如何通过网络来相互通信

共分为4层

应用层:提供特定于应用程序的协议 HTTP FTP IMAP

传输控制层:发送数据包到计算机上使用特定端口号的应用程序

网络层:使用IP地址将数据包发送到特定的计算机

链路层:将二进制数据包与网络信号相互之间转换

以使用http协议为例 客户端需要得到index.html页面,就想服务端发送消息,消息在发送前会被分解为许多片段,成为数据包,通过应用层进入TCP层(传输控制层)后,每个数据包都会被分配一个端口号

端口号用来确定目标计算机的那一个应用程序要接受并使用该数据包

TCP是一种面向连接可靠字节流服务协议

为什么说它可靠呢?

TCP必须先经过三次握手建立连接之后才能交换数据,每个收到的数据包都会像发送法发送ack确认,已保证发送成功

详细的就不过多阐述,想了解具体的过程,请自己查看资料。

==这个也是面试重点内容==

进入IP层后,每个数据包将会赋予目标计算机的IP地址

IP是不可靠的无连接协议,它不关心数据包是否到达目的地,也不关心连接和端口号

它的工作是发送数据包并将其路由到目的目标计算机

每个数据包都是独立的互不依赖的。可能会乱序到达目标地址或者在传输途中丢失,这时候就会发出这样一个疑问?

如何保证数据包到达和顺序正确呢?

都交给了TCP,这也体现了分层的作用

在数据包过大时,在IP层会进行分包

由于每个数据包在物理链路层走的,物理链路不一样,传输速度不一样。导致数据包没有按顺序到达目的地

但TCP会根据数据包上携带的序列号来进行排序重组,并且发送方在一个特定时间内没有接受到接收方的ack确认时,则发送发回重新传送该数据包

IP不等同于IP地址

IP是网络协议,而IP地址是一串数字

IP地址有两种标准:IPv4,采用的是32位地址,即4字节,因此地址空间只有2的32次方,约40亿个地址

IPv6,采用128位地址,因此新增的地址空间支持2的128次方,约3.4X10的38次方个地址。它的出现是为了解决IPv4枯竭的问题

有了IP地址和端口号之后,链路层将数据包的文本信息转译成电子信号,然后通过电缆传输

在电缆的另一端的路由器检查每个数据包中的目标地址并确定将其发送到何处,最终数据包到达服务器

然后数据包从TCP/IP协议族的底部开始向上运行,当数据包向上通过协议族时,客户端添加的所有路由数据,例如IP地址和端口号都将从数据包中剥离出来,当数据到达栈顶时,数据包已经重新恢复成最初始的形式。

通过端口号可以将数据传输给当前服务器,监听该端口的应用程序,应用程序根据当前请求数据做出反应,比如想获取index.html,服务器则会将路径通过刚才的方式返回给客户端,这样就看到首页的内容

这也是客户端与服务器在互联网中的一次数据交互

2. 从更广的角度,客户端和服务器的互联网是如何构成的?

比较简单的构成,更详细的可能需要自己查找资料学习

你的电脑通过调制解调器modem(常说的"猫"),它将计算机的数字信号翻译成可沿普通电话线传送的模拟信号后,在公共电话网络进行传输,公共电话网络通过连接Internet Service Provider互联网网服务提供商(生活中常见的电信、移动、联通等)简称ISP来接入互联网

数据包经过电话网络和ISP后,它们将路由到ISP的主干网络,数据包通常会从此经过多个路由器,并经过多个主干网直至找到目的地

互联网骨干网由许多个相互连接的大型网络组成,这些大型网络被称为网络服务提供商,简称NSP,NSP是为ISP提供网络主干服务的公司,ISP可以从NSP那里批量购入带宽,为客户提供网络接入服务

NSP网络通过网络访问点NAP相连来交换数据包流量

每个NSP都必须连接到至少三个网络访问点,数据包流量可能会通过NAP,从一个NSP的主干跳到另一个NSP的主干

3.互联网如何帮数据包找到一个正确的路线,把数据包送到目的地?

在互联网中有个特殊的计算器-路由器,路由器上有个路由表,记录了其子网络的所有IP地址,但是并不知道上层网络所包含的IP地址,当数据包到达路由器,路由器检查路由表上是否有目的地的IP地址。

如果有则直接发送给那个网络,否则就向上层发送数据,在更高的层级去寻找拥有该IP的路由器,如果依然没有找到,则再次将数据包向上路由,直到到达NSP主干网为止,连接到NSP骨干网的路由器的路由器,它拥有最大的路由表,通过这张表可以将数据包路由到正确的骨干网上,然后它将开始向下传播,进入越来越小的网络,直到找到目的地为止。

电脑就是这样访问到服务器的。

4.浏览器是如何通过域名知道访问那个IP地址呢?

使用到DNS(Domain Names Service),DNS是一个分布式数据库,上面记录了域名和其IP地址的对应关系,在浏览器输入网址时,浏览器首先连接DNS服务器,获取到该域名的IP地址后,浏览器再连接访问该IP的服务器,有了DNS后,之后服务器IP地址有了变化,重新绑定一下域名和新IP地址就可以了

结语

对于我没有说清楚的可以参考下这个视频进行学习:www.bilibili.com/video/BV1Rz…