原理描述
介绍TCP FPM的实现原理。
网络模型
如图3-1所示,TCP FPM网络模型中,涉及如下角色。- Application Client:应用客户端,为用户提供应用的设备,例如PC等终端设备。
- Application Server:应用服务端,为应用客户端提供服务的设备,例如文件服务器等。
- Router:负责采集网络时延和丢包率等网络质量数据,供用户查看。
工作流程
- Application Client发出请求连接,Router将此请求报文发送至Application Server,识别出第一次握手SYN报文,获取源目的IP地址,新创建双向流表,并记录时间戳。
- Application Server收到请求报文后,Router通过查表,识别出第二次握手SYN-ACK报文,记录时间并发出响应报文,计算服务器网络时延TCP_SND。
- Router将此响应报文发送至Application Client,通过查表,识别出第三次握手ACK报文,记录时间,计算客户端网络时延TCP_CND。
- Router统计出网络时延和丢包率等数据,供用户查看,了解网络质量。
- TCP_SND(TCP Server Network Delay):服务器网络时延。
- TCP_CND(TCP Client Network Delay):客户端网络时延。
- DATA_SND(Data Server Network Delay):响应时延,即客户端发出的数据请求与第一个服务器响应之间的时差。
- AD(Application Delay):应用响应时延,即应用服务器端产生的时延,AD=DATA_SND-TCP_SND。
- 丢包率:TCP的应用丢包是基于TCP的重传来判断的,对应TCP流,重传包和丢失包的TCP序列号是一致的,因此在整个过程中,丢包率=重传包个数/发送报文总数。