一个网络数据传输流程的例子

一个网络数据传输流程的例子

以使用某app软件为例,来分析它的具体数据传输流程。

  • DNS

首先,当我们第一次登陆该app时候,需要进行数据初始化,此时,我们需要连接到服务器,我们需要查询DNS服务器来获取域名所对应的IP,下图为DNS请求报文。

在这里插入图片描述

在这里插入图片描述

图1 DNS请求报文

该报文要通过本地的局域网网关才能将请求报文转发出去,因此我们查找本地路由表,将数据发送往网关。

在这里插入图片描述

图2 本地路由表

本地网关为192.168.1.121,因此,我们需要将报文发往121。

  • ARP

通过查询arp缓存,发现没有存储121对应的MAC地址。因此,我们通过arp地址解析协议来获取其MAC地址。本地用户发送arp请求,广播至整个局域网,当网关主机的arp层收到广播报文后,识别出发送端在寻问其IP所在MAC地址,于是发送一个ARP应答,其包含IP地址及对应的硬件地址。

在这里插入图片描述

图3 ARP请求报文

在这里插入图片描述

图4 ARP响应报文

在获取到网关的MAC地址后,用户将报文传送至网关,接下来网关再重复类似的操作将报文传送至下一跳路由,直至DNS服务器。在获取到DNS响应报文后,得到该域名所对应的IP地址。通过通过同样的方式,我们可以和IP所在服务器建立连接。

  • 建立连接

在获取到对端的IP地址后,可以发送TCP报文与之建立连接,连接要经过三次握手。如果为两次握手的话,如果采用两次的话,会出现下面这种情况:比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。数据传送完后断开。结果这时候,原先没有到达的数据又传到了B机,于是B机发信息给A,此时B会误认为和A进行了连接,这个时候B机就在等待A传送数据。

在这里插入图片描述

在这里插入图片描述

图5 三次握手连接

  • 数据传输

HTTP请求与响应(略)

  • 拆链

数据传送完毕后,需要进行拆链,以断开TCP连接,一般而言,我们需要进行四次握手,才完成拆链的操作,如下图。

在这里插入图片描述

在这里插入图片描述

图6 四次握手拆链

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值