网络通信流程

  • 一、客户端/服务端
  • 二、网络通信流程
  • IP地址:
  • 网卡和mac地址
  • 网络通信流程
  • 数据流程
  • 两台电脑之间的通信
  • 网络通信流程


一、客户端/服务端

客户端(client),顾名思义,客户端就相当于一个客户,是来享受服务的,那么我们就不难理解我们使用的QQ,谷歌浏览器等这些都可以称之为客户端。

服务端(server),说白了就是来服务客户的一方,就拿QQ为例来进行说明。我们在使用QQ发送消息时,消息是先到了腾讯服务器,然后由腾讯服务器转发到我们想要发送的对象QQ上。这里的腾讯服务器就可以说是服务端。

二、网络通信流程

搞清网络通信流程之前我们首先需要知道几个概念。

IP地址:

  1. IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。
  2. IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
  3. 具体内容可以访问一下网站

网卡和mac地址

网卡:电脑插网线的地方就做网卡,网卡提供了网络的接口,这是硬件上面的。

mac地址:IP并不是全球唯一的,但是mac地址是全球唯一的。我们买电脑的时候厂家已经为我们配备了mac地址,mac地址就像是手机的序列号一样,用来标识一台计算机。大家可以使用cmd命令来查看自己电脑上的mac地址。可以再命令框中输入ipconfig -all。

QQ客户端架构 qq客户端是啥_网络


下面就来说说网络通信的大致流程:

网络通信流程

数据流程

QQ客户端架构 qq客户端是啥_linux_02


咱们大致看一下,咱们发送信息时的数据流程。

咱们发送的信息是经过了层层打包,然后传送,对方接受信息时是经过了解包。如果有一点没有匹配,那么就不会接受信息,即TCP,IP,mac地址必须一一匹配否则就无法完成通信。

两台电脑之间的通信

QQ客户端架构 qq客户端是啥_java_03


主机H1在知道主机H2的IP的前提下可以把自己的mac地址和IP以及对方的IP地址,路由器R1的mac地址发送给R1,然后R1又将自己的mac地址自己的IP,R2的IP发送给R2,一次类推最终将信息发送给H2。

最开始的时候主机H1并不知道R1的mac地址,他是通过发sing广播来获取的,即把自己的mac地址设置为ff ff ff ff ff ff,然后R2接受,接受之后就会返回自己的mac地址。

网络通信流程

QQ客户端架构 qq客户端是啥_linux_04


网络通信流程与两台电脑之间实现通信的流程大致相似。