Creo haber encontrado un error en la gestion de este paquete.
En ClientUDPSocket.cpp pone
bool CClientUDPSocket::ProcessPacket(char* packet, int16 size, int8 opcode, uint32 host, uint16 port)
{
try {
switch(opcode) {
case OP_REASKFILEPING: {
theApp.statistics->AddDownDataOverheadFileRequest(size);
if (size != 16) {
break;
}
Y el caso es que segun mis observaciones con ethereal, solo un pequeño porcentaje de los OP_REASKFILEPING son de 16 bytes (del HASH del archivo).
Ethereal solo es capaz de reconocer esos 16 bytes, pero muchos paquetes tienen "basura" despues, y amule no responde a estos.
Como resultado muchos clientes acaban conectando por TCP aumentando el ancho de banda excedente.
.....supongo que podria haber comprobado el codigo del eMule
