ss コマンドはnetstatと非常によく似ています コマンドですが、netstatよりも高速で正確です。 。
[email protected]:~$ ss
Netid State Recv-Q Send- Local Address:Port Peer Address:Port
u_str ESTAB 0 0 * 34006 * 34007
これは、出力の最初の行です。このコマンドは、システムで開いているすべてのソケットを通知します。
私のシステムの合計は96で、そのうち56はu_strを持っています Netidとして 残りはtcpです 。
このu_strとは ここで、Recv-Qについても詳しく説明してください およびSend-Q ?
承認された回答:
u_str はストリームソケットであり、netstatと同等です。 のSOCK_STREAM。
SOCK_STREAM:これはストリーム(接続)ソケットです。
ウィキペディアから:
コンピュータオペレーティングシステムでは、ストリームソケットはプロセス間通信ソケットまたはネットワークソケットの一種であり、レコード境界のないコネクション型のシーケンスされた一意のデータフローを提供し、接続を作成および破棄し、エラーを検出するための明確なメカニズムを備えています。 。
ストリームソケットを作成しましょう:
netcat -lU /tmp/streamsocket
今すぐ実行:
ss -an | grep streamsocket
次のように出力されます:
u_str LISTEN 0 5 /tmp/streamsocket 123360 * 0
簡単に言えば、これは「UDP」または「TCP」のタイプのソケットでもあります。 UDPソケットを作成しましょう:
netcat -lu 127.0.0.1 8060
さて、ss -l sport = 8060 これは「u_str」ではなく「UDP」であることがわかります。
「Recv-Q」列と「Send-Q」列については、man 8 netstatを参照してください。 :
Recv-Q
このソケットに接続されているユーザープログラムによってコピーされなかったバイト数。Send-Q
リモートホストによって確認応答されなかったバイト数。