互联网是如何运行的

互联网是如何运行的

当你的电脑联入互联网之后,会得到一个编号地址,这个地址称为Internet Protocal Address,也就是IP地址。
bilibili的服务器也接入互联网,它也将分配一个IP地址,常说的访问某某网站,就是访问这个网站的服务器。
如果你的电脑想通过访问index.html来获取b站首页内容, 此时称电脑为客户端,bilibili为服务端,这种形式就是客户端服务端模型。

客户端更贴近用户 ,是面向用户的应用程序,例如web浏览器,电子邮件客户端,手机app。
服务端是在远程计算机上运行的引用程序,客户端可以在需要时,通过互联网与服务端进行通信。

你的电脑发送给bilibili服务器消息,要获取index.html的内容,消息将会被转化为电子信号,通过电缆发送给bilibili服务器,在服务器端又将电子信号转换为计算机可以使用的文本数据。
以上通过Tcp/Ip协议族来实现。

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

1.Tcp/Ip协议族共分为4层:

  • 应用层:提供特定于应用程序的协议(HTTP,FTP,IMAP)
  • Tcp传输控制层:发送数据包到计算机上使用特定端口号的应用程序
  • IP网络层:使用IP地址将数据包发送到特定的计算机
  • 链路层:将二进制数据包与网络信号相互转换

网络协议通过分层来明确每一层的职责,通过定义明确的接口来协同工作

1.在当前的例子中,使用应用层的HTTP协议请求获取html文本,这时需要发送一个请求消息,消息在发送前会被分解为许多片段,称为数据包。

2.通过应用层进入传输控制层后,每个数据包都会被分配一个端口号,端口号用来确定计算机的哪一个应用程序要接受并使用该数据包。
进入IP网络层后,每个数据包将会赋予目标计算机的IP地址。

3.有了IP地址和端口号之后,链路层会将数据包的文本数据转换为电子信号。然后通过电缆传输,在电缆中的另一端的路由器检查每个数据包中的地址,并确定发送到何处,最终数据包到达服务器。数据包到达服务器后,从Tcp/Ip协议族的底部数据链路层开始向上运行, 当数据包向上通过协议族时,客户端添加的所有路由数据,例如Ip地址和端口号都将从数据包剥离出来。当数据到达栈顶时,数据包已恢复成最初始的形式。

4.通过端口号可以将数据传递给当前服务器监听该端口的应用程序。应用程序根据当前请求数据作出反应。
比如现在想获取index.html,服务器会将路径index.html的数据通过刚才方式返回给你的电脑。也就是客户端,这样就可以看到b站首页内容。 这里完成了客户端与服务器在互联网的一次数据交互。

  • 应用层: 数据包
  • 传输控制层: 数据 源端口 目标端口
  • 网络层: 数据 源端口 目标端口 源IP 目标IP
  • 数据链路层: 数据 源端口 目标端口 源IP 目标IP

Tcp是一种面向连接的可靠字节流服务。

Tcp必须经过3次握手建立连接后才可以交换数据,每个收到的数据包都会向发送方发送ack确认,以保证发送成功

IP是 不可靠的无连接协议

它并不关心数据包是否到达目的地,也不关心连接和端口号,它的工作是发送数据包并将其路由到目标计算机,其中每个数据包都是独立的不相互依赖的,所以有可能乱序到达目的地。

如何保证数据包到达和顺序正确?交给TCP。
当数据包过大时,在IP网络层会进行分包,由于每个数据包在物理链路层走的物理链路不同,传输速度不同,导致数据包没有按顺序到达目的地。但是TCP会根据数据包携带的序列号来进行排序重组,并且发送方在特定时间内没有接收到接收方发来的ack确认时,则发送方会重新发送该数据包。

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

IP有两种协议:

  • IPv4 Internet Protocol version4
    采用32位地址,即4字节,因此地址空间只有232个,约40亿个,专用网络1800万个,多播地址2.7亿个,
  • IPv6 Internat Protocol version6
    采用128位地址,2128

调制解调器(也叫猫)和路由器的区别:

  • 猫用于网络间不同介质网络信号转接,比如把ADSL,光纤,有线通等的网络信号转成标准的电脑网络信号。
  • 路由器用于网络信号的再分配,简单地说就是让一根网线可以连接更多的电脑。
  • 家里有宽带就必须有猫,有多台电脑上网就必须有路由器,假如电脑很多,超过路由器的接口就需要交换机扩展接口。

1.电脑通过调制解调器modem,也就是常说的“猫”,将计算机的数字信号翻译成可沿普通电话线传输的模拟信号后,在公共电话网络进行传输,公共电话网络通过连接Internet Service Provider,互联网服务提供商ISP,来接入互联网。生活中常见的电信,移动,联通都是ISP。

2.数据包经过电话网络和ISP后,它们将路由到ISP的主干网络。互联网骨干网由许多相互连接的大型网络组成,这些大型网络被称为网络服务提供商,简称NSP。NSP是为ISP提供网络主干服务的公司。ISP可以从NSP那里批量购入带宽,为客户提供网络接入服务。
NSP网络通过网络访问点NAP相连,来交换数据包流量,每个NSP都必须连接到至少三个网络访问点NAP。

3.计算机有个特殊的计算器-路由器,路由器中有个路由表,记录来其子网络的所有IP地址。当数据包到达路由器,路由器检查路由表上是否有目的地的IP地址,如果有则直接发送给那个网络。否则就向上层发送数据,在更高的层级去寻找拥有该iP的路由器。如果依然没有找到,继续向上路由,直到到达NSP主干网为止,连接到NSP主干网的路由器拥有最大的路由表,通过这张表可以将数据包路由到正确的骨干网。然后开始向下传播,直到找到目的地为止。你的电脑就是这样访问bilibili服务器的。

4.通过IP地址来访问bilibili服务器,ip地址可能会改变,通过域名来访问可以解决Ip地址改变问题。
浏览器通过DNS来知道哪个域名访问哪个IP地址。

Domian names service,简称DNS,是一个分布式数据库,记录来域名和其IP地址的对应关系。
在浏览器输入网址时,浏览器首先连接DNS服务器,获取到该域名的IP地址后,浏览器在连接访问该IP的服务器。
有了DNS后,之后IP有了变化,重新绑定下域名和新IP地址就可以了。