ネットワーク勉強会
情報工学課程
馬杉
康平
Part1 TCP/IP登場の背景とその歴史
• 軍事技術の応用から… • ARPANETの誕生 • TCP/IPの誕生 • UNIXの普及とインターネットの拡大 • 商用インターネットサービスの開始軍事技術の応用から…
1960年代、アメリカ国防総省(DoD:The Department of Defence) が中心となり勧められた研究開発があった。
それは、軍事のための通信技術の研究である。
DoD「通信中にネットワークの一部が敵の攻撃によって破壊され ても、迂回経路を通じてデータが配送され、通信が停止しないよ うなネットワークがあればなぁ…」
中央集中的なネットワーク
迂回路がたくさんある分散的なネットワーク
いくつかの経路に障害が発生しても、迂回路を通じ
て通信できる
• 攻撃されても通信できるネットワークを実現するために、
パケット通信の必要性が唱えられるようになった
• パケット通信は複数のユーザーで同時に1つの回線を共有 ↓
1960年代後半になると、さまざまな研究者がパケッ
ト交換技術、パケット通信に注目するようになった。
分散型ネットワークは、1960年米国のRAND研究所のポール・バ ランによって提唱された。
また、パケット交換による通信は、1965年英国のNPL(英国立物
ARPANETの誕生
1969年、パケット交換技術の実用性を試験するためのネットワー ク(ARPANET : Advanced Research Projects Agency Network)が 構築された。当初はアメリカ西海岸の大学と研究機関のうちの4 つのノードを結んだものだった。
わずか3年間で4つのノードから34のノードを接続する形に発展 (当時としては)非常に大規模なネットワークに発達
この実験によって、パケットによるデータ通信手法が実用に耐え ることが証明された。
TCP/IPの誕生
ARPANETの実験では、ただ単に大学と研究機関を結ぶ幹線でパ ケット交換を利用するだけでなく、相手先のコンピュータとの間 で信頼性の高い通信手段を提供する総合的な通信プロトコルの実 験も行われた
年 内容 1960年代後半 DoDによって通信技術に関する研究開発が開始 1969年 ARPANETの誕生、パケット交換技術の開発 1972年 ARPANETの成功、50ノード以上にまで拡大 1975年 TCP/IPの誕生 1982年 TCP/IPの仕様決定。UNIXが提供され始める。このUNIXの中にはTCP/IPが実装されていた 1983年 ARPANETの正式手順がTCP/IPに決定 1989年ごろ LANでのTCP/IP利用が急激に拡大 1990年ごろ LAN、WANを問わず、TCP/IPが使われる方向に発展 1995年ごろ インターネットの商用化が進み、プロバイダが数多く設立 1996年 次世代IPのIPv6の仕様が決定しRFCに登録される(1998)年に修正
UNIXの普及とインターネットの拡大
• 1980年前後 • 1983年 大学や研究所などで、コンピュータのOSとしてBSD UNI Xが広く利用されていた。このOSの内部にTCP/IPが実装 されていた。 ARPANETの正式な接続手段としてTCP/IPが採用される。 また、旧Sun Microsystems社が、TCP/IPを実装した製品 を一般向けに提供し始める1980年代は、LANが発達するとともに、UNIXワークステーショ ンの普及が急速に進んだ。 同時に、TCP/IPによるネットワークの構築が盛んに行われるよう になった。 このような流れとともに、大学や企業の研究所などが、徐々に ARPANETやその後継のNSFnetに接続するようになっていった。 このころから、TCP/IPによる世界的なネットワークを「インター ネット」と呼ぶようになった
インターネットは、終端ノード間のUNIXマシン同士をつなげる 形で大きく普及していった。 TCP/IPもUNIXと密接な関係を持ちながらさらに発達し普及して いった。 また、1980年代半ばごろからは、企業などを中心に導入が進んで いた各コンピュータメーカー独自のプロトコルも、 次第にTCP/IPに対応するようになっていった
商用インターネットサービスの開始
インターネット 実験、研究目的 ↓ 1990年代、企業や一般家庭に対してインターネットへの接続を 提供するサービスが普及(ISPが提供) 同時にインターネットを利用した、オンラインゲームやSNS、 動画配信などの商用サービスも開始それまでの、一般の人々の間におけるコンピュータ通信 (電話回線を利用したパソコン通信など)
• 限られた会員同士でしかコミュニケーションできない
• 複数のパソコン通信に加入するとそれぞれ操作方法が異なる など、不便な点があった。
そこで…
インターネットを企業や一般家庭に接続し、
かつ商用利用も許可するISPが登場!
※このとき、TCP/IPは、研究ネットワークとして長い間運用さ れてきたために商用サービスにも耐えうる成熟したプロトコ ルになっていた。インターネット…世界中が接続された公共の開放されたネットワーク!
できることは・・・
• WWWで全世界から情報収集 • 電子メールを使ってコミュニケーション • 世界へ向けて情報を発信 • インターネット上で新たなサービスの開始その結果、インターネットは…
• 有料の商用サービスとして急成長
• それまで普及していたパソコン通信などのサービスを取り込ん でいく
Part2
TCP/IPの標準化
• TCP/IPという語は何を指すの? • TCP/IP標準化の精神 • TCP/IPの仕様書RFC • TCP/IPプロトコルの標準化の流れ • RFCの入手方法TCP/IPという語は何を指すの?
TCPとIPという2つのプロトコル?
多くの場合…
TCPとIPだけではなく、IPを利用したり、IPで通信
したりするときに必要となる多くのプロトコル群の
総称として使われる
TCP/IPプロトコル群 アプリケーションプロトコル トランスポートプロトコル 経路制御プロトコル インターネットプロトコル HTTP,SMTP,FTP, TELNET,SNMP TCP,UDP RIP,OSPF,BGF IP,IMCP,ARP
また、TCP/IPをインターネットプロトコルスイート
(Internet Protocol Suite)と呼ぶこともある。これは、
インターネットを構築する上で必要なプロトコルの
TCP/IP標準化の精神
TCP/IPの標準化が、他の標準化と比べて大きく異なる点 ・ ・ ・ • オープンであること • 標準化するプロトコルが実際に使えるかどうかを重視することTCP/IPのプロトコルは、IETF(Internet Engineering Task Force) での議論を通して決められ、標準化される。IETFには誰でも参加 が可能。 通常この議論は、電子メールのメーリングリストで行われる。 メーリングリストにも誰でも参加が可能 また、TCP/IPの標準化では、プロトコルの仕様を決めることを重 視するのではなく、互いに通信できる技術を 追い求めてきた。(開発重視)
TCP/IPの仕様を決めるときは、実装することを念願に置きながら 作業が進められる。
そして、プロトコルの詳細仕様を煮詰めるときには、そのプロト コルが実装されている装置が存在し、限定された形であるにせよ 実際に通信できるようになっている必要がある。
TCP/IPのプロトコルの仕様がだいたい決まる ↓ 複数の実装を持ち寄り、相互接続の実験 ↓ 問題があったら議論を行い、 プログラムやプロトコル、ドキュメントの 修正
TCP/IPは動かすことを重視して仕様が決められてい
るため、実用性高
繰り返すことで プロトコルを標準化相互接続実験などでは想定されていなかった環境では、正常に動 作しない可能性も・・・
↑
TCP/IPの仕様書RFC
RFCとは?
• Request For Commentsの略
• 標準化するプロトコルの仕様が書かれていて、インターネット 上で公開されているドキュメント
• プロトコルの実装や運用に関する有用な情報やプロトコルの実 験に関する情報も含む
• RFCには番号がつけられる。 (例:IPの仕様書…RFC791 TCPの仕様書…RFC793) • RFCの番号は決められた順番に割り当てられる • 内容の改訂はダメ • プロトコルの仕様拡張時、新しい番号のRFCで拡張部分を定義 • プロトコルの仕様変更時には新しいRFCが発行され、古いRFC は無効になる。新しいRFCには、どのRFCを拡張するのか、ま たは、どのRFCを無効にしたかが書かれる
• 主要なプロトコルや標準に対してはSTD(Standard)という番号 づけも行われている • STDではどの番号がどのプロトコルの仕様を示すかが決められ ていて、同じプロトコルなら仕様が変わってもSTDの番号は変 化しない(STDが指し示すRFCの番号は変化したり入れ替わった りする可能性あり)
その他の番号付け
STD
FYI
• For Your Informationの略
• インターネットのユーザーや管理者のための有益な情
報を提供するための番号付け
• STDと同じように、実際の中身はRFCだが、ユーザー
にとって参照しやすいように、内容が更新されても番
号が変わらないようになっている
※STD1には、RFCとしてだされたプロトコルの標
準化の状態についてまとめて記述されてある。
TCP/IPプロトコルの標準化の流れ
プロトコルの標準化作業では、年3回行われるIETFでの議
論を通して行われる。
手順1:プロトコルの提案
プロトコルを提案したい人やグループは、ドキュメントを
書き、インターネットドラフトとして公開
↓
このドキュメントをもとに議論(主にメーリングリストで)
↓
実装、シミュレーション、運用実験等を行う
※
インターネットドラフトの有効期間は6ヵ月。
これは、議論をしたら6ヵ月ごとに変更を反映させな
ければならないことを意味している。
同時に、議論が行われなくなった無意味なインターネ
手順2:標準化
議論が十分に行われ、IETFの主要なメンバーから構成される IESG(IETF Engineering Steering Group)の承認が得られる
↓
RFCのドキュメントとして登録される! (提案標準(Proposed Standard))
提案標準として提案されたプロトコルが多くの機器で実装
され広く運用されるようになり、IESGの承認が得られる
↓
ドラフト標準(Draft Standard)に!
※実際に運用して問題があることが明らかになった場合
には、ドラフト標準になる前にインターネットドラフ
トで修正か加えられる。
ドラフト標準になってから標準(Standard)になるためには、
さらに多くの機器で実装され、利用されなければならない。
標準化に携わる多くの人が「実用性が十分にあって問題な
い」と考えるようになり、IESGによって承認が得られる
↓
標準に!!
標準になったプロトコルは、非常に実用性が高い技術!!
入口 実験プロトコル 提案標準 ドラフト標準 標準 歴史的プロトコル 他のプロトコルや 他のバージョンに 置き換えられた 場合 最低6ヵ月 最低4ヵ月
RFCはどうやって手に入れるの?
http://www.rfc-editor.org/rfc/
ftp://ftp.rfc-editor.org/in-notes/
↑全てのRFCファイルが納められているサイト
国内のanonymous ftpサイトにもRFCが置かれている。
↓
ftp://ftp.nic.ad.jp/rfc/
Part3
インターネットの基礎知識
• インターネットって何? • インターネットとTCP/IPの関係 • インターネットの構造 • ISPと地域ネット • インターネットの内と外インターネットって何?
• 英語の”internet”…元々は複数のネットワークを結んで1
つのネットワークにすることを意味していた
例:・2つのイーサネットセグメントをルーターで接続し
たもの
・企業内の部署間のネットワークや社内ネットワー
クを企業内で接続したもの
・地域ネットワーク間や世界的規模のネットワーク間
の接続
しかし、最近ではこのような意味ではあまり使われない。
(このような意味を伝えるには「インターネットワーキン
グ」という言葉が使われる)
現在の意味…ARPANETから発展し、全世界を接続して
いるコンピュータネットワーク
インターネットとTCP/IPの関係
インターネットで通信をするにはプロトコルが必要。
そして、TCP/IPは元々インターネットを運用するために
開発されたプロトコル。
インターネットの構造
小さなネットワーク同士が接続、組織内のネットワークを構成 ↓ 組織のネットワーク同士が接続されて地域ネットワークを構成 ↓ 地域ネットワーク同士が接続されて 最終的には世界中を結ぶ巨大なインターネットを形成 (補助資料internetstr.jpgも参照)• それぞれのネットワークは、バックボーンと呼ばれる基幹ネッ トワークと、スタブと呼ばれる末端のネットワーク部分から構 成される。 • ネットワークとネットワークはNOC(Network Operation Center)で接続される • IX(Internet Exchange)…ネットワークの運用者や運用方針、利 用方針などが異なるネットワークを対等に接続するポイント
インターネット ・ ・ ・
「異なる組織がIXによって相互に接続された巨大な
ネットワーク」
ISPと地域ネット
インターネットに接続するためには、ISPや地域
ネットに接続を依頼することになる。
ISP
• Internet Service Provider,つまりインターネット接続業者のこと • 電話回線、光ファイバー回線などを通じて、企業や家庭のコン ピュータをインターネットに接続する。 • 多くのISPでは、様々な接続メニュー(サービス品目)を用意して いる。 (例:月に数回短時間だけ接続する場合に有利な契約、移動 先からでも自由に利用できる契約 など)
地域ネット
• 特定地域で自治体やボランティアなどにより運営されている • 比較的安価に利用可能
インターネットの内と外
社内のLANや自宅のコンピュータがインターネットとつながっている場合 これら全部をインターネットの一部と見ることができる。 会社 LAN ISP ISP ISP ISP インターネット 自宅会社のLANや自宅のコンピュータから見た場合、接続先のネットワークが インターネットであるという見方もできる。 ↑サービスの提供者を自分「外側」に存在するものとして強く意識し、内 と外を分けた表現 インターネット LAN 会社 自宅
Part4 TCP/IPプロトコルの階層モデル
• TCP/IPとOSI参照モデル • ハードウェア(物理層) • ネットワークインターフェース層(データリンク層) • インターネット層(ネットワーク層) • トランスポート層 • アプリケーション層TCP/IPとOSI参照モデル
TCP/IPで登場する様々なプロトコルも、基本的にはOSI参
照モデルに当てはめることができる。
各プロトコルがOSI参照モデルのどの層に該当するかが分
かれば、そのプロトコルが何をするためのものなのか
見当がつく。
アプリケーション層
OSI参照モデル
TCP/IPの階層モデル
アプリケーション層 プレゼンテーション層 セッション層 トランスポート層 ネットワーク層 データリンク層 物理層 (ハードウェア) ネットワークインターフェース層 インターネット層 トランスポート層 アプリケーション プログラム オペレーティング システム デバイスドライバと ネットワーク インターフェースTCP/IPとOSIで、階層モデルが少し異なっているの
はなぜか?
OSI参照モデル…「通信プロトコルに必要な機能は何か」
が中心
TCP/IPの階層モデル…「プロトコルをコンピュータに
実装するにはどのようにプログ
ラミングしたらよいか」が中心
ハードウェア(物理層)
• イーサネットや電話回線などの物理層 しかしその内容については何も決めていない • 使用する通信媒体はケーブルでも無線でもよい • 通信する上での信頼性やセキュリティ、帯域、遅延時間などに ついても特に制限なしネットワークインターフェース層
(データリンク層)
• イーサネットなどのデータリンクを利用して通信をする
ためのインターフェースとなる階層
• 「NIC(Network Interface Controller)を利用できるように
するためのソフトウェア」のようなもの
インターネット層(ネットワーク層)
• インターネット層では、IPプロトコルが使われる。IPプロトコ ルはIPアドレスをもとに、最終目的のホストまでパケットを届 ける。 • インターネット層は、ネットワークの細かい構造を抽象化する。 このため、両端のホストからは、通信相手のコンピュータが、 雲のようにもやもやとしたネットワークのかなたに接続され ているように見える。• TCP/IPの階層モデルでは、一般にインターネット層とトランス ポート層がホストのOSに組み込まれることを想定している。 特にルーターには、インターネット層を利用してパケットを 転送する機能を実装しなければならない。 • インターネットに接続される全てのホストやルーターは、必ず IPの機能の実装が必要。ただし、ブリッジやリピーター、ハブ の場合、必ずしもIPやTCPを実装する必要はない。
IP(Internet Protocol)
• ネットワークをまたいでパケットを配送し、インターネット全 体にパケットを送り届ける • それぞれのホストを識別するために、IPアドレスと呼ばれる識 別子を使用 • データリンクの特性を隠す役割もある。IPにより、通信したい ホストの間の経路がどのようなデータリンクになっていても通 信が可能に • パケットが相手に到達しなかった場合のパケット再送などは行 わないICMP(Internet Control Message Protocol)
• IPパケットの配送中に何らかの異常が発生してパケットを転送 出来なくなった場合に、パケットの送信元に異常を知らせるた めに使われる。
• ネットワークの診断にも利用される。
ARP(Address Resolution Protocol)
• パケットの送り先の物理的なアドレス(MACアドレス)をIPアド レスから取得する。
トランスポート層
• 最も重要な役割は、アプリケーションプログラム間の通信を実 現すること ※コンピュータの内部では、複数のプログラムが同時に動作して いるため、どのプログラムとどのプログラムが通信しているか を識別する必要がある。アプリケーションプログラムの識別に はポート番号と呼ばれる識別子が使われる。TCP(Transmission Control Protocol)
• コネクション型で信頼性あり • 両端のホスト間でデータの到達性を保証(もし、経路の途中で データを運んでいるパケットが無くなったり、順番が入れ替 わったりしても、TCPが正しく解決) • ネットワークの帯域幅を有効に利用する仕組みや、ネットワー クの混雑を和らげる仕組みなど、様々な機能が組み込まれてい る• コネクションの確立/切断をするだけで制御のためのパケットを 約7回もやり取りするので、転送するデータの総量が少ない場合 には無駄が多くなる
• ビデオ会議の音声・映像データなどのように、一定間隔で決め られた量のデータを転送する通信にはあまり向いていない
UDP(User Datagram Protocol)
• コネクションレス型で信頼性なし • 送信したデータが相手に届いているかどうかのチェックをしな い • パケット数が少ない通信や、ブロードキャストやマルチキャス トの通信、ビデオや音声などのマルチメディア通信に向いてい るアプリケーション層
• TCP/IP階層モデルでは、OSI参照モデルのセッション層やプレ ゼンテーション層、アプリケーション層は、すべてアプリケー ション内で実現されていると考えられる。 • TCP/IPのアプリケーションプログラムの機能を細かく見ていく と、OSI参照モデルのアプリケーション層の機能だけでなく、 セッション層の機能やプレゼンテーション層の機能が見えてく る。要求 応答 クライアント サーバー いつでも サービスを 要求できる あらかじめ ホスト上で 動作させておく 必要がある (サービスを受ける) (サービスを提供)
WWW(World Wide Web)
• インターネットが一般に普及する原動力となったアプリケー ション • Webブラウザを通して、ネットワークの中を旅することができ る • ブラウザとサーバーの間の通信で使われるプロトコルは HTTP(HyperText Transfer Protocol)• 送信に使われる主なデータフォーマットが、HTML(Hypertext Transfer Protocol) • WWWでは、 HTTPがOSI参照モデルのアプリケーション層のプロトコル、 HTMLがプレゼンテーション層のプロトコル といえる
電子メール(E-Mail)
• 電子メールとは、ネットワーク上の郵便配達であり、これを使 えば遠く離れた人にも簡単にメッセージを送れる
• 電子メールの配送ではSMTP(Simple Mail Transfer Protocol)と いうプロトコルが利用されている
• 当初、インターネットの電子メールではテキスト形式でしか メッセージを送信できなかった • 現在はMIME(マイム)の仕様が一般的 映像や音声のファイルなど様々な情報を送信できる また、メールの文字の大きさを変えたり、色を変えたりするこ ともできる
MIMEとは・・・
• Multipurpose Internet Mail Extensionsの略
• インターネットで幅広く使えるように電子メールで送信できる データ形式を拡張したもの
ファイル転送(FTP)
• ファイル転送とは、異なるコンピュータのハードディスク上に 存在するファイルを自分のコンピュータのハードディスクに転 送したり、自分のコンピュータにあるファイルを別のコン
• ファイル転送には、FTP(File Transport Protocol)が昔から使わ れている (最近では、WWWで使用するHTTPも使われている) • FTPでファイルを送るとき、バイナリモードやテキストモード を選べる (テキストモードでは、WindowsやMac OS、UNIXなど、改行 コードが異なるOS間でテキストファイルを送信するときに自動 的に改行コードが変換される)
FTPで確立される2つのTCPコネクション
• ファイル転送の指示をするための制御コネクション • 実際にデータを転送するためのデータコネクション
遠隔ログイン(TELNETとSSH)
遠く離れたコンピュータにログインして、そのコンピュータでプ ログラムを走らせることができるようにするための機能。
遠隔ログインで使われるプロトコル
• TELNET(TELetypewriter NETworkの略) • SSH(Secure Shellの略) • BSD系のrloginなどのrコマンド系のプロトコル • X(X Window Systemで利用される。遠隔のグラフィック端末 を実現)ネットワーク管理(SNMP)
• ネットワーク管理に、SNMP(Simple Network Management Protocol)が使われる。 • SNMPは、エージェントとマネージャーの通信に使われるプロ トコル • エージェント…SNMPで管理されるルーター、ブリッジ、ホス トなど • マネージャー…ネットワーク機器を管理するプログラム (補助資料network.jpgも参照)
• SNMPのエージェントでは、様々な情報を格納している 例:ネットワークインターフェースの情報
通信パケットの量 異常なパケットの量 機器の温度の情報
• その情報は、MIB(Management Information Base)という決め られた構造によってアクセスできる
• ネットワークが大きくなればなるほど、ネットワーク管理は重 要になってくる。
• SNMPを利用してネットワークの混雑具合の調査や、障害の発 見、将来のネットワーク拡張のための情報収集などに役立てる ことができる。
Part5 TCP/IPの階層モデルと通信例
• パケットヘッダ
• パケットの送信処理 • パケットの受信処理
パケットヘッダ
• パケットヘッダ…パケット内にあるヘッダ • ヘッダ…各階層で、送信されるデータに付加される情報 その層で必要とされる情報が入っている (具体的には、送信元や宛先の情報及びそのプロトコル が運んでいるデータに関する情報が入っている)プロトコルのための情報が、ヘッダで、送信される情報がデータ。 (データ) (TCPヘッダ) (IPヘッダ) イーサネット ヘッダ IPヘッダ (TCPヘッダ) TCPヘッダ (データ) データ イーサネットではデータ IPではデータ TCPでのデータ
パケットの送信処理
※配布した資料も参照 (mailsend.jpg)
1.アプリケーションの処理
@上位層
通信開始! ↓ アプリケーションで符号化の処理 (符号化はOSIのプレゼンテーション層に相当する機能) ↓ 実際にメールが送信される (通信のコネクションをいつ確立していつデータを転送するかを管 理する機能は、OSI参照モデルのセッション層に相当する機能)アプリケーションはメール送信時、 TCPにコネクションの確立を指示 ↓ TCPのコネクションが確立されたら、 それを利用してメールデータを送信 ↓ アプリケーションのデータが下位層のTCPに 渡され、実際の転送処理が行われる
2.TCPモジュールの処理 @トランスポート層
• TCPは、アプリケーションの指示によって、コネクションの確 立、データ送信、コネクションの切断を行う
• TCPはアプリケーションから渡されたデータを確実に相手に届 けるために、信頼性のあるデータ転送を提供
アプリケーションから渡されたデータの前に TCPのヘッダが付けられる
↓
TCPヘッダに含まれているもの
• 送信ホストと受信ホストのアプリケーションを識別するための ポート番号 • パケットのデータが何バイト目のデータなのかを示すシーケン ス番号 • データが壊れていないことを保証するためのチェックサム (誤り検出符号の一種) etc.3.IPモジュールの処理 @ネットワーク層
IPではTCPから渡されたTCPヘッダとデータのかたまりを1つのデ ータとして扱う。 TCPモジュールから送られてきたデータに 付いているTCPヘッダの前にIPヘッダをつける (IPパケットの生成) ↓ 経路制御表(ルーティングテーブル)を参照し、 IPパケットを次に受け渡すルーターやホストを決定↓
その機器が接続されているネットワークインターフェースの ドライバにIPパケットを渡して、実際の送信処理をしてもらう
※通信先の機器のMACアドレスが分からない場合はARP(Address Resolution Protocol)を利用してIPアドレスが調べられる。
IPヘッダに含まれているもの
• 宛先のIPアドレス • 送信元のIPアドレス
• IPヘッダの次に続くデータがTCPなのかUDPなのか
4.ネットワークインターフェース(イーサネットドライバ)
の処理
@データリンク層
IPから渡されたIPパケットは、イーサネットドライバから見ると 単なるデータに過ぎない。 IPパケットにイーサネットのヘッダを付ける (イーサネットパケット生成) ↓ 送信処理を行う↓
物理層により、イーサネットパケットが 相手先に運ばれる
※送信処理中にFCS(Frame Check Sequence)が計算され、パケ ットの最後に付けられる。このFCSはノイズなどによりパケッ トが破壊されたことを検出するためのもの。
イーサネットのヘッダに含まれるもの
• 宛先のMACアドレス • 送信元のMACアドレス
• イーサネットのヘッダに続くデータのプロトコルを示すイーサ ネットタイプ
パケットの受信処理
5.ネットワークインターフェース(イーサネットドライバ)
の処理
@データリンク層
イーサネットヘッダの宛先MACアドレスが自分宛てかどうかを調 べる(自分宛てでない場合はそのパケットを破棄) ↓ パケットが自分宛てだった場合、イーサネットタイプフィールド を調べて、イーサネットプロトコルが運んでいるデータの種類を 調べる (処理できないプロトコルの値がイーサネットタイプフィールドに 入っている場合、データを破棄)↓
データを運んでいるプロトコルを処理している ルーチンにデータを渡す
6.IPモジュールの処理 @ネットワーク層
宛先IPアドレスが自分のホストのIPアドレスならばそのまま受信 して上位層のプロトコルを調べる ↓ TCPならばTCPの処理ルーチンに、 UDPならばUDPの処理ルーチンに IPヘッダを除いたデータの部分を送信※ルーターの場合には、受信するIPパケットの宛先は、殆ど自分 宛てではない。この場合、経路制御表から次におくるホストや ルーターを調べて転送処理を行う。
7.TCPモジュールの処理 @トランスポート層
• チェックサムを計算してヘッダやデータが壊れていないかを確 認 • データを順番通りに受信しているかどうかを確認 • ポート番号を調べて、通信を行っているアプリケーションを特 定• データがきちんと届いた場合には、送信ホストにデータが届い たことを確認するための「確認応答」を返す この確認応答がデータを送信したホストに届かない場合には、 送信ホストは確認応答されるまでデータを繰り返し送信する。 • データを正しく受信した場合には、ポート番号で識別したアプ リケーションにデータがそのまま渡される
8.アプリケーションの処理
@上位層
• 送信側が送信したデータをそのまま受信
• 受信したデータを解析し、受取人宛のメールであることを知る • もし受取人宛のメールボックスが存在しない場合には、送信元
• 受信したらハードディスクなどにメッセージを格納
• 格納が完了した後、処理が正常に終了したことを送信元のアプ リケーションに伝える
(途中でディスクがいっぱいになったりしてメッセージを格納で きない場合には、異常終了のメッセージを送信)
データリンクを流れるパケットの様子
イーサネット ヘッダ IP ヘッダ TCPヘッダ または IPヘッダ アプリケーションの ヘッダやデータ イーサネット トレイラ 前 後ろデータの流れる方向
(補助資料packetstr.jpgも参照)• それぞれのヘッダには、少なくとも2種類の情報が入っている。 宛先と送信先のアドレスと
それぞれのプロトコルの階層ごとに、パケットを送受信するホス トやプログラムを識別するための情報が決められている。 • イーサネット…MACアドレス • IP…IPアドレス • TCP/UDP…ポート番号 ※アプリケーションでもアドレスが使われることがある。 これらのアドレスや識別子は、パケットが送信される時にそれぞ れのヘッダに格納されてから送信される。
また、それぞれのヘッダには、そのヘッダに続くデータが何かを 示す識別子が付いている。 この識別子は上位層のプロトコルの種類を表す情報である。 • イーサネットヘッダ…イーサネットタイプ • IP…プロトコルタイプ • TCP/UDP…2つのポート番号のうちのサーバー側のポート番号 ※アプリケーションのヘッダにも、アプリケーションのデータの 種類を表すタグなどが付けられている場合がある。
• 竹下隆史ほか『マスタリングTCP/IP 入門編 第5版』(2012),オーム社.
• IT用語辞典 “e-Words”, <http://e-words.jp/w/ISP.html>,2016年11月11日アクセス.