网络运行原理

一、狭义角度

 

客户端:贴近用户的应用程序例如web浏览器、电子邮件客户端、手机app

服务器:远程计算机上运行的应用程序,客户端可以在需要时通过互联网于服务端进行通信

当你的电脑接入到互联网的时候互联网会分配一个IP地址给你,某个服务器也接入到互联网也会给服务器分配一个IP地址。此时你的电脑可以和服务器进行通讯。当你的电脑发送消息给xxx服务器要获取index.html的内容时,消息会被转化为电子信号通过电缆发送给xxx服务器。在服务端将电子信号转化为计算机可以使用的文本数据,这一切是如何实现的呢,主要是通过TCP/IP协议族。协议是一组规则,用于指定应如何通过网络来相互通信,TCP/IP协议一共分为4层分别是:应用层、TCP传输控制层、IP网络层、链路层网络协议通过定义明确接口来协同工作每个层都可以使用下面各层的功能,而不必担心各层是如何实现的。

应用层:提供特定于应用程序的协议,比如负责浏览器和网络服务器相互通信的HTTP协议,负责文档传输的FTP协议,负责电子右键客户端检索的IMAP协议

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

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

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

使用应用层的HTTP协议请求获取html文本这时需要发送一个请求消息消息在发送前会被分解为许多片段我们称之为数据包数据包通过应用层进入到TCP层后每个数据包会被分配一个端口号,端口号用来确定目标计算机哪一个应用序要接受使用该数据包。TCP是一种面向连接可靠字节流服务协议。TCP需要经过三次握手建立连接后才能交换数据,每个收到的数据包都会向发送方发送ack确认,已确保发送成功。数据包进入到IP层后,每个数据包将会赋予目标计算机一个IP地址。IP是不可靠的无连接协议,它并不关心数据包是否到达目的地,也不关心连接和端口号,它的工作是发送数据包并将其路由到目标计算机。其中每个数据包都是独立的互不依赖的,有可能会乱序到达目标地址或者在传输中丢失,那如何保证数据包到达和顺序正确呢?这都交给了TCP,也就体现了分层的作用。当数据包过大时,在IP层会进行分包由于每个数据包在物理层走的物理链路不一样,传输速度也不一样导致数据包没有按顺序到达目的地,但TCP会根据数据包上携带的序列号来进行排序重组并且发送方在一个特定时间内没有接收到接受方的ack确认时,则发送方会重新传送该数据包。我们常常把IP等同于IP地址,这是不对的。IP是网络协议,而IP地址是一串数字,IP地址有两种标准一种是IPV4,采用的是32位地址即4字节,因此地址空间只有2的32次方约40亿个地址。一些地址是为特殊用途所保留的,如专用网络约1800万地址。随着互联网爆炸式发展地址被不断分配使用IPV4已经枯竭于是IPV6运营而生IPV6采用128位的地址因此新增的地址空间支持2的128次方约3.4X10的38次方个地址。有了IP地址和端口号之后链路层将数据包的文本信息转译成电子信号然后通过光缆传输在电缆的另一端的路由器上检查每个数据包中的目标地址并确定将其发送到何处,最终数据包到达服务器后从TCP/IP协议族的底部开始向上运行当数据包向上通过协议族时客户端添加的所有路由数据例如IP地址和端口号都将从数据包中剥离出来当数据到达栈顶时数据包已经重新恢复成最初的形式,通过端口号可以将数据传递给当前服务器监听该端口的应用程序,应用程序根据当前请求数据做出反应。比如现在我们想获取Index.html服务器会将路径index.html的数据通过刚才的方式返回给你的电脑也就是客户端,这样就可以看到xx网站的首页内容了。到这里我们完成了客户端与服务器在互联网中的一次数据交互。

二、广义角度

 从更广的角度来看看你的电脑和xxx服务器之间的互联网到底是怎么构成的。你的电脑通过调制解调器modem也就是我们常说的猫,猫将计算机的数字信号翻译成可以沿着普通电话线传送的模拟信号后在公共网络进行传输,公共电话网络通过连接ISP互联网服务提供商来接入互联网,我们生活中常见的移动、联通、电信等都是ISP。数据包经过电话网络和ISP后它们将路由到ISP主干网络数据包通常会从此经过多个路由器,并经过多个主干网直到目的地。互联网主干网由许多相互连接的大型网络,组成这些大型网络被称为网络服务提供商简称NSP,NSP是为ISP提供网络主干服务的公司。ISP可以从NSP那里批量购入带宽为客户提供网络接入服务NSP网络通过网络访问点NAP相连来交换数据包流量,每个NSP都必须连接至少三个网络访问点,数据包流量可能会通过NAP从一个NSP的主干跳到另一个NSP主干。当然互联网的网络架构不会这么简单,互联网是如何帮助数据包找到一条正确路线的把数据包送到目的地,在互联网中有个特殊计算器-路由器,路由器上面有个路由表记录了子网络的所有IP地址然而他并不知道上层网络所包含IP地址,当数据包到达路由器;路由器检查路由表上是否有目的地的IP地址,如果有则直接发送那个网络否则就向上层发送数据在更高的层级寻找拥有该IP的路由器。如果依然没有找到,则再次将数据包向上路由,直到到达NSP主干网为止,连接到NSP骨干网的路由器拥有最大的路由表。通过这张表可以将数据包路由到正确的骨干网,然后开始向下传播进入越来越小的网络,直到找到目的地为止,你的电脑就是这样访问到某个服务器的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值