socat っていうツールを使ってみたところソケット関連のちょっとした操作をこなすのにすこぶる使い勝手が良かった。 インストール Mac OS X なら Homebrew でインストールできる。
socat っていうツールを使ってみたところソケット関連のちょっとした操作をこなすのにすこぶる使い勝手が良かった。 インストール Mac OS X なら Homebrew でインストールできる。
SCTPという、TCPとUDPのよいとこ取りをしたようなプロトコルがある。「SCTP(ネットワーク通信)」に書いたとおり、echoサーバを作成したが、動作確認のためにクライアントが必要になった。 telnetなどのTCP用のツールは使えないので、クライアントのプログラムも作成したが、もっと簡単にためせるツールがないかと思っていたら、「socat」というコマンドを見つけた。 netcat(nc)(「netcat - ネットワーク万能ツール」を参照)をさらに機能強化して、これでもかというくらいいろいろオプションが指定できるようになっている。 あろうことかnetcatでは封印されているコマンドの実行も可能になっている。
Explicit Congestion Notification (ECN) for TCP/IP By The Cable Guy When routers become congested to the point in which their incoming packet buffers fill and they begin dropping packets, the effect on the network is reduced bandwidth, an impact on loss or time-sensitive traffic flows, and possibly link idle time after the congestion occurs. Explicit Congestion Notification (ECN) for TCP/IP provide
個人的にはあまり使わないwiresharkのDisplay Filterだが、知ってると便利な場合もあるのでメモ。 SYNフラグが設定されたパケットの表示 tcp.flags.syn==1 SYNフラグが設定されていないパケットの表示 tcp.flags.syn==0 SYNフラグのみ設定されたパケットの表示 tcp.flags==2 ACKフラグが設定されたパケットの表示 tcp.flags.ack==1 ACKフラグが設定されていないパケットの表示 tcp.flags.ack==0 ACKフラグのみ設定されたパケットの表示 tcp.flags==16 ACKフラグとSYNフラグが設定されたパケットの表示 tcp.flags.syn==1 && tcp.flags.ack==1 ACKフラグとSYNフラグのみ設定されたパケットの表示 tcp.flags==18 ACKフラグかSYNフラグ
2013/10/22 追記した. Starletのコード読んでてlistening socketにTCP_DEFER_ACCEPTとかいうオプション渡してたので、これ何だって思って調べた. TCPに特に詳しいわけではないので理解に誤りがあるかもしれない. package Starlet::Server; ... # set defer accept if ($^O eq 'linux') { setsockopt($self->{listen_sock}, IPPROTO_TCP, 9, 1) # 9がTCP_DEFER_ACCEPTを表す and $self->{_using_defer_accept} = 1; } ... TCP_DEFER_ACCEPTはLinux 2.4から導入されている. Linux 2.6.32から挙動が若干変わっているらしい. (linux の TCP_DE
SPDYやQUIC登場の背景。Webの進化がプロトコルを変えつつある。HTML5 Conference 2013 Webをより速くしようと、HTTPよりも優れたプロトコルとして提案されたSPDY(スピーディ)。しかしそのSPDYによって、下位レイヤであるTCPの制限が顕著に見えるようになってしまい、そのことでTCP以外のプロトコルとしてQUICをGoogleが提案しています。 Webの進化は、インターネットのプロトコルにまで影響を与えようとしている、という非常に興味深い話が、HTML5のコミュニティ「html5j」主催のイベント「HTML Conference 2013」で行われた小松健作氏のセッション「最新Webプロトコル、傾向と対策」で行われました。 その内容をダイジェストで紹介しましょう。 最新Webプロトコル、傾向と対策 小松です。所属はNTTコミュニケーションズでHTML5の研究
規制されてないのに2chに書き込めない原因判明 スレを読み進めていくと、どうやら 206.223.144.0/20 207.29.224.0/19 からのTCPポート 443 995 1723 へのアクセスをフィルタすれば書き込めるらしい。 書き込むたびにTCPポートスキャンをしているの?と興味が湧いたので調べてみた。 ちなみに元記事には情報源スレッドのURLが記載されているが、読み方がわからなかったので読んでない。 Twitterに全部書いたので再掲 2ch側からTCPポートスキャンがされる件を検証してみた。「書き込む」のボタンを押したらすぐにポートスキャンきた。207.29.225.225からTCPポート443、995、1723にSYNきた。クッキーを持ってない場合に届く模様。クッキー削除したらまたきた。— └('-'└)└)└)<matsuu (@matsuu) November 2
複数台のWebサーバ(Apache)が動作している環境で、 アクセスログを簡単に集約できないか調べていた。 アクセスログを、netcat(ncコマンド)を利用して、UDPパケットとしてブロードキャストに投げ、 それをログ収集サーバが受け取ることができないか調べていたが、CentOS付属のnetcatでは出来なかった。 ※詳しくは調べていないが、UDPで待ちうけるように設定した場合、一回通信が開始されると、その待受けポートがなくなってしまう模様。 代わりのものを調べていたら、socatというnetcatの高機能版のようなツールがあった。 TCP/UDPだけではなく、IP,SCTP,PTY,EXEC等多数のプロトコルを扱える。 EPELにsocatパッケージとして登録されている。 [code] # yum install –enablerepo=epel socat [/code] ●利用方法
■UDPで待受 # socat UDP-LISTEN:10000,fork,reuseaddr STDOUT ■TCPで待受 # socat TCP4-LISTEN:10000,fork,reuseaddr STDOUT ■受信したデータをファイルへ保存 # socat TCP4-LISTEN:10000,fork,reuseaddr OPEN:output.txt,creat=1 ■コマンドサーバ(受信したデータを入力としてコマンドを実行し、結果を返す) echoサーバ # socat TCP4-LISTEN:10000 SYSTEM:cat 時間を返す # socat TCP4-LISTEN:10000,fork,reuseaddr SYSTEM:"date +%s" ■UDPで送信 # socat STDIN UDP-SENDTO:192.168.128.xxx:10000 ■TCP
インターネットを流れるトラフィックのほとんどがTCP(Trasmission Control Protocol)によるものです。 TCPは、全てのデータが正しく相手に伝わることを保証するため品質の高いデータ通信が実現できます。 また、どのパケットが受け取れなくて、どれが受け取れたかなどをわざわざ考えなくても良いので、プログラムを書くのも簡単です。 では、何故、わざわざRTPというものが必要だったのでしょうか? ここでは、まず最初に何故RTPはTCPではなく、UDPの上に存在しているのかを説明したいと思います。 (もちろん、TCPの上に作ることはRTPの規約上は可能ですが、現実的にはUDPの上でしか実装がないと思います。) その後、何故、UDPの上に共通のRTPというものを構築したのかを説明したいと思います。 RTPは、名前にもある通り、「リアルタイム」なデータを転送するためのプロトコルです
OpenVPNの特徴としては、 1.巷を賑わせたSoftEther同様、最近流行のSSL VPNの一種 2.L2トンネリングであり、Broadcast も転送可能 3.オープンソースソフトウェアであるが、Windowsに対してはインストーラパッケージが用意される等、 とっても親切 # マニュアルは分かりにくくてしゃ~ないけど 4.Windows版でのインストール/アンインストールには再起動が不要 と、この時点で「その道」の人でないと既に(; ̄▽ ̄)<ハァ? かも。 そこで、も~バキバキ噛み砕いて説明することにします(正確さは有る程度犠牲にしますた)。 ※ かなりざっくりの説明なんで、テストとかレポートに書かないように( ̄▽ ̄;)<怒られても知らんよ~ [VPNとは] 「Virtual Private Network」の略。日本では「仮想専用線」なんて訳もあるみたいです。 物理的に離れたネッ
これも研究関連で,遅延ACK(Delayed ACK)を無効にした状態でデータ通信をする必要がありまして. 今まではFreeBSDのPCで実験を行っていたのでsysctlで一発で無効にできたのですが,Linux系ではどうやらその方法では無理な模様. それで,JM projectで調べた所どうやらsetsockopt()を用いてquickackモードを有効にすれば良いらしいとの事なので,早速コードを修正して走らせて見たのですが・・・tcpdumpで見てる限り,思いっきり遅延ACKが動作してるぽいんですよね. 試行錯誤したところ,結局↓の説明が曲者だったようで・・・ TCP_QUICKACK 設定されていると quickack モードを有効にし、クリアされると無効にする。通常の TCP 動作では ack は必要に応じて遅延されるのに対し、 quickack モードでは ack はすぐに送信され
研究に関連する実験で,遅延ACK(Delayed ACK)オプションを無効にした状態で, データ通信をする必要があったのですが,その時に陥ってしまった事例. 今まではFreeBSDのPCで実験を行っていたため,sysctlで簡単に無効にすることができたのですが, どうやらLinux系ではその方法では無効にできないようです.そこで, JM Projectで調べたところ,setsockopt()を用いてquickackモードを有効にすれば良い, という記述を発見したので,早速コードを修正してテストしてみたのですが・・・tcpdump で観察している限り,遅延ACKオプションは有効になったままの様子. 試行錯誤した結果,どうやら以下の記述が問題となっていたようです. TCP_QUICKACK ・・・(中略)・・・ このフラグは永続的なものではなく、 quickack モードから/モードへ切り替え
この記事には複数の問題があります。 改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2021年8月) 古い情報を更新する必要があります。(2021年11月) 出典検索?: "TCPやUDPにおけるポート番号の一覧" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 本項ではTCPやUDPにおけるポート番号の一覧を示す。 コンピュータネットワークにおいて、インターネット・プロトコル・スイートのトランスポート層にあたるTransmission Control Protocol (TCP) やUser Datagram Protocol (UDP) では、他のプロトコル同様、ホスト間通信のエンドポイントを指定する際に数字の識別子が用
2012年10月2日(火) ■ localhost の特別扱い _ localhost というのはローカルなホストであって外部のホストではない。はず。なので、デフォルトで特別扱いしているアプリというのがたまにある、というのがちらっと近所で話題になって思い出したことを。 _ MySQL。サーバではなくクライアント側のライブラリ。この手の特別扱いでとびぬけておかしな挙動をしやがる。接続先ホストとして localhost を指定すると、127.0.0.1 でも ::1 でもなく、接続先を勝手に UNIX ドメインソケットに変更してつなぎにいきやがる。 詳細。ライブラリが勝手にやってるので、それを利用するアプリはすべてこのような挙動になる。localhost で待ち受けているのが自ホストの mysql サーバではなく、他ホストで動いている mysql に接続するために掘ったトンネルだったりするとこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く