TCP/IP 概論(BNS 補助資料
役割分担編2)
本章の重要な単語=>右図
ヘッダーと、プロトコル階層の動き

層(レイヤー)間の、データの受渡し
- 上右図のように、送信時には上位層から下位層に順々にデータが受け渡され、
受信時には反対に下位層から上位層へと受け渡される。
この図(外部サイトより)も参考にして下さい
(「TCP/IP 階層」で画像検索
すれば見つかります)。
- そのとき、図
(@ITの記事より)のように
上位の層(レイヤー)から下位層へと渡されながら順々にヘッダーが付加されていく(送信時)。
- 受信時は逆にヘッダを除いてペイロード部分が上位層に受け渡される。
- 各層のヘッダーの内容(のうち、着目すべき部分)は以下のとおり。
(下位層から順に記した。図を見ながら理解を試みて下さい)
各層で付加するヘッダー、と、プロトコル階層の動作
- 物理層の1例として、
イーサネットフレームヘッダー:
別の解説ページも参照。
- ヘッダーの主要部はsrc(ソース:発信元)とdst(デスティネーション:宛先)のアドレス。
- ここでの「アドレス」は「物理アドレス(MACアドレス」のこと。
- IPセグメントヘッダー:
- src, dst のIPアドレスが主要部分
- TTLにも着目しておくこと。
- TCPパケットヘッダー:
- ポート番号はここに書かれている。
- この層では、シーケンス番号が重要

- アプリケーション層の例として:
- メール:
- (メールを送受信する SMTP POP IMAP などのプロトコルではヘッダーは
使用しない。代わりにメールに付加されるヘッダーを見ておく):
- 使用しているメールソフトに応じて、例えば、「Windows Live メール
ヘッダー 表示」で検索してみて下さい。
- また、メールのソースを表示する機能もあるので活用してみて下さい。
- 本体の中に複数の種類のデータを包み込んで(マルチパート)1通のメールとして送受信することができる(右右図)。
- HTTP:
- Webの通信はクライアント(ブラウザ)とサーバの間で、
右図のような形で行われる。
- Webの通信内容やヘッダを見るためにはブラウザの開発ツールを使う(前回解説参照)。

- HTML:
- Webで、この形で(HTTPで)やりとりされるファイルは
HTMLという形式のものが多い。
- HTML自体も右図のようにヘッダと本体から構成される。
IPパケット転送
上位層 <====> IP層 
- ネットワークでの通信は、アプリケーション層に着目した場合は上右図のようなイメージで、
リクエストがクライアントからサーバにすんなり届いて、また、応答がすんなり返ってくる
と想定して話をしている。
- が、実際に(IP層に着目すると)、ネットワークは上右図のように多数のルータが相互接続することで
成り立っており、
- IPパケットはコンピュータ(等の端末)からルータに送られ、ルータからルータへと中継されて
目的地(であるコンピュータ)まで運ばれる(ことが、多い)。
- なお、前回紹介した「tracert
目的地アドレス」コマンドが、その中継される過程(各段階での
ルータの名前またはアドレス)を表示するので、その運ばれ方を推測することができる。
- IPルータの動作原理は、「best effort」であり、自分に届いたデータを
目的地に届けるべく「最大限に努力」する。が、
責任をとる必要はなく、状況に応じてパケットを(他に転送せずに)破棄することも許されている。
(この層でのインターネットはきわめてちゃらんぽらんなシステムであるとも考えられる)。
- また、IPヘッダには TTL という欄もあり、
送出時には64や128などの(OSにより違う)値が設定されていて、
1ホップごとに(ルータを1つ経るごとに)その値が1ずつ減らされていき、
0になるとその時点でルータによってパケットが破棄される
(あまりに遠い接続関係や、経路がループになっている異常事態を検出するための仕組み)。
- IPルータの動作を層構造の図に重ね合わせると下図左のようになる。
{tiny}
パケットを中継するしくみとして、ルータ以外に、リピータ(数右)もあり、リピータでは
中継段階で第2層に受け渡さずに、そのままの形で転送する
(転送速度とタイミングの調節だけを行う)。

- ルータの中では(PCの中でも)ルーティングテーブル(経路表)を管理していて、
経路表の中で宛先に応じた隣接ルータを選び出して、その隣接ルータにパケットを転送する。

- 端末(PC等)では、netstat -r コマンドで経路表が表示できる。
なお、経路表の宛先アドレス欄には、172.25.0.0/16
のように、ネットワーク部の長さを
スラッシュ(/)の後ろにビット長で示した形式のアドレス(ネットマスクで表示することもできるが)
が書かれている。特殊な記法である
0.0.0.0は、「それ以外ぜんぶ」を表す(デフォルト・ルート)。
TCP層の役割
- セグメントへの分割(これをIPパケットで包む)と再構成
- TCPでは、大きなデータを送信するときは、これを切り刻んで(セグメントに分け)、
1つ1つのセグメントをIP層に渡す(IP層で「パケット」として扱われる)。

- 個別のパケットとして送られてきたデータ(の、セグメント)を、受信側のTCP層が
再度もとの大きなデータの形に復元(再構成)する。 
- 再構成するときに、TCPヘッダーにある「シーケンス番号」が重要になる。

- コネクションの管理
- 3Wayハンドシェイク
- TCPの状態(netstatコマンドを思い出して下さい)
- ポート番号の割当と再利用