【互联网的运行原理】互联网的运行原理-----整理
- 上网流程:
连入网络之后,就会给提供一个ip地址;我上网浏览b站即互联网中客户端和服务器端进行通信;即我发送消息到b站服务器,消息转换为电子信号,通过电缆发送给b站服务器,在服务器端将电子信号转化为计算机可以使用的数据后处理完再回复消息,用同样的方式返回来; - 流程原理:
主要通过tcp/ip协议族;其中包括应用层、tcp传输控制层、ip网络层、链路层
这些网络协议通过分层来明确每一层的工作职责,通过定义明确的接口来协同工作,每一层都可以使用下面各层提供的功能,而不必担心各层是如何实现,
应用层:负责提供特定于应用程序的协议,比如负责浏览器和网络服务器相互通信的HTTP协议,负责文件传输的FTP协议,负责点子邮件客户端检索文件的IMAP协议;
传输控制层:负责发送数据包到计算机上使用特定端口号的应用程序;
网络层:使用IP地址将数据包发送到特定的计算机;
链路层:负责将二进制的数据包与网络信号之间的相互转换;
请求b站的流程:使用应用层的http协议获取请求的html内容,发送一个请求消息,消息发送前被分解为好几个数据包,通过应用层进去tcp传输层后,每个数据包回被分配一个序列号,来保证数据包的顺序传输,同时tcp是可靠传输的,有三次握手建立连接后才会交换数据(每个收到的数据包通过发送ack确认,保证发送成功),进入ip网络层后,对数据包赋予目标计算机的ip地址,将其路由到目标计算机,其中每个数据包都是独立的,可能回乱序到达或者在传输过程中丢失,目标计算机的tcp传输层会根据数据包上的序列号进行排序重组,如果没有收到ack确认后会重新发送该数据包;有了ip地址和序列号之后,链路层会将数据包的文本信息转化为电子信号,然后通过电缆传输,在电缆的另一端的路由器检查,每个数据包中的目标地址,并确定将其发送到何处;最终数据包到达服务器后,从tcp/IP协议族的底部开始向上运行,当数据包向上通过协议族时,客户端添加的一些IP地址和端口号从数据包中剥离出来,当数据到达应用层时恢复成初始的状态,通过端口号将数据传输给当前服务器,监听该端口的应用程序,会根据当前的请求数据做出反应,将HTML的数据按照刚才的路程返回自己的电脑,就看到了b站的首页内容,完成了一次交互;
(其中数据包通常会经过多个路由器和主干网到达目的地,主要是通过路由找到正确的路线将数据包送到目的地,路由器上有个路由表记录了子网络的所有IP地址,当数据包到达路由器,路由器检查路由表上是否有目的地和IP地址,如果有则直接发送给呢个网络,否则就向上册路由器发送地址,在更高得层级去寻找拥有该IP的路由器,直到到达nsp主干网为止,然后找到该ip的路由表,向下寻找,直到找到目的地为止,访问到目标服务器)
(浏览器是如何通过域名知道访问的哪个IP地址呢,这里需要使用到DNS,DNS是一个分布式数据库,上面记录了域名和其IP的对应关系,在浏览器输入网址时,浏览器首先连接dns服务器,获取到该域名的IP地址后,浏览器再连接访问该ip 的服务器,有了dns后之后服务器的IP地址有了变化后,重新绑定下域名和新的IP地址就可以了,这样就不会影响到访问该站点的用户)