Linux – how to investigate real problem with TX packet drops in linux

linuxnetworking

I have my vps on CentOS running some my own software wich uses very fast algorithm of sending specially constructed RAW TCP packets to numerous systems running my software. I have noticed too many packet drops in TX column while doing ifconfig. Also i know at 70% not all the packets going through external venet0 interface are really sent by higher-level system (like host os, their network driver or so). How to investigate where is the real problem? For the first: how explain simple TX packet drop when send() or sendto() returns success? Two: will incoming ICMP desination unreachable/no route increase TX's packet drops?

My problem ifconfig:

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
      UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
      RX packets:14512501 errors:0 dropped:0 overruns:0 frame:0
      TX packets:151202339 errors:0 dropped:10321888 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:1043659479 (995.3 MiB)  TX bytes:6306749886 (5.8 GiB)

Sorry if there is too many material in the web about this, but they are for newbies, i am programmer and need all the details to fix my system.
Thank you

Best Answer

If you are a programmer, grep the kernel source for an incrementation of "tx_dropped". This is generally modified by network devices drivers and not by the generic networking code (unless you do funky stuff like GRE or IPIP, VLAN or things like that).

But with a virtual network card, i doubt you will get more info that way.