购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 网络通信过程

3.3.1 发送过程

为了更好地理解TCP/IP每一层的作用,我们来看一下网络通信的整个过程。我们假设局域网内有一个主机A,在上面运行了QQ程序。用户通过QQ发送一段消息给他的好友。整个数据包在TCP/IP栈中的发送过程如下:

(1)应用层:数据包会先在QQ这个应用层进行数据封装。

(2)传输层:接下来,数据包会经过传输层,一般QQ的数据采用UDP作为传输层的协议,有时候也使用TCP。在传输层,QQ还会使用一个端口号,且每个应用都有自己唯一的端口号,用来区分数据。数据包在传输层会被追加TCP头部信息或者UDP头部信息,这取决于应用层指定使用哪一种传输协议。

(3)IP层:数据包在IP层会被追加IP头部信息。IP头部信息包含很多控制信息,其中包括源IP和目标IP。源IP指计算机本身的IP地址,对于有多个网卡的计算机,会利用路由表判断使用哪个网卡进行发送。目标IP是指数据要发送到哪个IP地址,目标IP有应用程序提供。

(4)数据链路层:数据包在数据链路层会被追加MAC头部信息。MAC头部信息包含一个关键的字段信息——MAC地址。MAC地址有源MAC地址和目标MAC地址两个。源MAC指计算机本身的MAC地址,由网卡决定,应用程序一般无法更改。目标MAC地址指数据包发送的对方的MAC地址。一般来说,局域网内的计算机是不知道公网的计算机MAC地址,所以计算机发送数据包的时候使用的目标MAC一般是路由器的MAC地址,由路由器进行转发,而路由器的MAC地址可以由ARP查询获得。

(5)物理层:物理层会将数据包转换成比特流电信号在网线或者WiFi介质中传输。

整个数据包在TCP/IP中的传输过程如图3.8所示。

3.3.2 接收过程

网络数据包的接收过程刚好和发送过程相反。

(1)物理层:将比特流电信号转换成数据包,然后传递到数据链路层。

(2)数据链路层:根据MAC地址进行处理,如果目标MAC地址是自己,则去掉MAC头部信息,将剩下的数据继续往上传输到IP层。

(3)IP层:由IP地址判断数据包是转发还是发送给自己。如果是发送给自己,则去掉IP头部信息,继续往上传输到传输层。

(4)传输层:去掉TCP头部信息,并根据TCP头部信息中的端口号,区分数据包是发送给具体哪个应用,继续传递到应用层。

(5)应用层:应用层收到数据包后,根据应用本身的协议再进行解析处理。

整个数据包的接收过程如图3.9所示。

图3.8 发送过程

图3.9 接收过程 CKmqDdaV3Vifs3vqwzduxNcWolYZILTdYonoaKkAqCbckuwO8L4aVleQtWikFqgq

点击中间区域
呼出菜单
上一章
目录
下一章
×