Рассчитать скорость повторной передачи TCP через ebpfLinux

Ответить
Anonymous
 Рассчитать скорость повторной передачи TCP через ebpf

Сообщение Anonymous »

Использование bcc sock:inet_stock_state для расчета скорости повторной передачи при закрытии TCP
Хотите ли вы вместо этого использовать tcp-sock ->total/tcpsock ->segs_out ?

Код: Выделить всё


...
int sk_trace0(struct tracepoint__sock__inet_sock_set_state* args)
{

if (args->protocol != IPPROTO_TCP)
return 0;
if (args->newstate != TCP_CLOSE) {
return 0;
}
struct sock *sk = (struct sock *)args->skaddr;
struct tcp_sock *tcpi = tcp_sk(sk);

u16 family = sk->__sk_common.skc_family;

if (family == AF_INET) {
//  calculate retransmission rate when TCP close
// tcpi->total_retrans / tcpi->segs_out?
struct ipv4_data0_t data4 = {};
data4.family = family;
data4.srtt = (tcpi->srtt_us>> 3) / 1000;
data4.retrans = (tcpi->total_retrans);
data4.saddr = (sk->__sk_common.skc_rcv_saddr);
data4.daddr = (sk->__sk_common.skc_daddr);
data4.dport = args->dport;
data4.lport = args->sport;
data4.segs_out = (tcpi->segs_out);
ip_events.perf_submit(args, &data4, sizeof(data4));
}
return 0;
}
Как мне рассчитать частоту повторной передачи, если я соберу все данные?
  • Включает ли segs_out total_retrans?
    Как мне рассчитать частоту повторной передачи, если я соберу все данные?

    Включает ли segs_out total_retrans?
    Как мне рассчитать частоту повторной передачи, если я соберу все данные?

    Включает ли segs_out total_retrans?
    li>
    Можно ли использовать total_retrans/segs_out для расчета скорости повторной передачи?


Подробнее здесь: https://stackoverflow.com/questions/793 ... rough-ebpf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»