三人行必有我师

packetbeat中对tcp包的乱序、重传、丢包有处理吗

Beats | 作者 ggg | 发布于2016年12月23日 | 阅读数:8276

系统提示:这个人太懒了,什么问题描述都没有写!

已邀请:

medcl - 今晚打老虎。

赞同来自:

乱序丢包重传这个应该看具体协议是怎么处理的,packetbeat 没有进行特殊处理,同时 packetbeat 也没有处理拆包粘包的问题,也需要在 packetbeat 协议解码的时候,自己去解message

ggg

赞同来自:

看了源码,packetbeat对于重传包是直接丢弃的
对于乱序包packetbeat在tcp.go根据tcp.seq判断是乱序包,并回调GapInStream,通知丢了nbytes字节,由应用层协议解码模块决定如何处理
可惜后面再收到丢失的包,tcp.go会根据seq判断为重传包,直接在tcp层处理时丢了,导致无法将乱序包还原
 
应该说有所取舍,像mysql等实现里就没有考虑去实现还原乱序包的情况
 

medcl - 今晚打老虎。

赞同来自:

赞,研究的很深入啊

要回复问题请先登录注册