高并发和负载均衡:网络原理(一)

  • Post author:
  • Post category:其他


1.网络原理图:

5层网络结构图,看到这个不知道不太清楚底层的原理。下面就来厘清一下。如有解释不到位的,请另行查验。

a.应用层是我们平时接触到的,比如在socket的连接上,我们要定义连接的ip和port。socket的连接是根据四元组确定一个连接的。这层实际是定义了网络两个端点,通过ip定位那两台主机通讯,端口定义通信的应用程序进程。那么这个连接怎么建立起来的呢,数据又是怎么传输到目标网络主机?

b. 应用层定义了连接的端点,传输控制层定义了网络传输协议,包括tcp,udp,tcp是面向连接可靠的。tcp是通过三次握手来实现。这层是会拆分,封装,重组数据。在服务端封装服务端ip 和端口,拆分发送的数据包,数据到达客户端由客户端重组数据,在拆分,封装自己的数据发给服务端。tcp协议通过seq,ack ,窗口确认数据接收的完整性。在窗口内数据是否接收完,如果没有接收完,这个窗口的数据会被丢弃,在重发,接收完,在接收下一个窗口的数据。

c. 控制层封装了数据,在经过网络层,觉得下一跳。实现原理:网络层会根据传输控制层中封装的目的ip。通过ip和掩码按位与,得到destination ip。linux路由命令route -n。

比如目标ip和掩码按位与得到如图的192.168.150.0,它的网关为0.0.0.0 ,表示的是服务器在同一个局域网内,不需要下一跳

比如标ip和掩码按位与得到如图的0.0.0.0,它的网关是192.168.150.2,表示他的下一跳的地址是192.168.150.2。如果是ping www.baidu.com,会通过网关192.168.150.2这个下一跳地址,在查找这个地址上的路由表,决定下一跳地址。

d. 有下一跳地址后,就到链路层了,链路层也有一张表,ip和mac的对应表。通过下一跳地址找到下一跳的mac地址,也就是知道局域网内的拓扑网络结构中下一台主机。

e.数据从应用层到链路层,数据封装了ip和port,封装了下一跳的ip和下一跳ip的mac地址。物理层就是各种硬件设备,比如wifi,网线,蓝牙等传输通道,通过这些传输到下一跳主机。

上面大概的网络原理。大概的过程,很多术语也没讲到。



版权声明:本文为qqjjjaa11原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。