Eu gostaria de saber o significado de alguns itens na saída do comando ss. Por exemplo:
# sudo ss -iepn '( dport = :3443 )'
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.43.39:45486 190.0.2.1:443 users:(("rocketchat-desk",pid=28697,fd=80)) timer:(keepalive,11sec,0) uid:1000 ino:210510085 sk:16f1 <->
ts sack cubic wscale:7,7 rto:573 rtt:126.827/104.434 ato:40 mss:1388 pmtu:1500 rcvmss:1388 advmss:1448 cwnd:10 bytes_sent:12904 bytes_retrans:385 bytes_acked:12520 bytes_received:13322 segs_out:433 segs_in:444 data_segs_out:215 data_segs_in:253 send 875.5Kbps lastsnd:18722 lastrcv:18723 lastack:18662 pacing_rate 1.8Mbps delivery_rate 298.1Kbps delivered:216 busy:16182ms retrans:0/10 dsack_dups:10 rcv_rtt:305 rcv_space:14480 rcv_ssthresh:6
CLOSE-WAIT 1 0 [2800:810:54a:7f0::1000]:37844 [2800:3f0:4002:803::200a]:443 users:(("plasma-browser-",pid=16020,fd=175)) uid:1000 ino:90761 sk:1d -->
ts sack cubic wscale:8,7 rto:222 rtt:21.504/5.045 ato:40 mss:1348 pmtu:1500 rcvmss:1208 advmss:1428 cwnd:10 bytes_sent:1470 bytes_acked:1471 bytes_received:11214 segs_out:20 segs_in:20 data_segs_out:8 data_segs_in:13 send 5014881bps lastsnd:96094169 lastrcv:96137280 lastack:96094142 pacing_rate 10029464bps delivery_rate 1363968bps delivered:9 app_limited busy:91ms rcv_space:14280 rcv_ssthresh:64108 minrtt:17.458
Principalmente itens faltando na página man ss, eu fiz algumas suposições, por favor me corrija se eu estiver errado:
- rcvmss: Gostaria de saber se o MMS recebe
- advmss: ?
- app_limited: ?
- ocupado: ?
- retransmissão: ?
- dsack_dups: Segmentos duplicados?
- minrtt: RTT mínimo alcançado no soquete?
O significado de alguns desses campos pode ser deduzido do código-fonte do ss e do kernel Linux. As informações que você vê são impressas por
tcp_show_info()
função emiproute2/misc/ss.c
.advmss :
Em
ss.c
:Em
linux/include/linux/tcp.h
:app_limited:
Em
ss.c
:Esse não está documentado
linux/include/uapi/linux/tcp.h
no Linux:mas surpreendentemente podemos encontrar algumas informações no commit que o introduziu:
Um rápido confirma que foi
git blame
adicionado depois que foi adicionado ao kernel.ss.c
app_limited
tcpi_delivery_rate_app_limited
ocupado :
Em
ss.c
:E no
include/uapi/linux/tcp.h
Linux diz:retransmissão :
Em
ss.c
:tcpi_total_retrans
não está descrito emlinux/include/uapi/linux/tcp.h
:mas é usado em
tcp_get_info()
:E
linux/include/linux/tcp.h
nele diz:tcpi_retrans
também não é descrito, mas lendotcp_get_info()
novamente vemos:E em
linux/include/linux/tcp.h
:dsack_dups :
Em
ss.c
:Em
include/uapi/linux/tcp.h
Linux:E em https://www.ietf.org/rfc/rfc4898.txt :
MSS normalmente significa Tamanho Máximo do Segmento.
rcvmss
: tamanho máximo do segmento que você informa aos colegas que você aceitaráadvmss
: anuncie o tamanho máximo do segmentoapp_limited
: limite os fluxos TCP com limitação de aplicativos na solicitação ou nas respostasbusy
: A conexão TCP está ocupada?retrans
: temporizador de retransmissão. Se o remetente de um pacote de dados não receber a confirmação antes que o temporizador expire, ele tentará retransmitir o pacotedsack_dups
: confirmação seletiva duplicadaminrtt
: tempo mínimo de ida e volta, tempo mínimo de viagem de um pacote da origem ao destinoDeixe-me saber se algum destes está errado e eu vou corrigir.