orm@doc-tcpip.org | Erstellt: Juli 2000 - Letzte Modifikation: Februar 2008 |
Aufruf des kdb führt auf eine Kommandozeile. Im Prompt wird eine Zahl angeführt - das ist der Prozessor, dessen Register aktuell ausgelesen werden.
Subkommandos, die etwas mit dem Netz zu tun haben: tcb ==> Zeigt die inpcb Struktur einer TCP Verbindung udb ==> Zeigt die inpcb Struktur einer UDP Verbindung -s Summary aller tcb Einträge -bEine Bucket-Number in der tcb Hash-Tabelle oder die Angabe einer effektiven Adresse. sock ==> Zeigt die Socket Struktur für UDP und TCP. -d Send und Receive Buffer werden nicht gezeigt. -s Alle Sockets. Mit tcp bzw. udp kann man weiter einschränken. tcp bzw. udp Socket-Info für das gewählte Protokoll. Oder die Angabe einer effektiven Adresse. tcpcb ==> Zeigt die tcpcb Struktur. -s Summary aller tcpcb Einträge oder die Angabe einer effektiven Adresse. mbuf ==> Informationen zu mbufs -p Private mbufs Structur Pool -m Folgt der verketteten Liste eines Paketes (Angabe einer effektiven Adresse). -a Zeigt die verkettete Liste der Pakete in der Queue. (Angabe einer effektiven Adresse). -d Zeigt nur den Header der mbuf-Struktur. netm ==> Liest einen Puffer im Kernel aus, in den alle net_malloc Aktionen protokolliert werden (mbuf anlegen, beschreiben, frei machen etc.). Man muß vorher die no-Option net_malloc_police gesetzt haben. -a Zeigt alle Einträge der net_malloc Events bzw. nur von der Adresse. -i Zeigt alle Einträge dieser Index-Nummer. -e Zeigt alle net_malloc Memoryadressen, die nicht freigegeben wurden. -c -t Type Zeigt nur bestimmte Block-Typen der mbuf. (mögliche Typen finden sich in net_malloc.h, INITKMEMNAMES) -s Size Nur soviele Blocks zeigen. sockinfo ==> Zeigt die Strukturen aller Arten von Sockets Der Typ der Adresse kann sein: socket, inpcb, unpcb, rawcb, ripcb, oder tcpcb. -d Die Send/Receive Puffer nicht zeigen. ndd ==> Zeigt die Statistiken und Tabellen des Network Device Drivers -s Zeigt alle DD Tabellen und gibt die Adresse der Struktur sowie den Adapter. -n Interface-Name nsdbg ==> Zeigt alle ns_alloc und ns_free Events im Kernel. Dazu muß die no-Option ndd_event_tracing gesetzt worden sein. -i start_index Alle Events ab diesem Punkt. -c display_count Alle Events mit diesem Display-Count -n nddname Alle Events mit diesem Namen. netstat ==> Der "normale" netstat route ==> Zeigt die Routing Structure. Erwartet eine effektive Adresse. netstat -nAf inet ==> gibt den Controll-Block des Protokolls (Erste Spalte PCB/ADDR) tcpcb ==> gibt den Internet Control-Block (t_inpcb) tcb ==> Socket Info zeigt Routing Socket. Dort findet sich die Zieladresse der Route (route_6). route ==> Alle Info zur Route. Das ganze kann man auch mit dem "route monitor" Kommando online durchführen. Wie wird soetwas gelesen? (0)> netstat -Anf inet Active Internet connections PCB/ADDR Proto Recv-Q Send-Q Local Address Foreign Address (state) F100020000B4DB90 tcp4 0 0 10.225.16.4.22 10.224.64.66.48373 ESTABLISHED (0)> tcpcb F100020000B4DB90 ---- TCP ----(inpcb: @ F100020000B4DA88)---- ---- TCPCB ----(@ F100020000B4DB90)---- seg_next......@F100020000B4DB90 seg_prev......@F100020000B4DB90 t_softerror... 00000000 t_state....... 00000004 (ESTABLISHED) t_timer....... 00000000 (TCPT_REXMT) t_timer....... 00000000 (TCPT_PERSIST) t_timer....... 00003840 (TCPT_KEEP) t_timer....... 00000000 (TCPT_2MSL) t_rxtshift.... 00000000 t_rxtcur...... 00000003 t_dupacks..... 00000000 t_maxseg...... 000005A8 t_force....... 00000000 t_flags....... 060803E4 (NODELAY|RFC1323|SENT_WS|RCVD_WS|SENT_TS|RCVD_TS|LARGESEND|COPYFLAGS... ...) t_oobflags.... 00000000 () t_template....@0000000000000000 t_inpcb.......@F100020000B4DA88 t_iobc........ 00000000 t_timestamp... D87E2401 snd_una....... C73F0C1F snd_nxt....... C73F0C1F snd_up........ C73F0BEF snd_wl1....... 2DF7EF81 snd_wl2....... C73F0C1F iss........... C73BF36B snd_wnd....... 000000000000D148 rcv_wnd....... 000000000000FE88 rcv_nxt....... 2DF7EFB1 rcv_up........ 2DF7CAF1 irs........... 2DF71D20 snd_wnd_scale. 00000000 rcv_wnd_scale. 00000000 req_scale_sent 00000000 req_scale_rcvd 00000000 last_ack_sent. 2DF7EFB1 timestamp_rec. 21C59DF4 timestamp_age. 00000000 rcv_adv....... 2DF8EE39 snd_max....... C73F0C1F snd_cwnd...... 000000000000FFFF snd_ssthresh.. 000000003FFFC000 t_idle........ 00000000 t_rtt......... 00000000 t_rtseq....... C73F0BEF t_srtt........ 00000007 t_rttvar...... 00000003 t_rttmin...... 00000002 max_rcvd...... 0000000000000000 max_sndwnd.... 000000000000D148 t_peermaxseg.. 000005A8 snd_in_pipe... 00000000 sack_data.....@0000000000000000 snd_recover... 00000000 snd_high...... C73F0C1F snd_ecn_max... C73F0C1F snd_ecn_clear. C73F0C1F t_splice_with.@0000000000000000 t_splice_flags 00000000 Man legt jetzt die Definition der Daten-Struktur tcpcb daneben - die findet man in /usr/include/netinet/tcp_var.h. Dort kann man mit ein bisschen suchen herausfinden, wie die Daten dargestellt werden und wie verschiedene Variablen definiert sind. Dort sind die Datenfelder "erklärt".
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL