socket_bindでポートをバインドできない

phpのsocket_bindがうまくbindできない。
すでにポートがバインドされている様子だった。
まずはポートの状況を調べた。

xxx.org%netstat -a | grep 1001
tcp4 0 0 host077.xxx.168.1.1001 host077.xxx.168.1.54586 TIME_WAIT

バッチリ1001番のコネクションが見える。
TCPのコネクションがTIME_WAITになっている。
TCPのコネクションのやりとりのうえでTIME_WAITになるとタイムアウト待ちらしい。ACKがくるかFINがくるか待ってる?のかな?
ほんでこの時間ってOS依存らしい。これを帰るのにはsysctlで変えれます。

%sudo sysctl -w -w sysctl net.inet.tcp.msl=5000

http://www.sato-bb.net/archive/tech/tune/time_waitmsl/

コメントを残す