コンピューターネットワークの基礎。 テーマ番号3。 下位レベルのプロトコル(トランスポート、ネットワーク、およびチャネル)


すべての読者への挨拶。 最後に、下位レベルのプロトコルについて説明します。 この記事では、チャネル、ネットワーク、およびトランスポート層のプロトコルを分析します。 座って、健康について読んでください。


あなたが覚えているように、私はすでにネットワークで正しい動作のためにすべての規則に従うことが重要であることを言った。 つまり、カプセル化とカプセル化解除のプロセス。 したがって、前の記事で上位レベルのプロトコルについて話したとき、下位レベルのプロトコルのいくつかについて何気なく言及しました。 理由を説明します。 上の写真を見てください。 これが郵便物の仕事です。 手紙を書いて幸せに光る上部の2人のbげたおじさんを見てください。 しかし、受信者がそれを見ていない場合、手紙には意味がありません。 これを行うには、彼らは郵便サービスを使用します。 彼らの手紙は郵便局の従業員に受け入れられ、封筒に入れられます。 彼女は封筒に署名し、誰から誰に宛てられるかを明確にします。 その後、宅配便業者がこの手紙を受け取り、仕分けセンターに運びます。 以下は、帽子をかぶった農民と手紙をジャグリングするエプロンです。 彼は、宛先に届くように手紙をどこに置くべきかを知っています。 そして、輸送のハブである列車の一番下にあります。 手紙の送受信を成功させるには、全員の役割が重要であることに注意してください。

ネットワークでは、すべてが同じです。 サイトにアクセスしてニュースを読むことにしました。 ブラウザーバーにサイトのアドレスを入力します。 さらに、コンピューターは何らかの形でこれらのページを要求する必要があります。 そしてここで、トランスポートハブである下位プロトコルが助けになります。 ここでは、各レベルを図の上記の性格と比較できます。

この全体の仕掛けを共通の分母にもたらし、かつて自分のために描いた例を共有します。 端末ネットワークデバイスがあります。 コンピューター、ラップトップ、タブレット、スマートフォンなどは関係ありません。 これらの各デバイスは、TCP / IPスタックで実行されます。 したがって、そのルールに従います。

1)適用レベル。 ネットワークアプリケーション自体はここで動作します。 つまり、たとえばコンピューターから起動するWebブラウザーです。

2)輸送レベル。 アプリケーションまたはサービスには、リッスンし、それを介して接続できるポートが必要です。

3)ネットワーク層。 IPアドレスがあります。 ネットワーク上のデバイスの論理アドレスとも呼ばれます。 これを使用すると、この同じブラウザーを実行しているコンピューターに接続できます。つまり、アプリケーション自体にアクセスできます。 このアドレスを持つことで、彼はネットワークのメンバーであり、他の参加者と通信できます

4)チャネルレベル。 これは、ネットワークカードまたはアンテナそのものです。 つまり、送信機と受信機です。 彼には、このネットワークカードを識別する物理アドレスがあります。 ケーブル、コネクタもここに属します。 これは、コンピューターを他の参加者と接続する環境です。

最下層から始めましょう。 これは、OSIモデルの観点から見た場合のリンクと物理層、およびTCP / IPプロトコルスタックの高さから見た場合のアクセスレベルです。 私たちはTCP / IPを使用しているので、私は彼女の観点から話をします。 ご理解のとおり、アクセスレベルは物理層とリンク層を組み合わせたものです。

物理レベル。 または、彼らが彼を「電気レベル」と呼びたいように。 信号のパラメーターと、信号の形状と形状を設定します。 たとえば、イーサネット(ワイヤを使用してデータを送信する)を使用する場合、変調、電圧、電流はどの程度ですか。 これがWi-Fiの場合、使用する電波、周波数、振幅。 このレベルには、ネットワークカード、Wi-Fiアンテナ、コネクタが含まれます。 このレベルでは、ビットなどの概念が導入されています。 これは、送信された情報の測定単位です。

チャンネルレベル。 このレベルは、ビットだけでなく、これらのビットの意味のあるシーケンスを送信するために使用されます。 単一チャネル環境でデータを転送するために使用されます。 これが何を意味するのか、少し後で説明します。 このレベルでは、物理アドレスとも呼ばれるMACアドレスが機能します。

「物理アドレス」という用語は、理由のために導入されました。 各ネットワークカードまたはアンテナには、製造元が割り当てる有線アドレスがあります。 前の記事で、「プロトコル」という用語について言及しました。 これらのトップレベルプロトコル、またはより正確には、適用されたプロトコルのみがありました。 チャネルレベルでは、独自のプロトコルが機能し、その数は少なくありません。 最も一般的なのはイーサネット(ローカルネットワークで使用)、PPPおよびHDLC(ワイドエリアネットワークで使用)です。 もちろん、これはすべてではありませんが、シスコはCCNA認定でそれらのみを考慮しています。

このすべてを固体の乾いたテキストの形で理解するのは難しいので、写真で説明します。


IPアドレス、OSIモデル、およびTCP / IPプロトコルスタックについては忘れてください。 4台のコンピューターとスイッチがあります。 これはコンピューターを接続するための通常のボックスであるため、スイッチに注意を払わないでください。 各コンピューターには、ネットワーク上でそれを識別する独自のMACアドレスがあります。 一意でなければなりません。 私は3桁でそれらを提示しましたが、これはそうではありません。 さて、この写真は論理的な理解のためだけのものであり、実際の生活でどのように機能するかを少し下に書きます。

だから。 コンピューターの1つが別のコンピューターに何かを送信する場合、送信先のコンピューターのMACアドレスのみを知る必要があります。 MACアドレス111を持つ左上のコンピューターが右下のコンピューターに何かを送信したい場合、受信者がMACアドレス444を持っていることがわかっていれば問題なく送信します。

これら4台のコンピューターは、単純なローカルネットワークと1つのチャネル環境を形成します。 したがって、レベルの名前。 ただし、TCP / IPネットワーク内のノードを正しく動作させるには、データリンクレイヤーでのアドレス指定では不十分です。 IPアドレスとして誰もが知っているネットワークレベルでのアドレス指定も重要です。

ここで、IPアドレスを覚えておいてください。 そして、それらをコンピューターに割り当てます。


基本的なレベルでそれらがどのように機能するかを理解するために、アドレスを記号的に割り当てました。 これら2つのアドレス(チャネルとネットワーク)は互いに密接に接続して機能し、個別に機能することはできません。 次に、その理由を説明します。 日常生活では、IPアドレスまたは名前のみを使用します。これは前の記事の全体の章でした。 実際にはMACアドレスを使用していません。 コンピューター自体がそれらと連携します。 次に、状況をシミュレートします。 IP:1.1.1.1およびMAC:111で左上のコンピューターに座っています。右下のコンピューターに連絡して、生きているかどうかを確認したかったです。 彼のIPアドレスを知っていれば、彼に連絡できます。 MACアドレスは私には興味がありません。 私は彼のIPアドレスが1.1.1.4。であることを知っています。 そして、pingユーティリティ(ノード可用性チェックユーティリティ)を使用することにしました。

今重要なこと。 コンピューターは、可用性を確認する必要があるコンピューターのMACアドレスを知らないことを理解しています。 IPアドレスでMACアドレスを見つけるために、ARPプロトコルを思いつきました。 後で詳しく説明します。 次に、MACアドレスとIPアドレスの依存関係を理解し​​てほしい。 そこで、彼はネットワーク全体に「誰が1.1.1.4。」と叫び始めました。 この叫び声はすべてのネットワーク参加者に聞こえ、特定のIPアドレスを持つホストが存在する場合は応答します。 私にはそのようなコンピューターがあり、この叫びに応えて彼は答えます。「1.1.1.4は私です。 私のMACは444です。」 私のコンピューターはこのメッセージを受け取り、私が彼に言ったことを続けることができます。

次に、あるサブネットを別のサブネットと区別する方法を学ぶ必要があります。 コンピュータが理解するように、それは別のノードと同じサブネット上にあるか、別のノードにあります。 これを行うには、サブネットマスクが役立ちます。 多くのマスクがあり、最初は怖いように見えますが、最初はそうだと思われます。 記事全体が彼女に捧げられ、そこですべての秘密を学びます。 この段階で、それがどのように機能するかを示します。

ネットワークアダプターの設定をクロールしたり、プロバイダーから通知された静的アドレスを指定した場合、「サブネットマスク」フィールドが表示されます。 IPアドレス、プライマリゲートウェイ、およびDNSと同じ形式で記録されます。 これらは、ドットで区切られた4つのオクテットです。 これを見たことがない場合は、コマンドプロンプトを開き、ipconfigと入力できます。 似たようなものが表示されます。


これは私のラップトップのコマンドラインからのスクリーンショットです。 私は255.255.255.0のマスクを持つホームアクセスポイントに座っています。 これはおそらく説明するのに最も簡単なマスクであり、ほとんどの場合、まったく同じマスクを使用しています。 ポイントは何ですか。 最初の3オクテット(固定)はネットワークアドレスを示し、4オクテット(動的)はホストアドレスを示します。 言い換えれば、このマスクは、最初の3オクテットを完全にチェックする必要があることを示しており、4番目は0〜255でなくてもかまいません。一般に、これは大雑把な公式です。 このマスクを使用すると、1から254まで自由になり、0はネットワークアドレスに、255はブロードキャストアドレスになります。 しかし、いずれにしても、これは1つのチャネルメディアの制限です。 つまり、ノードが別のノードにメッセージを送信する必要がある場合、そのアドレスを取得してマスクを設定し、ネットワークアドレス(固定部分)がそのアドレスに収束する場合、それらは同じチャネル環境にあります。 同じ絵の例を使って説明します。


左上のコンピューターに座っているので、右下に送信したいと思います。 IPアドレスとMACアドレスの両方を知っています。 私たちが1つのチャネル環境にいるかどうかを理解する必要があります。 そのアドレスは1.1.1.4で、マスクは255.255.255.0です。 マスクは、3オクテットが固定されており、変更してはならないこと、および4オクテットは1から254の範囲内にあることを示しています。


ネットワークを担当する領域は赤で強調表示されます。 ご覧のとおり、2つのホストで同じです。 したがって、それらは同じサブネット上にあります。

ネットワークをアップグレードし、少し異なる方法で紹介します。


ラウンドデバイスが追加されました。 これは、ルーターまたはルーターと呼ばれます。 この言葉は誰もが知っています。 その主な役割は、ネットワークの接続と最適なルートの選択です。これについては、後で詳しく説明します。 そして、右側に、2台のコンピューターが接続される1つのスイッチを追加しました。 すべてのデバイスのマスクは変更されていません(255.255.255.0)。

すべてのデバイスのアドレスを注意深く見てください。 新しいオクテットが新しいノードと古いノードで異なることに気付くかもしれません。 それを理解しましょう。 また、MAC:111およびIP:1.1.1.1のコンピューターに座っています。 新しいノードの1つに情報を送信したい。 MAC:555およびIP:1.1.2.1を備えた右上のコンピューターとします。 マスクをして見ます。


そして、これは別の写真です。 3番目のオクテットは異なります。つまり、ノードは異なるネットワーク(より正確にはサブネット)にあります。 このような状況を解決するには、各オペレーティングシステムの設定にメインゲートウェイがあります。 「最後の手段のゲートウェイ」とも呼ばれます。 別のチャネル環境にあるノードに情報を送信する必要がある場合にのみ使用されます。 私のコンピューターでは、ゲートウェイアドレスは1.1.1.254です。 そして、私がデータを送信しているコンピューターの場合1.1.2.254。 ここでのロジックは単純です。 あるチャネル環境にあるノードが直接情報を取得した場合、別のチャネル環境にあるノードの場合、パスはルーターを経由します。

私のコンピューターは、ゲートウェイアドレスが1.1.1.254であることを知っています。 彼はネットワーク全体に「1.1.1.254応答」と叫ぶでしょう。 このメッセージは、チャネル環境のすべての参加者が受信しますが、このアドレスに座っている人だけが返信します。 それはルーターです。 彼は応答を送信し、その後、私のコンピューターはアドレス1.1.2.254にデータを送信します。 そして注意してください。 データリンク層では、データはMAC:777に送信され、ネットワーク層ではIP:1.1.2.1に送信されます。 つまり、MACアドレスはそのチャネル環境でのみ送信され、ネットワークアドレスはパス全体で変化しません。 ルーターは情報を受信すると、リンクレベルで自分宛であることを理解しますが、IPアドレスを見ると、自分が中間リンクであり、別のチャネル環境に転送する必要があることを理解します。 2番目のポートは正しいサブネットを調べます。 それで、すべてが彼のもとにきました。 しかし、彼は宛先MACアドレスを知りません。 彼はまた、ネットワーク全体で「1.1.2.1はだれですか?」と叫び始めました。 MACアドレスが555のコンピューターが応答します。 作品の論理は明確だと思います。

前の2つの記事と現在の記事を通して、 「MACアドレス」という用語は何度も言及されてきました。 それが何であるか見てみましょう。

先ほど言ったように、これはネットワークデバイスの一意の識別子です。 これは一意であり、どこにも繰り返さないでください。 これは48ビットで構成され、最初の24ビットはIEEE(電気電子技術者協会)委員会によって割り当てられた組織の一意の識別子です。 また、2番目の24ビットは機器の製造元によって割り当てられます。 こんな感じです。


彼らはそれをさまざまな方法で記録します。 例:

1)00-50-56-C0-00-08
2)00:50:56:C0:00:08
3)0050.560.0008

ご覧のとおり、同じアドレスをさまざまな方法で記述できます。 それでも通常は共有されませんが、一緒に記録されます。 知っておくべき主なことは、MACアドレスは常に48ビットで構成され、12文字または数字で構成されていることです。 多くの方法で見ることができます。 たとえば、Windowsでは、コマンドプロンプトを開いて、ipconfig / allと入力します。 多くのメーカーは、まだ箱またはデバイスの背面に記録しています。


そのため、Wi-Fiアクセスポイントを見て、同様の記録を確認できます。 冒頭で、MACアドレスを3桁の数字で示しましたが、これは正しくありません。 その文脈では、説明を簡単にするためだけに使用し、長いあいまいなメモと混同しないようにしました。 少し下になると、練習になると、実際の状態のまま表示されます。

リンクレベルでアドレスを並べ替えたら、そのレベルで機能するプロトコルを解析します。 現在ローカルネットワークで使用されている最も一般的なプロトコルはイーサネットです。 IEEEは、標準802.3として説明しています。 そのため、802.3で始まるすべてのバージョンはそれに関連しています。 たとえば、802.3zは光ファイバーケーブルを介したGigabitEthernetです。 1 Gb / s、および802.3afはPower over Ethernet(PoE-Power over Ethernet)です。

ところで、 IEEE(Eng。Institute of Electrical and Electronics Engineers)という組織については言いませんでした。 この組織は、電子工学および電気工学に関連するすべての規格を策定しています。 彼らのウェブサイトでは、既存の技術に関する多くのドキュメントを見つけることができます。 それは彼らがリクエスト「イーサネット」で与えるものです


それが何で構成されているか見てみましょう。 プロトコル自体は古い(1973年に作成された)ため、何度も近代化され、形式が変更されました。 インターネットですべてのオプションを見つけることができますが、私が勉強していたときにシスコが使用したオプションを提供します。


1) プリアンブル。 フレームの開始を示すために使用されるフィールド。 つまり、新しいフレームの始まりがどこにあるかを受信者が理解できるようにします。 以前は、共通バスを備えたトポロジが使用され、衝突があった場合、プリアンブルは衝突の防止に役立ちました。

2) 受信者MACアドレス。 受信者のアドレスが書き込まれるフィールド。

3) 送信者のMACアドレス。 したがって、送信者アドレスはここに記録されます。

4) タイプ(長さ)。 このフィールドは、上位プロトコルを示します。 IPv4の場合、これは0x0800、ARPの場合は0x0806、IPv6の場合は0x86DDです。 場合によっては、フレームデータフィールドの長さをここに書き込むことができます(ヘッダーの次のフィールド)。

5) SNAP / LLCフィールド+データ。 このフィールドには、より高いレベルから取得したデータ(または有用なデータ)が含まれます。

6) FCS(英語から。フレームチェックシーケンス-フレームのチェックサム)。 小切手金額が計算されるフィールド。 それによれば、受信者はフレームが破られたかどうかを理解します。

この記事の執筆以降は、他のリンク層プロトコルが影響を受けます。 これまでのところ、上記は彼の仕事を理解するのに十分です。

ネットワークレベルに移行すると、センセーショナルなIPプロトコルに出会えます。 ネットワークレベルについて説明しているため、このレベルで動作するプロトコルは、何らかの方法で1つのチャネルメディアから別のチャネルメディアにデータを転送できる必要があります。 しかし、最初に、それがどんな種類のプロトコルであり、それが何で構成されるかを見てみましょう。

IP(英語のインターネットプロトコルから)。 80年代に開発されたTCP / IPファミリのプロトコル。 前述したように、個々のコンピューターネットワークを相互に結合するために使用されます。 また、その重要な機能はアドレス指定です。

IPアドレス 現在、IPv4とIPv6の2つのプロトコルバージョンがあります。 それらについてのいくつかの言葉:

1)IPv4。 ピリオドで区切られた4つの10進数(0〜255)の形式で記述された32ビットアドレスを使用します。 たとえば、アドレスは192.168.0.4です。 ドットで区切られた各番号は、オクテットと呼ばれます。 これはこれまでで最も人気のあるバージョンです。

2)IPv6。 128ビットアドレスを使用します。これは、8つの4桁の16進数(0〜F)の形式で書き込まれます。 たとえば、アドレス2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d。 ドットで区切られた各番号は、6重項と呼ばれます。 普遍的な情報化の夜明けに、問題が生じました。 IPアドレスが不足し始め、より多くのアドレスを提供できる新しいプロトコルが必要になりました。 1996年に登場したIPv6プロトコルです。 しかし、後で説明するNAT技術のおかげで、アドレス不足の問題は部分的に解決されました。これに関連して、IPv6の実装は今日まで遅れています。

両方のバージョンが同じ目的のためであることは明らかだと思います。 この記事では、IPv4について説明します。 IPv6については別の記事が作成されます。

そのため、IPプロトコルは、通常IPパケットと呼ばれる情報のブロックで機能します。 その構造を考慮してください。


1)バージョン。 IPv4またはIPv6プロトコル。

2)IHL(英語のインターネットヘッダーの長さ-ヘッダーのサイズから)。 図に示されているフィールドの多くは固定されていないため、このフィールドではヘッダーのサイズが考慮されます。

3)サービスのタイプ。 QoSキュー(サービス品質)のサイズを提供します。 彼はこれを、特定の基準セット(遅延時間、帯域幅、信頼性などの要件)を指すバイトで行います。

4)パッケージの長さ。 パケットサイズ。 IHLがヘッダー内のフィールドのサイズのみを担当する場合(ヘッダーは、データフィールドを除く画像内のすべてのフィールドです)、パケット長は、ユーザーデータを含むパッケージ全体を担当します。

5)生存時間(TTL-生存時間)。 往復パケットパスを防止するために使用されるフィールド。 ルーターを通過すると、値は1ずつ減少し、ゼロに達するとパケットは破棄されます。

6)プロトコル。このパケットのアップストリームプロトコル(TCP、UDP)。

7)ヘッダーチェックサム。ここでは、ヘッダーフィールドの整合性が考慮されます。データなし!データは、データリンクレイヤーの対応するフィールドによってチェックされます。

8)オプション。このフィールドは、標準IPヘッダーを拡張するために使用されます。おなじみのネットワークではほとんど使用されません。これは、このフィールドを読み取る特定の機器のデータが書き込まれる場所です。たとえば、ドアロックの制御システム(コントローラーとの通信がある場合)、スマートホームテクノロジー、インターネット関連のものなど。ルーターやスイッチなどの使い慣れたネットワークデバイスは、このフィールドを無視します。

9)オフセット。元のIPのフラグメントが属する場所を示します。この値は常に8バイトの倍数です。

10)データ。上位レベルから受信したデータのみが含まれます。もう少し上に、イーサネットフレームにもデータフィールドがあることを示しました。そして、このIPパケットは彼のデータフィールドに含まれます。イーサネットフレームの最大サイズは1500バイトですが、IPパケットのサイズは20 Kバイトになる可能性があることを覚えておくことが重要です。したがって、パケット全体がイーサネットフレームのデータフィールドに収まりません。したがって、パッケージは分割され、部分的に送信されます。このため、以下では3つのフィールドが使用されます。

11)識別子。これは4バイトの数値で、分割されたパケットのすべての部分が1つの全体であることを示しています。

12)フラグ。これが単一ではなく、断片化されたパッケージであることを示します。

13)フラグメントオフセット。最初のフラグメントを基準にしてシフトします。つまり、これはIPパケットをまとめるのに役立つ番号付けです。

14)送信者のIPアドレスと受信者のIPアドレス。したがって、これらの2つのフィールドは、パケットの送信者と送信者を示します。

これがIPパケットの外観です。もちろん、初心者にとっては、多くの分野の価値が完全に理解できるとは思えませんが、将来的にはこのことを心に留めておく必要があります。例:「ライフタイム(TTL)」フィールド。ルーティングの仕組みを理解すると、彼の仕事が明確になります。私自身が適用するアドバイスを与えることができます。理解できない用語が見つかった場合は、それを個別に書き、空き時間があれば解析してみてください。頭に収まらない場合は、延期して少し遅れて研究に戻ります。主なことは、放棄して最終的にそれをすべて同じように終えることではありません。

TCP / IPスタックの最後のレベルが残ります。これはトランスポート層です。彼について一言。ポート番号で識別する特定のアプリケーションにデータを配信するように設計されています。プロトコルに応じて、異なるタスクを実行します。たとえば、ファイルの断片化、配信制御、データストリームの多重化と管理。最も有名な2つのトランスポート層プロトコルはUDPとTCPです。それらのそれぞれについてより詳しく説明し、その単純さのためにUDPから始めましょう。まあ、伝統によると、私はそれが何で構成されるかを示しています。


1)送信元ポート。クライアントまたはサーバーがサービスを識別するために使用するポート。必要に応じて、このポートに応答が送信されます。

2)宛先ポート。宛先となるポートがここに示されています。たとえば、クライアントがサイトページを要求する場合、デフォルトでは宛先ポートは80番目(HTTPプロトコル)になります。

3)UDPの長さ。 UDPヘッダーの長さ。サイズは8〜65535バイトです。

4)UDPチェックサム。整合性チェック。壊れている場合は、再送信を要求せずに単に破棄します。

5)データ。最上位からのデータはここにまとめられています。たとえば、Webサーバーがクライアントのリクエストに応答してWebページを送信すると、このフィールドになります。

ご覧のとおり、彼には多くのフィールドがありません。そのタスクはポート番号付けであり、フレームが破られているかどうかを確認します。プロトコルはシンプルで、リソースを必要としません。ただし、配信制御を提供したり、壊れた情報を繰り返し要求したりすることはできません。このプロトコルで動作する有名なサービスには、DHCP、TFTPがあります。これらは、トップレベルのプロトコルが検討されたときに、以前の記事で議論されました

さらに複雑なプロトコルに移りましょう。 TCPプロトコルに適合しています。それが何で構成されているかを見て、各フィールドを実行します。


1)送信元ポートと宛先ポート。 UDPと同じ役割、つまりポート番号を実行します。

2)シーケンス番号。これがアカウント内にあるセグメントを反対側で明確にするために使用される番号。

3)確認番号。このフィールドは、配信が予想される場合、または配信が確認される場合に使用されます。これを行うには、ACKパラメーターを使用します。

4)ヘッダーの長さ。 TCPヘッダーのサイズ(これらは上の図に示されているすべてのフィールドであり、データフィールドを除く)とデータのサイズを理解するために使用されます。

5)予約済みフラグ。このフィールドの値はゼロに設定する必要があります。特別なニーズのために予約されています。たとえば、ネットワークの輻輳を報告します。

6)フラグ。このフィールドでは、セッションを確立または中断するための特別なビットが設定されます。

7)ウィンドウサイズ。確認が必要なセグメントの数を示すフィールド。おそらくあなた方一人一人がそのような写真を観察しているでしょう。ファイルをダウンロードしていて、ダウンロードの速度と時間を確認しています。そして、ここで最初に彼は30分が残っていることを示し、2-3秒後にすでに20分です。 5秒後、10分と表示されます。これはウィンドウのサイズです。まず、送信された各セグメントについてより多くの確認を受信できるように、ウィンドウサイズが設定されます。その後、すべてがうまくいき、ネットワークは失敗しません。ウィンドウサイズが変更され、より多くのセグメントが送信されるため、必要な配信レポートが少なくなります。したがって、ダウンロードは高速です。ネットワークが短いグリッチを与え、一部のセグメントが破られて到着するとすぐに、サイズが再び変更され、より多くの配信レポートが必要になります。これがこの分野の本質です。

8)TCPチェックサム。 TCPセグメントの整合性を確認します。

9)重要度のインデックス。これは、URGフラグが設定されたパケットのSEQに関連する重要なデータの最後のオクテットのオフセットです。これは、送信エージェントの側から上位プロトコルのフローまたは状態を制御する必要がある場合に使用されます(たとえば、受信エージェントが、データストリームに対応していないことを送信エージェントに間接的に通知できる場合)。

10)オプション。高度なパラメータまたは追加のパラメータに使用されます。たとえば、発生したイベントの時間を示すラベルの一種であるタイムスタンプパラメータの場合。

11)データ。 UDPプロトコルとほぼ同じです。高レベルのデータはここでカプセル化されます。

TCPプロトコルの構造を見たと同時に、トランスポート層に関する会話を終了しました。結果は、より低いレベルで動作するプロトコルの非常に短い理論でした。私はできるだけ簡単に説明しようとしました。次に、すべてを実際に試し、いくつかの質問を終了します。

CPTを開き、上の図の1つに似た回路を組み立てます。


ここでは、4台のコンピューターとこれらのコンピューターを統合するスイッチで構成される最初のネットワークを観察します。2台目のコンピューターとスイッチで構成される2番目のネットワーク。ルーターはこれら2つのネットワークを接続します。デバイスのセットアップに移りましょう。その後、図の最初に検討した状況をシミュレートします。

PC1コンピューターを開き、ネットワーク設定を処方します。


私はアドレスを気にせず、常に目の前にある最も単純なものを使用しました

。1)IPアドレス-192.168.1.1

2)サブネットマスク-255.255.255.0。上記のマスクを検討しました。同じローカルネットワーク上の他のホストのネットワークアドレスは192.168.1であり、ホストアドレスは1〜254であることを思い出してください

。3)メインゲートウェイは192.168.1.254です。これは、別のLAN上のホストのデータが送信されるルーターのアドレスです。

類似の画像が多くないようにするために、残りの3台のコンピューターのスクリーンショットは提供せず、設定のみを提供します。

PC2:
1)IPアドレス-192.168.1.2
2)サブネットマスク-255.255.255.0。
3)メインゲートウェイは192.168.1.254です。

PC3:
1)IPアドレス-192.168.1.3
2)サブネットマスク-255.255.255.0。
3)メインゲートウェイは192.168.1.254です。

PC4:
1)IPアドレス-192.168.1.4
2)サブネットマスク-255.255.255.0。
3)メインゲートウェイは192.168.1.254です。

とりあえず、この設定で停止して、ローカルネットワークがどのように機能するかを見てみましょう。CPTをシミュレーションモードにします。私がPC1に座っており、pingコマンドでPC4の可用性を確認したいとします。PC1でコマンドラインを開きます。


Enterキーを押すと、チャートに2つの封筒が表示されます。


それらの1つはICMPであり、pingコマンド自体で機能します。すぐに開いて見ます。


IPおよびICMPデータが表示されます。ここには、いくつかのフィールドを除いて、興味深いものはありません。つまり、IPデータの左上隅の数字4は、IPv4が使用されていることを示しています。送信元および宛先IPアドレス(SRC:192.168.1.1およびDST:192.168.1.4)の2つのフィールド。

しかし、ここでpingは問題に直面しています。彼は宛先MACアドレスを知りません。つまり、リンク層アドレス。これを行うために、彼はARPプロトコルを使用します。ARPプロトコルは、ネットワーク参加者に問い合わせてMACアドレスを見つけます。前の記事で彼について話しました。それについてもっと詳しく話しましょう。私は伝統を変えません。スタジオの写真!



1)データリンク層のプロトコルタイプ(ハードウェアタイプ)。名前から、チャンネルレベルのタイプがここに示されていることは明らかだと思います。これまでのところ、イーサネットのみを検討してきました。このフィールドでの指定は0x0001です。

2)プロトコルタイプのネットワーク層(プロトコルタイプ)。ここでも同様に、ネットワーク層のタイプが示されます。 IPv4コードは0x0800です。

3)バイト単位の物理アドレスの長さ(ハードウェアの長さ)。これがMACアドレスの場合、サイズは6バイト(または48ビット)になります。

4)論理アドレスの長さ(バイト単位)(プロトコルの長さ)。 IPv4アドレスの場合、サイズは4バイト(または32ビット)になります。

5)操作コード。送信者トランザクションコード。これが要求の場合、0001をコーディングします。応答の場合、0002。6

)送信者の物理アドレス(送信者ハードウェアアドレス)。送信者のMACアドレス。

7)送信者の論理アドレス(送信者プロトコルアドレス)。送信者のIPアドレス。

8)受信者の物理アドレス(ターゲットハードウェアアドレス)。受信者のMACアドレス。これがリクエストの場合、原則として、アドレスは不明であり、このフィールドは空のままです。

9)受信者の論理アドレス(ターゲットプロトコルアドレス)。受信者のIPアドレス。

これが何で構成されるかがわかったので、CPTでの彼の作品を見ることができます。 2番目の封筒をクリックして、次の図を確認します。


そして、ここに栄光に満ちたARPプロトコルがあります。第2レベルでは、イーサネットプロトコルが機能します。停止して、そのフィールドを見てみましょう。

1)プリアンブル -フレームの始まりを示すビットシーケンスです。

2)次は送信元および宛先MACアドレスです。送信元アドレスには、イニシエーターであるコンピューターのMACアドレスが含まれ、ブロードキャストアドレスFF-FF-FF-FF-FF-FF(つまり、チャネル環境のすべてのノード)が受信者アドレスに記録されます。

3)タイプ—アップストリームプロトコルはここにリストされています。コード0x806は、ARPが高いことを意味します。正直に言うと、どのレベルで機能するのかはっきりとは言えません。異なるソースは異なることを示します。誰かが第2レベルのOSIでそれを言い、誰かが第3レベルでそれを言います。私は彼が彼らの間で働いていると信じています。各レベルに固有のアドレスがあるため。

データと小切手についてはあまり触れません。データはここではまったく示されておらず、チェックサムはゼロです。

少し高くなり、ここでARPプロトコルが上昇します

1)ハードウェアタイプ -チャネルレベルコード。 CPTは余分なゼロを削除し、0x1を挿入しました(0x0001と同じ)。これはイーサネットです。
2)プロトコルタイプ -ネットワーク層コード。 0x800はIPv4です。
3)HLEN-物理アドレスの長さ。 0x6は6バイトを意味します。そうです(MACアドレスは6バイトです)。
4)PLEN-ネットワークアドレスの長さ。 0x4は4バイトを意味します(IPアドレスは4バイトかかります)。
5)OPCODE-操作コード。 0x1は、これがリクエストであることを意味します。
6)ソースMac-これは送信者のMACアドレスです。イーサネットプロトコルフィールドのアドレスと比較して、正しいことを確認できます。
7)送信元IP-送信者のIPアドレス。
8)ターゲットMAC-これはリクエストであり、チャネルアドレスが不明であるため、空です。 CPTはゼロで表示しましたが、これは同等です。
9)ターゲットIP-受信者のIPアドレス。 pingするアドレスのみ。

ネットワークで次に何が起こるか見てみましょう。


ARPはローカルネットワーク上のすべてのホストをポーリングし、この要求に応答するホストは1つだけです。これはPC4です。彼の答えを見てみましょう。


ここで彼はスイッチに何かを吐き出します。私はそれを開いて、すなわちいくつかの変更、参照:

1)今PC4のMACアドレスが記録されているイーサネット・プロトコル・ソースにおいて、およびPC1であるイニシエータの宛先MACアドレスフィールド、。
2)OPCODEフィールドでは、値は0x2、つまり答えです。
3)ARPプロトコルの論理アドレスと物理アドレスのフィールドが変更されました。送信元MACおよび宛先MACは、イーサネットプロトコルのものと同様です。「ソース」フィールドのアドレスは192.168.1.4(PC4)であり、「宛先」フィールドのアドレスは192.168.1.1(PC1)です。

この情報がPC1に到達するとすぐに、ICMPメッセージ、つまりpingをすぐに生成します。


私はそれを開いて見ます。これは、イーサネット、IP、およびPingの3つのプロトコルで構成されるデータブロックです。

1)イーサネットプロトコルには新しいものはありません。つまり、送信者のMACアドレスはPC1、宛先MACアドレスはPC4、Typeフィールドでは0x800(IPv4プロトコル)
2)IPプロトコルでは、Versionフィールドでは4、つまりIPv4プロトコルを意味します。送信者のIPアドレスはPC1、受信者のIPアドレスはPC4です。
3)ICMPプロトコルの[タイプ]フィールド-コード0x8(エコー要求)。

彼はエコーリクエストを送信し、PC4がどのように応答するかを確認します。


CPTを歪め、再起動する必要がありました。現在、ICMPエンベロープは薄緑ではなく、緑と青の混合です。しかし、それは違いはありません。これは同じデータです。
まあ、私はPC4が答えたものを見る。イーサネットおよびIPプロトコルの送信元フィールドと宛先フィールドが逆になっています。 ICMPプロトコルのTypeフィールドでは、値が0x8から0x0に変更されました(エコー応答を意味します)。

ロジックから判断すると、この回答がPC1に到達するとすぐに、PC1コンソールにレコードが表示されます。見てみましょう。


そして本当に。 PC4の可用性、データサイズ(32バイト)、時間遅延(8ミリ秒)、TTLまたはライフタイム(128)の記録がありました。 TTLは、パケットが通過したルーターの数を示します。私のパッケージはローカルネットワーク内を歩いていたため、このフィールドは変更されていません。

デフォルトでは、pingは4つのリクエストを送信します。したがって、PC1はさらに3つの類似したICMPを形成します。各パッケージのパスは表示しませんが、コンソールの最終出力をPC1に提供します。


ご覧のとおり、実際には4つの答えがあります。最初は8ミリ秒の遅延があり、最後の3は4ミリ秒で遅延することに注意してください。これは、最初はPC1がPC4のMACアドレスを知らず、通知されるのを待っていたため、ARPプロトコルの動作が原因です。 CPTにはリアルタイムの状況がありますが、通常、最初のパケットは失われます。これは、別のチャネル環境にあるホストの可用性をチェックするときに特に顕著に現れます。

1つのチャネル環境でデータ伝送がどのように機能するかを見ました。次に、ホストが異なるチャネル環境またはサブネットになった場合にどうなるかを見てみましょう。ネットワークが完全に構成されていないことを思い出させてください。つまり、ルーターと2番目のサブネットを構成する必要があります。私たちは今何をするつもりです。

PC5という名前のコンピューターを開き、ネットワーク設定を書き留めます。


最初のチャネル環境のネットワークアドレス指定は192.168.1.Xであり、2番目の192.168.2.Xであったことに注意してください。 255.255.255.0のマスクでは、これは最初の3オクテットが固定され、4オクテットが1〜254の範囲にあることを意味します。3オクテットが異なるため、これらは異なるチャネル環境です。

PC6の設定を取得します

。1)IPアドレス-192.168.2.2
2)サブネットマスク-255.255.255.0
3)メインゲートウェイ-192.168.2.254

2番目のチャネル環境のホストが構成され、正常に動作しています。それらが第1チャネルからホストと通信できるようにするには、これらの環境を接続するルーターを構成する必要があります。ルータはCLIを介して(つまり、コンソール形式で)設定されます。ここでは、スクリーンショットではなくコマンドを簡単に表示できます。

1)Router> enable-特権モードに切り替えます
2)Router#configure terminal- グローバルコンフィギュレーションモードに切り替えます
3)Router(config)#interface fastEthernet 0/0- port 0/0設定に進み、最初のチャネル環境を調べます
4)Router(config-if )#ip address 192.168.1.254 255.255.255.0- このポートでIPアドレスをハングさせます。このポートは最初のチャネル環境のメインゲートウェイになるため、ホストに割り当てられたIPを示します
5)ルーター(config-if)#noシャットダウン- このインターフェイスを有効にします。デフォルトでは、Tsiskルーターのすべてのポートは無効になっています
6)ルーター(config-if)#exit- fastEthernet 0/0設定モードを終了します
7)ルーター(config)#interface fastEthernet 0/1-2番目のチャネル環境を調べるポート0/1の
セットアップに進みます8)Router(config-if)#ip address 192.168.2.254 255.255.255.0- ここでアドレスを 切断します。これは、2番目のチャネル環境のホストのメインゲートウェイになります
9 )ルーター(config-if)#no shutdown- 同様にオンに
ます 10)ルーター(config-if)# end- 特権モードにドロップするコマンドを記述します
11)ルーター#copy running-config startup-config- 設定をルーターのメモリに保存します

この時点で、ルーターの構成は完了です。少し進んで、便利なコマンド「show ip route」を表示します。ルーターに認識されているすべてのネットワークとそれらへのルートが表示されます。



この表に基づいて、1番目のチャネル環境と2番目のチャネル環境の両方について彼が知っていることを確認できます。 素晴らしい。残っているのは、PC1からPC5の可用性を確認することだけです。やってみます。CPTをシミュレーションモードに切り替えます。コマンドラインを開き、192.168.2.1にpingを実行します。


Enterキーを押すとすぐに、ICMPとARPの2つのエンベロープがすぐに表示されます。停止して、さらに詳しく見てみましょう。異なるチャネル環境間の伝送は、1つのチャネル環境での伝送と変わらないように見えるかもしれませんが、そうではありません。そして今、あなたはそれを見るでしょう。

最初に、ICMPを見てください。


ここでは、これまでのところ、原則として、興味深いものは何もありません。 送信元フィールドにはPC1のIPアドレスがあり、宛先フィールドにはPC5のIPアドレスがあります。

次に何が起こるでしょう。 PC1は、異なるチャネル環境にあるホストの可用性を(IPアドレスと宛先IPアドレスをマスクすることにより)チェックすることを確認します。 そして、IPアドレス以外に、彼は受信者について何も知りません。 したがって、この形式でICMPパケットを送信することはできません。 しかし、彼は自分がメインゲートウェイを持っていることを知っています。メインゲートウェイは、PC5が置かれているチャネル環境について何かを知っている可能性が高いです。 しかし、もう1つ困難があります。 彼はゲートウェイのIPアドレスを知っています(ネットワーク設定で指定しました)が、MACアドレスは知りません。 次に、ARPプロトコルが彼の助けを借りて、チャネル環境のすべての参加者に問い合わせ、MACアドレスを見つけます。 フィールドがどのように埋められるかを見てみましょう。


リンク層(イーサネットプロトコル):送信元フィールドはPC1のMACアドレスであり、宛先フィールドはブロードキャストアドレス(つまり、すべての参加者)です。

そしてもう少し高い(ARPプロトコル):

1)SOURCE MAC-同じPC1、およびDESTINATION MACは空です(この要求の対象となるものによって満たされる必要があります)。
2)SOURCE IPはPC1のアドレスですが、DESTINATION IPはメインゲートウェイのアドレスです。

次に何が起こるか見てみましょう。


3台のコンピューターがパケットをドロップし、ルーターだけがこれが彼のものであることに気付きました。 私たちは彼が何を答えるかを見ます。


イーサネット:

1)送信元MAC-ここにMACアドレス(つまり、fastEthernet0 / 0のMACアドレス)を挿入します。
2)宛先MAC-ここでは、PC1(つまり、要求したもの)のMACアドレスを書き込みます。
ARP:
1)送信元MACと宛先MACは、イーサネットプロトコルのエントリに似ています。
2)送信元IP-IPアドレス。
3)ターゲットIP-PC1のIPアドレス。

どうぞ


ARPがルーターからPC1に到着するとすぐに、PC1はすぐにICMPメッセージをルーター(またはメインゲートウェイ)に送信します。 そして、ここで特別な注意を払うようお願いします。 つまり、送信元フィールドと宛先フィールド(イーサネットプロトコルとIPプロトコルの両方)。

1)SRC MAC:これはPC1のMACアドレスです。
2)DEST MAC:ルーターのMACアドレス。
3)SRC IP:PC1のIPアドレス。
4)DST IP:PC5のIPアドレス。

これはどういう意味ですか。 ネットワークレベルのアドレス(つまり、IPアドレス)は、情報の送信元と送信先を知るために変更されません。 また、チャネルレベルのアドレス(MACアドレス)は簡単に変更でき、あるチャネル環境から別のチャネル環境に移動できます。 理解して覚えておくことが非常に重要です!

私たちは何が起こっているのかを見ます。 パケットはルーターに到達し、すぐに消されます。 そしてすべては、彼がPC5のMACアドレスを知らないからです。 現在、ARP要求を生成し、認識しようとします。 このリクエストのスクリーンショットを提供します。



次に、PC5はそれを受信し、応答を生成します。



この回答がルーターに到達するとすぐに、PC5チャネルアドレスがわかります。 しかし、ここで何が起こったのかです。 ARPを備えたgimpがルーターとPC5で持続している間に、PC1はICMPによって送信された応答を待ってタイムアウトしました。 写真を見せます。


タイムアウト後、2番目のICMPを形成します。MACアドレスは既知であるため、応答は問題なくすでに到達しています。 次に、彼は3番目と4番目のICMPを形成します。 最終結果を出します。


よく見ると、TTLが1つ減少し、127になっていることがわかります。これは、パケットが1つの通過セクション(ルーター)を通過したためです。

これは、1つのチャネル媒体から別のチャネル媒体(または1つのネットワークから別のネットワーク)へのデータ伝送の仕組みです。 ちなみに、受信者に到達するためにいくつのチャネル環境を克服する必要があるかは問題ではありません。 原則は同じままです。

前の記事で、トップレベルのプロトコルを検討したとき、トランスポート層について少し触れました。 このレベルを思い出して、しっかりと修正することを提案します。

いつものように、シンプルなものから始めます。 そして、これはUDPプロトコルです。 上で述べたように、特定の上位プロトコルにデータを渡すために使用されます。 彼はポートを使用してこれを行います。 UDPで機能するプロトコルの1つはTFTP(Trivial File Transfer Protocol)です。 前の記事でこのプロトコルを検討しました。 したがって、困難は生じないはずです。 デモを行うには、TFTPを有効にしたサーバーをネットワークに追加する必要があります。

サーバー設定は次のとおりです。

1)IPアドレス-192.168.1.5
2)サブネットマスク-255.255.255.0
3)メインゲートウェイ-192.168.1.254

TFTPサービスはデフォルトで有効になっていますが、確認することをお勧めします。 次に、CPTをシミュレーションモードに切り替えて、ルーター構成をTFTPサーバーに保存しようとします。

1)Router> enable- 特権モードに切り替えます。
2)Router#copy startup-config tftp:-copy コマンド(つまりコピー)、startup-config(正確にコピーするもの)およびtftp:(コピー先)を記述します。
3)リモートホストのアドレスまたは名前[]? 192.168.1.5- アドレスを書き込むサーバーのアドレスまたは名前を尋ねるメッセージが表示されます。
4)宛先ファイル名[Router-confg]? - 次に、サーバーに保存する名前を尋ね、標準名を提供します。 それは私に合っていて、ENTERを押します。

ルーターはすぐに2つのエンベロープを形成します。 そのうちの1つはTFTPで取り消され、2つ目はARPです。 彼は、サーバーのMACアドレスを知らなかったため、彼が取り消し線になったと推測したと思います。

十分に見てきたように、ARPの作業の瞬間を逃します。


ルーターがサーバーに送信するものを詳しく見てみましょう。

イーサネット:
1)送信元MAC-ルーターのアドレス。
2)宛先MAC-サーバーアドレス。
3)タイプ-0x800(IPプロトコルが上記で機能することを意味します)。

IP:
1)プロトコル-0x11(UDPプロトコルが上で機能することを意味します)。
2)送信元IP-ルーターのアドレス。
3)宛先IP-サーバーアドレス。

UDP:
1)送信元ポート-動的に作成されたポート(1025)。
2)宛先ポート-TFTPサーバーがリッスンしているポート(予約済みポート69)。

TFTP:
これがデータそのものです。

これがUDPの仕組みです。 彼はセッションを確立せず、配信の確認を必要としません。また、何かが失われた場合、彼は再度要求しません。 彼の仕事は、ポート番号を示して送信することです。 そこで何が起こるか、彼は興味がありません。 しかし、これが適さない場合があり、これらのパラメーターはすべて非常に重要です。 その後、TCPプロトコルが助けになります。 例としてWebサーバーとWebクライアントを使用して検討してください。 Webサーバーと同じTFTPサーバーがあります。 HTTPサービスをオンにして、PC1にページを要求します。 CPTをシミュレーションモードに切り替えることを忘れないでください!


Webサーバーのアドレスを入力し、Enterキーを押します。

続行する前に、TCPセッションの確立について説明します。 このプロセスをできるだけ簡単に説明しようとします。 このプロセスは、「スリーウェイハンドシェイク」または「ハンドシェイク」と呼ばれます。 ポイントは何ですか。 クライアントは、SYNフラグを使用してTCPセグメントを送信します。 セグメントを受信すると、サーバーは決定を下します。 接続を確立することに同意した場合、SYN + ACKフラグ付きの応答セグメントを送信します。 同意しない場合は、「RST」フラグ付きのセグメントを送信します。 次に、クライアントは応答セグメントを調べます。 SYN + ACKフラグがある場合、応答として、ACKフラグ付きのセグメントを送信し、接続が確立されます。 RSTフラグがある場合、接続試行を停止します。 確立された接続を切断する必要がある場合、クライアントは「FIN + ACK」フラグを使用してTCPセグメントを形成して送信します。 サーバーは同じ「FIN + ACK」フラグでこのセグメントに応答します。 最後に、クライアントは最後のTCPセグメントに「ACK」フラグを付けて送信します。 これで、実際にどのように機能するかがわかります。

ネットワークに注目し、PC1がTCPセグメントを形成する方法を確認します。


IPのProtocolフィールドを除いて、ここには新しいものは何もないので、EthernetおよびIPプロトコルフィールドは考慮しません。 値があります-0x6。 これは、TCPプロトコルが上記で使用されていることを示唆しています。

しかし、TCPはすでに興味深いものです。

1)送信元ポート-1025(これは動的に生成されるWebクライアントポートです)。
2)宛先ポート-80(これは予約済みのHTTPプロトコルポートです)。
3)フラグ-SYN(セッションを確立するための要求)

Webサーバーが応答する内容を確認します。


彼はポート番号を交換し、「SYN + ACK」フラグ付きのセグメントを送信します。

クライアントはこのセグメントを受信するとすぐに、すぐに2つのメッセージを生成します。 それらの1つは、以下に示すTCPセグメントで、「ACK」フラグとともに送信されます。



2番目はHTTPで、プロトコルバージョンが示されているページ、サーバーアドレス。


彼の作品は以前の記事で紹介されました。 したがって、私は繰り返しません。 セッションの終了を示します。


クライアントが目的のページを受信するとすぐに、接続を維持して中断を開始することは意味がありません。 「FIN + ACK」フラグでセグメントを送信します。 さらに調べます。


サーバーは切断に同意し、応答で同じ「FIN + ACK」フラグを持つセグメントを送信します。


最後に、クライアントは「ACK」フラグを使用して最後のTCPセグメントを形成し、接続を閉じます。

TCPプロトコルがどのように機能するかを調べ、それで下位層プロトコルの検討を終了しました。 このラボをダウンロードするためのリンクを提供します。 最初は標準的な方法で各レベルに個別の記事を書くというアイデアがありましたが、それを行うのは無意味であることがわかりました。 次の記事を書いている時点で、以前のほとんどは忘れられています。

さて、記事は終わりに近づいています。 ニックネームremzalpで提供された写真と、記事に有用なコメントを残してくれた他のユーザーに感謝します。 人々がどのように興味を持ち、質問をし、客観的かつ建設的な紛争を行うかを見るのはとても素晴らしいことです。 ロシア語を話すITコミュニティがますます発展し、パブリックドメインの資料をより多く研究してほしい。 読んでくれてありがとう、そしてまたお会いしましょう。

Source: https://habr.com/ru/post/J308636/


All Articles