つまり決められたルールにそった電気信号さえ作って送れば、どんなことだってできるわけです
…の続きです。
インターネットのプロトコル(言語)は複数ありますが、どこもかしこも主流の TCP/IP について解説しています。
自分も TCP/IP について学んでいこうと思います。
MACアドレスというものが、みなさんのLANカードに打たれていると思います。
このMACアドレスに 6byte を使います。これを送信元と送信先確保し、次の層のプロトコルのタイプ識別に 2byte 使います。
なんか既にややこしいが、他にもどこから信号が始まっているか知るため信号8byteを足して
本当に読み取った情報が正しいか確認する値を最後に4byte付け
合計 20byte がデータリンク層の情報として、イーサネットフレーム情報として完成する。
もう日本語がおかしいけど、筆者の simplestar が理解できれば良いので先に進めます。
つまり、最初の 8byte は 10101010 10101010 10101010 10101010 10101010 10101010 10101011 固定で
読み手はこの信号パターンを見つけ出し、最後に 11 と連続したのを確認して
次から 6byte ずつ MAC アドレスに違いないと処理するわけです。
で、本当に MAC アドレスだったのか確認のため、その値から計算される 4byte の値をフレームの最後から読み取り
合っていればこれを正しい信号として処理するわけです。
まずはデータリンク層で 20byte の情報が決まるわけです。
詳細は次のリンクから学びました。
詳説 TCP/IPプロトコル:第7回 イーサネット(その2) - イーサネットのフレーム構造 (3/3)
次の層にて IP アドレスの情報が格納されます。
OSI参照モデルではネットワーク層に当たる個所で、こちらは最初の 12byte は
バージョンや次の層のプロトコルなどの情報が詰まっていて
このほか分割して送られてきた場合に、どこから連結するかのオフセットなど様々な情報が詰まっている。
残りの 8byte が送信元と送信先の IPアドレスである。
一応ここまでのイーサネットフレームとIPパケットでPC間の通信は可能です。
しかしPC内には複数のアプリケーションが起動していますが、
どのアプリケーションに対する電気信号なのかこれだけの情報では足りません。
そこでポート番号を利用します。ポート番号を格納する領域はOSI参照モデルでいう所のトランスポート層です。
TCP のヘッダを見てみます。
最初の 4byte が送信元ポート番号、次の 4byte が送信先ポート番号です。
続く 8byte がシーケンス番号、続く 8byte が確認応答番号です。
これらの数値は互いに通信を行うたびに、通信の合計値(byte)として増えていきます。
これにより相手に情報が正しく伝わったことを確認しながら通信ができるのです。
これがよく耳にする TCP は通信の信頼が高いということ。
コントロールフラグというものが、TCPヘッダ 20byte の中に含まれていますが
SYN, ACK フラグを使ってコネクションを確立する、という動作は覚えておく必要があると思います。
次のページを参考に理解しました。
ネットワークエンジニアとして - TCP - コネクションの確立と切断
これで相手のPCの特定のアプリケーションと、こちらのPCの特定のアプリケーションで通信が行えるようになるのです。
納得出来ましたでしょうか?
ところで、PCが外部とやりとりしているセグメントの内容を知る方法があります。
代表的なものに wireshark というツールがあります。
また任意の電気信号を送るソフトもあるようですね。
hping とか
追記:2019/03/23 けど、最近は hping の開発は止まったとのこと
代わりに利用できるだろうツール群として次のリンクをお知らせします。
list of the best network tools
情報提供してくれた Natasha さんには感謝です。
ここで得た知識とツールを用いて、悪いことはしないで下さい。
何でもできるわけですが、何をやっても良いというわけではありません。
相手マシンの解放ポート番号を調べたり、暗号化されたセグメントの内容を解析したり
オンラインゲームのレベルアップやお金アップのトリガーとなるセグメントをゲームサーバに送り続けるとか
…これは立派なクラック行為です。
そうそう、データリンク層での通信の単位をフレームと呼び
ネットワーク層ではパケット
トランスポート層ではセグメントと呼ぶようです。
ただし、多くの人はこれらをまとめてパケットと呼んでいるとか。
次はインターネットとLANについて、セキュリティの面から見て行きたいと思います。
まだ興味あります?
では NEXT へどうぞ。
2013/10/30 作成
2019/03/23 追記