投稿

7月, 2020の投稿を表示しています

7月30日(木)1コマ目

イメージ
今日、やったこと TCP、UDPのポート TCPのシーケンス番号、確認応答番号 前回のテストについて 全般的によくできていました。 が、ホスト4でのルーティングを間違っている方が数名おられました。 今日のホワイトボード ポート番号 ポート番号はTCP、UDPが上位層(4階のプロトコル)を特定するために使う識別番号。 〇サーバー側 TCP、UDPともにウェルノウンポートでクライアントからのリクエストを待つ。 〇クライアント側 UDPはウェルノウンポートを使う。 TCPは空いているポート番号を使うケースが多い。 図 TCP、UDPが使うポート番号 通信はクライアント=>サーバーで始まるケースが多いため、 サーバー側は決められたポート番号で待つ必要がある クライアント側利用ポートはTCPヘッダの送信元ポート番号をチェックすればいい のようにUDPと異なる。 図 そもそも「ポート」は TCPの役割 HTTP(ホームページデータのやり取り用プロトコル)、SMTP(メールデータのやり取り用プロトコル)のように人が扱うデータを担当。よってサイズが大きく、確実に送り届けなければならない。 UDPの役割 TCPとは真逆の小サイズ、定期的にやり取りを行っているデータを担当。小サイズで定期的にやり取りしているデータのため、1つくらい紛失してもOK。 より確実に届けるために TCPは大きめサイズのデータを確実に届けるために、以下を行っている。 TCPヘッダのシーケンス番号 TCPヘッダのシーケンス番号には  このパケットのデータは何バイト目  が書き込まれる。 受信側は受信パケットのシーケンス番号を見ることでこのパケットのデータは何バイト目かがわかる。分割して送信される場合、ここをチェックして組み立てなおすことができる。 図 TCPヘッダのシーケンス番号 TCPヘッダの確認応答番号 TCPヘッダの確認応答番号には、  次はここから送って  が書き込まれる。 送信側は受信側から送信されるパケットの確認応答番号を見ることで、何バイト目まで受信できているかがわかる。 図 TCPヘッダの確認応答番号

7月27日(月)2コマ目

イメージ
今日、やったこと イーサネット、IP、ARPのテスト TCP/UDPのポート番号 今日のホワイトボード パケットを宛先まで届けるには 今までやったIP、ARP、イーサネットで十分。 ネットワークを使ってやりたいこと メールをしたり、ホームページを見たりといろいろある。 データのやり取りの面で考えると、それぞれ異なる。 〇メールの場合 ①送信元メールアドレス送信 ②宛先メールアドレス送信 ③タイトル送信 ④本文送信 〇ホームページの場合 ①見たいページをリクエスト ②サーバーからページの中身が返信される やりとりの流れが異なるため、 利用目的別にプロトコルが用意されている 。 これがプロトコル階層の4階部分にある。 3階は不要では? パケットを受信したとき、以下の流れで処理される。 ①イーサネットが受信 イーサネットヘッダの宛先MACアドレスが自分宛 => 受信する 受信パケットのイーサネットヘッダを外し、IPへ渡す。 ②IPの処理 IPヘッダの宛先IPアドレスが自分宛 => ルーティング不要 IPヘッダを外し、TCPかUDPに渡す。 ③TCP、UDPの処理 4階のどれかに渡さなければならない。それを特定する仕組みを持つ。 ということで、2階のIPと4階のプロトコルたちのつなぎ役が3階のプロトコル(TCP、UDP)の役割。 3階のプロトコルはさらに通信品質向上のための仕組みを持つTCPもある。 図 プロトコル階層 TCPとUDPの2種類があるのはなぜ? 送受信するデータはどんなデータなのかでTCPとUDPを使い分け。 図 TCPとUDPの違い 4階のプロトコルごとに ウェルノウンポート が決められており、このポート番号で4階のプロトコルを特定している。

7月23日(木)1コマ目

イメージ
今日、やったこと (前回と同じく)イーサネット、IP、ARP 今日のホワイトボード 今日のネットワークはこのネットワーク。 このネットワーク上のホストAからホストCへパケットを送る際にやりとりされるパケットを推測します。 そもそも、各機器(PCやルーター)では以下のことを行っている。 1.[IP@ホストA]ルーティング ホストC(172.16.12.55)に行くには、172.16.10.1(ルーター1のポート2)へ送ることになる。 2.[ARP@ホストA]MACアドレス取得 ルーティングした結果、172.16.10.1へ送信することなる。 この172.16.10.1のMACアドレスを取得する。 3.[イーサネット@ホストA]ホストCあてパケット送信 ホストCあてパケットをとりあえずルーター1のポート2へ送信する。 ここまでで、ホストA->ホストCのパケットはルーター1まで進む。 4.[IP@ルーター1]ルーティング 受信パケット(パケット①)をルーティングする。 つぎの宛先はルーター2のポート2に決定。 5.[ARP@ルーター1]MACアドレス取得 ルーティング結果の172.16.100.254のMACアドレスを取得。 ARPリクエストパケット(パケット②)を送出する。 6.[ARP@ルーター2]ARPレスポンス返信 受信したARPリクエスト(パケット②)に対する応答をおこなう。 このARPレスポンスを受信したルーター1はARPテーブルにIPアドレス(172.16.100.254)と取得したMACアドレスをペアで記録。 7.[イーサネット@ルーター1]ホストCあてパケット送信 受信したホストCあてパケット(パケット①)をルーター2のポート1へ送信。 これで、ホストA->ホストCのパケットはルーター2まで進む。 8.[IP@ルーター2]ルーティング 受信したパケット(パケット④)をルーティング。 結果、172.16.12.1(ルーターのポート2)からホストCへ直接送信。 9.[ARP@ルーター2]MACアドレス取得 ARPテーブルには172.16.12.55はないため、ARCリクエスト送信(パケット⑤)。 10.[ARP@ホストC]ARPレスポンス送信 ARPリクエスト(パケット⑤)に対する返信(パケット⑥)をホストCが送り出す。 ルーター2は取得したMA...

7月21日(火)3コマ目

イメージ
今日、やったこと イーサネット、IP、ARPにやりとりされるパケットを推測 今日のホワイトボード 以下のネットワークのホストAからホストCへデータを送信する際にやりとりされるパケットを推測する。 1.[IP@ホストA] ルーティングの結果、192.168.10.1(ルーターのポート1)へ送信する。 2.[ARP@ホストA] ルーターのポート1のMACアドレスを取得する。 まず、ARPテーブルチェック => データなし よって、 ARPリクエストパケット(パケット①) 送信。 3.[ARP@ルーター]ARPレスポンスパケット生成、返信 ARPリクエストパケット(パケット①) を受信したルーターはホストAへ ARPレスポンスパケット(パケット②) を返信する。 なお、このARPレスポンス(パケット②)を受信したホストAはARPテーブルに取得データを保存する。 4.[イーサネット@ホストA]ホストCあてパケット送信 ルーターのポート1へ ホストCあてデータ送信パケット(パケット③) を送る。 これでひとまずルーターまでたどり着く。 5.[IP@ルーター]ルーティング ルーティングの結果、受信したパケット③はポート3からホストCへ直接送信することなる。 6.[ARP@ルーター]MACアドレス取得 ホストCのMACアドレスを取得する。 残念ながらARPテーブルにはホストCのデータはない。 よって、ホストCのMACアドレス取得のための ARPリクエストパケット(パケット④) を送信する。 7.[ARP@ホストC]ARPレスポンスパケット生成、返信 ホストCは自分が問い合わされているARPリクエストパケット(パケット④)を受信すると、 ARPレスポンスパケット(パケット⑤) を生成、送信して、ルーターに自分のMACアドレスを伝える。 8.[イーサネット@ルーター]ホストCあてパケット送信 ルーターはARPレスポンスパケット(パケット⑤)を受信してホストCのMACアドレスを取得する。 取得したデータはARPテーブルに保存。 これで受信していたホストCあての パケット(パケット③)のイーサネットヘッダを変更してホストCへホストAからのデータ送信パケット(パケット⑥) を送信できる。 結局、ホストAからホストCにデータを送信するために、パケット①~パケット⑥までの6つのパケットを...

7月16日(木)1コマ目

イメージ
今日、やったこと イーサネット、IPとARP(つづき) 今日のホワイトボード ルーティング=>フレーム送出までの処理を確認する(つづき) 前回は ①[IP@ホストA]ルーティング  ホストAのIPがルーティング。まずはルーター(172.16.4.1)へ送信することに。 ②[ARP@ホストA]ARPテーブルチェック  ホストAのARPテーブルには172.16.4.1のエントリなし。 ③[ARP@ホストA]ARPリクエストパケット送信  172.16.4.1のMACアドレスを取得するためにARPリクエストパケットを送信する。 までをやりました。 今日はその続きから。 ④[イーサネット@ホストA]ARPリクエストパケット送信 イーサネットではパケット送信の際、アクセス制御方式CSMA/CDに従ってパケット送信。 ネットワークに送信されたARPリクエストパケットは宛先MACアドレスがブロードキャストアドレスになっているため、ネットワーク上の全PC(ルーターも)が受信する。 なお、 ルーターはARPリクエストパケット(ブロードキャストパケット)は中継しない 。 ⑤[イーサネット@ルーター]ARPリクエストパケット受信 イーサネットからARPへパケットが渡される。 ⑥[ARP@ルーター]ARPレスポンスパケット生成 ARPは自分が問い合わされているため、返信である ARPレスポンスパケット を生成し、送信する。 ⑦[イーサネット@ホストA]ARPレスポンスパケット受信 ルーターが送信したARPレスポンスパケットを受信。 ARPへパケットを渡す。 ⑧[ARP@ホストA]ARPレスポンスパケットを処理する ルーター(172.16.4.1)のMACアドレスがわかる。 ARPテーブルに172.16.4.1と取得したMACアドレスのペアを記録する 。 ⑨[イーサネット@ホストA]ホストBあてパケット送信 パケットは下図のとおり。 宛先MACアドレス(イーサネットヘッダ)と宛先IPアドレス(IPヘッダ)が異なるので注意。 ルーターでの処理 ホストAから送信されたホストBあてのパケットはルーターに届けられる。 受信したルーターはルーティングしてさらにパケットを送信する。 ⑩[イーサネット@ルーター]パケット受信 IPにパケットを渡す。 ⑪[IP@ルーター]ルーティング実行 以下の情報を...

7月13日(月)2コマ目

イメージ
今日、やったこと イーサネット、IPとARP 今日のホワイトボード IPとイーサネットのあいだにARPがある IPがルーティングした結果、次に送る宛先が決まる。 そこへ実際にパケット(フレーム)を送信するのがイーサネット。 しかしながら、 IPがPCの識別情報として使うのはIPアドレス イーサネットがPCの識別情報として使うのはMACアドレス IPがルーティングした結果、次に送る宛先が決まるが、これはIPアドレスで指定される。 しかし、イーサネットが必要としているのはMACアドレス。 IPアドレス => MACアドレスの変換を行う仕組みが必要。 それを行うのが ARP(Address Resolution Protocol) 。 ARPはIPアドレスからMACアドレスへの変換のためのプロトコル 。 ルーティング=>フレーム送出までの処理を確認する ネットワークは下図のとおり。 ①[IP@ホストA]ルーティング 次に送る宛先は172.16.4.1に決定。 しかし、イーサネットは172.16.4.1が設定されているルーターのMACアドレスが欲しい。 ARPでIPアドレスからMACアドレスへ。 ②[ARP@ホストA]まずARPテーブルチェック 過去に調べたIPアドレスとMACアドレスの対応表がARPテーブル。 ここに対象IPアドレスがあれば、MACアドレス取得完了。 なければ、次の「ARPリクエストパケット送信」へ。 ③[ARP@ホストA]ARPリクエストパケット送信 残念ながらARPテーブルには172.16.4.1のエントリはない。 ARPリクエストパケットを送信する。 続きは次回。

7月3日(金)2コマ目(B班)、3コマ目(A班)

イメージ
今日、やったこと ルーティングテーブル作成テスト1 ルーティング作成演習その3 今日のホワイトボード ルーティングテーブル作成演習3 ネットワークは下図のとおり。 簡単にまとめると下図のとおり。 このネットワークで各機器が通信できるようにルーターA~ルーターFのルーティングテーブルを作成する。 ルーターは以下の6つのネットワークへアクセスできるようにルーティングを行う。 172.16.10.0/24 172.16.100.0/24 172.16.110.0/24 172.17.10.0/24 172.17.100.0/24 172.17.110.0/24 ルーターAのルーティングテーブル ルーターAのルーティングテーブルは下図のようになる。 このルーティングテーブルは下図のように考えることもできる。 ネットワーク図からも右半分へのルートはルーターAのポート1<=>ルーターBのポート2と共通なので、1行にまとめたい。 左右のネットワークはネットマスクの/24ではなく、16ビット目までだと、 左側ネットワークは172.16.0.0/16 右側ネットワークは172.17.0.0/16 となる。 これをうまく使えば、ルーティングテーブルは下図のように1行にまとめることができる。  宛先 マスク ゲートウェイ  インタフェース   172.16.10.0 /24  リンク上  172.16.10. 1  172.16.100.0 /24  172.16.10.128  172.16.10.1   172.16.110.0 /24  172.16.10.254  172.16.10.1    172.17.0.0 /16  172.16.1.254  172.16.1.1  ルーターEのルーティングテーブル 同じようにまとめるテクニックを使うと以下のようになる。 おわび すいませんが、配布した解答例が間違ってました。 以下に差し替えてください。

7月2日(木)1コマ目(A班)、2コマ目(B班)

イメージ
今日、やったこと テスト「ルーティングテーブルから経路をたどる」解説 ルーティングテーブル作成 演習2 今日のホワイトボード テスト「ルーティングテーブルから経路をたどる」解説 以下のネットワークにおいて、どの経路をたどるかを考える問題です。 ルーティングテーブル(その1)は以下のとおり。 ホスト1=>ホスト3 ホスト3=>ホスト2 つぎは、ルーティングテーブルをその2に変更。 ホスト1=>ホスト2 ポイントはルーターAのルーティングテーブル。  その1  宛先 マスク  ゲートウェイ  インタフェース   172.16.10.0 255.255.255.0  リンク上  172.16.10.1   192.168.1.0 255.255.255.0  172.16.20.254  172.16.20.1   192.168.2.0 255.255.255.0  172.16.40.254  172.16.40.1  その2  宛先 マスク  ゲートウェイ  インタフェース   172.16.10.0 255.255.255.0  リンク上  172.16.10.1   192.168.0.0 255.255.0.0  172.16.20.254  172.16.20.1  その2では、ホスト2のネットワーク、ホスト3のネットワークへのルートを同じルートにしている。そのため、普通に書くと以下のようになる。  宛先 マスク  ゲートウェイ  インタフェース   172.16.10.0 255.255.255.0  リンク上  172.16.10.1    192.168.1.0 255.255.255.0  172.16.20.254  172.16.20.1   192.168.2.0 255.255.255.0  172.16.20.254...