揭开网络服务器间通信的面纱

导读:在日常开发中,不同服务器间通信对我而言像是个黑盒子,所以笔者就对这方面进行了些学习和总结。通过学习这方面的知识也有助于排查网络问题。本文从浏览器输入URL为起点简要讨论网络服务器间通信的整个过程。分为以下三点进行:

总图 名词解释 流程的简述

一、总图(顺序右->左)

二、名词解释

DNS解析:浏览器委托操作系统来实现发送解析请求给DNS服务器,DNS服务器收到请求后会对域名进行解析并将结果的ip地址存到浏览器指定的内存中。浏览器在从该内存中获取到ip地址。 Socket库:是个用C语言开发的库,其中包含可以让其他应用程序调用操作系统的网络功能程序组件,解析器就是这个库的其中一种程序组件。 协议栈:操作系统内部的网络控制软件,也叫“协议驱动”、TCP/IP驱动”。 网卡驱动程序:电脑中支持网卡硬件正常工作的一组程序。 MAC地址表:交换机通过MAC头部接收方的MAC地址来判断转发目标 路由表:路由器根据头部接收方IP地址来判断发送目标。 接入网:连接互联网与家庭、公司网络的通信线路,常见技术有ADSL不对称数字用户线、FTTH光纤入户、专线等。 ONU:光网络单元,它和光纤收发器一样,可以将电信号转换成光信号。 OLT:光线路终端,用于连接光纤干线的终端设备。 BAS:宽带接入服务器,位于骨干网的边缘层,可以完成用户带宽的IP/ATM网的数据接入。

三、流程简述

1.以浏览器发送HTTP请求为例子,浏览器先解析URL获取域名,然后委托操作系统向DNS服务器查询Web服务器的ip地址并生成HTTP请求消息。由于浏览器不具有发送请求功能,所以浏览器通过调用Socket库组件来实现。

2.Socket库组件收到应用程序调用的操作后会委托协议栈的TCP模块或UDP模块进行处理。这里以TCP协议为例,两个服务器间进行网络通信需要经历套接字创建、三次握手、数据收发、四次挥手等过程。这些都需要应用程序组合调用Socket库程序组件,程序组件委托协议栈。进行服务器间通信应答接发网络包所完成。以下内容中我们默认已经建立好连接,并以TCP收发应用程序数据的过程继续展开讨论。

3.协议栈TCP模块会将应用程序传过来的数据切成多个数据块并给每个数据块前加上TCP头部,然后委托给IP模块。

4.IP模块给数据加上IP头和MAC头形成网络包,并调用网卡驱动程序进行处理。

5.网卡驱动程序控制网卡对网络包进行处理。

6.网卡将网络包转为电信号或者光信号发送给交换机。

7.交换机的作用是根据地址表(交换机内部有一张MAC地址与网线端口的对应表)进行包的转发操作。首先内部PHY(MAU)模块将网线中的信号转为通用信号,MAC模块再将通用信号转为数字信息后进行FCS校验错误并存到缓冲区内存中。最后根据MAC地址表将包转发到对应的端口。

8.网络包经过一个或多个交换机之后到达路由器,路由器的作用是接收网络包然后查询转发目标,再由相应端口将网络包出去。大致分为两个模块,端口模块负责包接发,包转发模块负责判断包转发的目的地。(交换机和路由器的区别:1.在于路由器的端口具有MAC地址和IP地址,交换机只是单纯把包转发出去,而路由器以实际接受方和发送方身份来收发网络包。2.交换机基于以太网设计,路由器基于IP设计)

9.接入网技术有很多这里我们用FTTH(基于光纤接入网技术)为例分析。FTTH指从运营商的OLT机房把光纤接到用户的家中的ONU。用户端接入路由器和运营商FTTH专用BAS通过接入网技术连接起来。网络包传输流程:用户端ONU将电信号转为光信号经过分光器后发送给OLT,OLT将其转为电号再发送给FTTH专用BAS。

光纤路线

10.BAS将接收到网络包做处理(去掉PPPoE头部和MAC地址)后通过隧道机制将PPP包发到隧道另外一边的端口网络运营商的路由器(称为POP接入点),网络包就从此入口进入互联网。

FTTH接入网实现

11.互联网是由多个运营商网络相互连接组成的。运营商网络则由多个路由器连接而成,POP路由器(根据接入网类型分为多种类型的路由器)与用户接入网连接,NOC(网络连接中心)连接多个POP,多个运营商通过IX(互联网交换中心)相互连接。路由器根据路由表及网络包的IP头部对网络包进行转发,最终到达目标服务器。

12.在达到目标服务器前需要通过防火墙检验网络包,通过在防火墙设置规则判断到达服务器的包是否允许通过,如果判断结果为阻止则该包会被丢弃。

13.最后,服务器进行具体处理并响应回客户端。

总结:流程为客户端浏览器-Socket库-协议栈-多个交换机(集线器)--多个路由器--多种接入网技术(BAS、隧道等)--运营商接入网路由器(POP)--互联网--目标服务器

版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

猜你还会喜欢下面的内容

    无相关信息

中国领先的互联网域名及云服务提供商

为您提供域名,比特币,P2P,大数据,云计算,虚拟主机,域名交易最新资讯报道

域名注册云服务器