对于网络应用开发测试人员来说,什么是最令人头疼的?是开发工具?是开发语言?是架构?个人认为,广域网对应用鲁棒性测试才是最令人头疼的!广域网链接着不同的地区的局域网的,通常跨度很大,是一种可以链接起多个地区、城市和国家或洲的远程网络。我们知道有线网络传输需要介质,网络信号在远距离传输过程中会不断衰减,又因为外界影响受到干扰,除去传输介质影响,途中需要经过路由等设备进行转发,而设备性能直接决定了数据包转发的速度,网络传输过程中某一个环境出现了环节出现问题都会导致数据错误或者传输失败。广域网复杂的拓扑链路给程序数据传输带来的例如时延抖动、数据丢包、重复报文、乱序的报文、被分片的数据包,这些都是程序开发时需要考虑的,避免开发后实验环境测试良好,实际上线后通讯不良导致用户评价下降的发生。而实际上开发人员在开发应用时一般都在实验室内网环境当中进行,距离短干扰少,难以复现广域网环境,开发人员需要耗费大量精力去模拟,或者直接出差进行远程开发调试,这无异于劳民伤财。
  这里我用HoloWAN Recorder的 两张图来演示下广域网与局域网差别

浅谈网络损伤对应用开发的影响_数据

图1.广域网环境

浅谈网络损伤对应用开发的影响_内网_02

 

 

 

图2.内网环境 

 

   对比外网环境和内网环境,外网环境延迟与掉包率都明显高于内网环境,这仅仅只是延迟与掉包率的对比,复杂的网络环境中,会常常遇到数据包分片或者数据包错误等待,这考验程序员对数据包的校验与处理方法。可知在开发过程中广域网对程序数据传输的影响。而在实际生产中网络损伤仪,或许不是必要的设备,但是有一台高效准确的模拟网络环境的设备,能大大提高开发效率。那么什么是网络损伤仪(下称网损仪)呢?网损仪能够模拟数据在传输过程中的损伤,例如国外的思博伦,国内的HoloWan网络损伤模拟仪的状况包括真实广域网中存在的:有限的带宽、时延、丢包、抖动、乱序、重复报文、竞争流量、拥塞、误码等等。利用好网损仪能够减少一大笔因为额外的出差,或者在实验室内模拟极端环境而付出的额外的支出。ps:用上HoloWanRecoder的图只是功能刚好符合自己需要,而且Holowan在国内确实风评不错,非推广,第一次写博客,如有冒犯请多包涵!