引用するソースポートを割り当てる方法、ローカルポートがどのように決定されるかを知っています。 (=>任意の無料の一時ポート)。
しかし、私のrawソケットが割り当てられたsocket(AF_INET, SOCK_RAW, IPPROTO_TCP)
ポートを使用するのはなぜですか6
?
ss -lnp
示す:tcp UNCONN 0 0 0.0.0.0:6 0.0.0.0:* users:(("exe",pid=13164,fd=5))
=6
IPPROTO_TCPがで定義されているため、ソケットを誤って生成しましたかlinux/in.h
?または6
、可能であればRAW_SOCKETSはデフォルトでポートを使用しますか?
これが重要な場合は、Ubuntu 4.15を使用しています。
答え1
@dirktが述べたように、ソケットはポートにバインドされておらず、プロトコルはdisplays
ポート(明らかに存在しない)の代わりにローカルIPの背後にあります。
使用socket(AF_INET, SOCK_RAW, 123)
、 ss
出力??? UNCONN 0 0 0.0.0.0:123 0.0.0.0:* users:(("exe",pid=10039,fd=3))
また、3番目の引数として異なる数値を使用してテストしたsocket()
結果ss
local port
。