Anonymous
Рассчитать скорость повторной передачи TCP через ebpf
Сообщение
Anonymous » 18 янв 2025, 19:42
Использование 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
1737218523
Anonymous
Использование bcc [b]sock:inet_stock_state[/b] для расчета скорости повторной передачи при закрытии TCP Хотите ли вы вместо этого использовать tcp-sock ->total/tcpsock ->segs_out ? [code] ... 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; } [/code] Как мне рассчитать частоту повторной передачи, если я соберу все данные? [list] [*]Включает ли segs_out total_retrans? Как мне рассчитать частоту повторной передачи, если я соберу все данные? Включает ли segs_out total_retrans? Как мне рассчитать частоту повторной передачи, если я соберу все данные? Включает ли segs_out total_retrans? li> Можно ли использовать total_retrans/segs_out для расчета скорости повторной передачи? [/list] Подробнее здесь: [url]https://stackoverflow.com/questions/79367550/calculate-tcp-retransmission-rate-through-ebpf[/url]