天泣記

2020-01-18 (Sat)

#1 ounit issue

GitHub ounit/issues/11: symlinked files outside of temporary directory is removed

2020-01-28 (Tue)

#1 TCP_INFO の使い方

そういえば、GNU/Linux では、getsockopt の TCP_INFO で TCP の state を見れる。

ある端末で以下のように TCP のサーバを動かす

% nc -v -l -p 9999
Listening on [0.0.0.0] (family 2, port 9999)

で、次のようにして接続して getsockopt(TCP_INFO) すると、state=ESTABLISHED ということで、TCP state は ESTABLISHED であることがわかる。 (行は長いので改行してある)

% ruby -rsocket -e 'Socket.tcp("127.0.0.1", 9999) {|s|
  p s.getsockopt(Socket::IPPROTO_TCP, Socket::TCP_INFO)
}'
#<Socket::Option: INET TCP INFO state=ESTABLISHED
  ca_state=Open retransmits=0 probes=0 backoff=0
  options=TIMESTAMPS,SACK,WSCALE rto=0.204000s ato=0.000000s snd_mss=21845
  rcv_mss=536 unacked=0 sacked=0 lost=0 retrans=0 fackets=0
  last_data_sent=0.000s last_ack_sent=0.000s last_data_recv=0.000s
  last_ack_recv=0.000s pmtu=65535 rcv_ssthresh=43690
  rtt=0.000022s rttvar=0.000011s snd_ssthresh=2147483647 snd_cwnd=10
  advmss=65483 reordering=3 rcv_rtt=0.000000s rcv_space=43690
  total_retrans=0 (120 bytes too long)>

[latest]


田中哲