
編集者注:ブロックチェーンには、インターネットの最下層から未知の暗号に至るまで、多くの技術が関わっていますが、通貨の価格に注目する人が多く、技術を学ぶ人が少ないことが多いです。強気相場の時はみんなコイン投機の勉強をしますが、弱気相場の時はとにかく何もすることがないのでもっと勉強できると思います。文系学生である私には、理系学生が馬鹿げていると思われるような質問が確かにたくさんあります。記者として、業界を理解し、人間的な言葉で説明してくれる人を見つけるのは難しくありませんし、面と向かって私を嫌がることはほとんどありません。
)、第 2 フェーズはクロスチェーン (「Xiao Ming の学習ノート | ブロックチェーンのクロスチェーンメカニズムを 1 つの記事で理解する」)、第 2 フェーズはクロスチェーン (「Xiao Ming の学習ノート | ブロックチェーン仮想マシンを 1 つの記事で理解する」「Xiao Ming の学習ノート | ブロックチェーン仮想マシンを 1 つの記事で理解する」
ブロックチェーンに触れるとき、人々はよくこのプロトコルについて話し、時には TCP/IP プロトコルについて話す人もいるかもしれません。一見すると当たり前のことのように思えませんが、よく考えてみると、これは私たちが日常的に使用している最も一般的な「プロトコル」であるように思えます。ブロックチェーンをインターネットと比較する人もいますが、インターネットの最下層は TCP/IP プロトコルです。また、Xu Mingxing 氏が、ブロックチェーンは金融となる TCP/IP プロトコルであり、それにイーサリアムのアーキテクチャを加えたものであると述べているのを聞いたことがあります。ネットワーク層に関する情報もほとんどありません。それで知りたいのです。今回の研究ノートは主にインターネット上の公開情報をまとめたもので、別の解説記事から転用した部分も多く、いわゆる「ノート」です。
副題
TCP/IPプロトコルとは何ですか
まず第一に、この協定は業界標準と同様に、一連の統一ルールとして理解できます。インターネットの主な機能は情報を送信することであるため、そのプロトコルは通常、システムが相互に通信する方法を管理するルールです。
郵便サービスや物流などのオフラインの「運送約款」を使用して、私たちは手紙を書くときに郵便番号、差出人、受取人、住所を記入していました。郵便サービスにも独自の基準ができつつあります。たとえば、さまざまな地域の郵便配達員が郵便物を収集します。物流業界にはコンテナやレールなどもあります。インターネット通信では、「通信対象をどのように検出するか、どちらが先に通信を開始するか、どの言語で通信するか、どのように通信を終了するかなどのルールを事前に決めておく必要があります。異なるハードウェアやOS間の通信はすべて、これらすべてにはルールが必要です。」(Zhihu ユーザーより)”)
おおおおお
TCP/IP プロトコルの正式名は、Transmission Control Protocol および Internet Protocol です。 TCP と IP はそれぞれ 2 つのプロトコルです。同時に、TCP/IP プロトコルは、インターネット伝送プロセスで使用されるプロトコル ファミリとインターネット モデルのグループを指すことができます。TCP と IP の方が重要であるため、これらの名前が付けられています。それらの後。
通信と使用するソフトウェアとハードウェアには多くの手順が含まれるため、さまざまなレベルに分けられます。 TCP/IP モデルには 4 つの抽象化レベルがあり、全体的な設計概要を記述し、ネットワーク通信の特定のプロトコルを実現します。
このモデルでは、プロトコルごとに「分業」が異なり、必要な情報を習得し、特定の情報に基づいて作業を完了することは、実際の現実のワークフローに似ています。上記の郵便と宅配便の例を再度使用すると、分業のため、受け取りの宅配業者に宅配便の居場所を尋ねても、彼は間違いなく知りません。彼は宅配便の配送ポイントに宅配便を届ける責任のみを負います。
次に、この運送会社におけるさまざまな重要な役割を理解し始めることができます。
副題
同社は大きく4つの部門に分かれており、TCP/IPプロトコルファミリーはアプリケーション層、トランスポート層、ネットワーク層、ネットワークインターフェース層(データリンク層+物理層)に分かれている。
まずは英語版
画像の説明
また可愛い中国語バージョンを作りましょう
上の図は、実際にデータ送信プロセス全体を鮮明に示しています。WeChat で文章を送信するのは簡単そうに見えますが、実際には、すべてのステップが上位層から下位層へ、そして下位層から下位層へのプロセスを経ています。上位層のアプリケーション。たとえば、Xiao Xiong は WeChat で Xiao Ming にメッセージを送信し、Xiao Ming がメッセージを受信するまでに上記のプロセスが実際に行われました。WeChat はアプリケーション層にあり、特定の形式に従ってデータ、送信者と双方のアドレス、独自の「マーク」(Xiao Ming がメッセージが WeChat 宛てであることを認識できるようにするため)などに従ってパックされます。 、トランスポート層へ。トランスポート層の TCP プロトコルデータ パケットが安全に送信されるように、ファイルをより小さなフラグメントに分割します。ネットワーク(相互接続)層のIPプロトコル
最適なパスが見つかり、メッセージは光ファイバーや WiFi などのネットワーク経由で送信されます。目的地に到着すると、分散していたデータが再整理され、トランスポート層もマークからWeChat用であることが分かります。
上記のプロセスでは、実際に TCP プロトコルと IP プロトコルの主な機能について説明しましたが、これら 2 つはトランスポート層とネットワーク相互接続層の最も重要なプロトコルであるため、このモデルはそれらにちなんで名付けられました。特定のプロセスには他にも多くのプロトコルが存在し、異なるデータが送信されると、アプリケーション層では異なるプロトコル処理が行われます。興味のある赤ちゃんは、私と一緒に詳細を学び続けることができます。各レイヤーには独自の機能と共通プロトコルがあり、CSDN 上の Jiguang Push のブログを整理し、ブロガーの行進おおおおお、Drake、おおおおおシャオ・ミン記事、および,以下のように要約されます。
インターネットの情報はデータ パケット単位で送信されます。プロトコル層ごとにデータ パケットの名前が異なります。トランスポート層ではセグメント、ネットワーク層ではデータグラム、リンク層ではフレームと呼ばれます。
送信側が層間でデータを送信する場合、層を通過するたびにその層のヘッダ情報を付加する必要があり、このデータ情報をパッケージ化する方法をカプセル化と呼びます。データはフレームにカプセル化された後、伝送媒体に送信され、宛先ホストに到達した後、各層のプロトコルによって対応するヘッダーが取り除かれ、最後にアプリケーション層のデータが処理のためにアプリケーション プログラムに渡されます。一番下から始めます。
副題
ネットワークインターフェース層
一般的なプロトコル: イーサネット 802.3、トークン リング 802.5、X.25、フレーム リレー、HDLC、PPP ATM など。
最も有名なものの 1 つはイーサネット プロトコルです。 「データは、ネットワーク カードを介して 2 台のコンピュータ (ホスト) 間で送受信されます。各ネットワーク カードは、固有のアドレス、つまり MAC アドレスを持っています。イーサネット データは、ヘッダーとデータ部分を含むフレーム単位です。イーサネットは、データをフレーム単位で送信します。サブネット内でのブロードキャストの形式です。MAC アドレスだけでは 2 つのホストが相互に通信することはできません。2 つのホストが同じサブネット内にない場合、イーサネット プロトコルは何も行いません。これはネットワーク層を介して行われます。 「各ホストのネットワークがどのサブネットにあるか。同じサブネットにある場合はブロードキャストでデータを送信し、そうでない場合はルーティングでデータを送信します。これがネットワーク層の誕生につながります。」(Jiguang Push より)
副題
ネットワークアクセス層
一般的なプロトコル: IP (インターネット プロトコル)、ICMP、ARP (アドレス解決プロトコル)、RARP (リバース ARP)。 IP はネットワーク層の中核であり、次の IP はカプセル化され、ルーティング選択を通じてインターフェイス層に渡されます。 ICMP はネットワーク層の補足であり、メッセージをエコーできます。ネットワークに障害物がないかどうかを確認するために使用されます。
ネットワーク層の主なタスクは単に「各データ パケットのルートを決定する」ことです。このホストは同じネットワーク内にある場合もあれば、外部ネットワーク内にある場合もあるため、ホストが同じサブネット内にあるかどうかを区別する必要があります。この層には IP プロトコルが存在します。手紙を書くときに住所が必要であるのと同じように、ネットワークの世界でも住所が必要です。このネットワーク アドレスが IP アドレスです。 (以下より)
「タン・チャン」
IP アドレスは家番号であり、指定された家番号を計算して見つけるのは IP プロトコルの役割です。配達員の兄弟が毎日出かける前にしなければならないことは、荷物の仕分けとルートの計画という IP プロトコルの義務です。実際、3 つまたは 5 つのノードからなる小規模なネットワークの内部通信では、これらのノードはペアで相互に通信できるため、IP プロトコルを使用する必要はまったくありませんが、ノードの数が増加すると、次の問題が発生します。 、帯域幅が消費されるため、ネットワーク速度が麻痺します。 (帯域幅とは、一定時間内に送信できるデータ パケットを指し、道路の幅に似ています。)
そこで、ネットワークは後に多くのサブネットワークに分割され、各サブネットワークはルータに引き継がれて一元管理されるようになりました。サブネットワーク内のノードは IP プロトコルを使用せずに独立して通信できますが、帯域幅の制限により、ネットワーク外のノードと通信する場合はデバイス、つまりルーターを使用する必要があります。世界中のルーターのほとんどは、少数の大手通信事業者によって所有されています。
上の図に示すように、ノード 1 と 2 は同じサブネットに属しており、内部通信プロトコルに基づいて通信できますが、ノード 1 と 5 の間の通信は IP プロトコルに基づいて行われ、ルーター 1 とルーター 1 の間のパスを介して通信する必要があります。 2.
IP プロトコルのロジックをインターネット全体に拡張すると、最終的にはモバイル クライアントと Tencent サーバーを接続する無数のルーターが存在します。
大規模なネットワークを小規模なネットワークに分割することの利点は明らかです: 帯域幅を節約し、ネットワーク速度を向上させ、同時に 1 つのルーターの障害が他のノード間の通信に影響を与えないようにします。これが IP プロトコルの役割です。
ARP や RARP など、この層の IP プロトコルを「支援」するプロトコルもいくつかあります。データが他のホストに確実に送信されることを確認するには、IP アドレスに加えて MAC アドレス (メディア アクセス コントロール アドレス) が必要です。 Mac アドレスは物理アドレスとも呼ばれ、ネットワーク カードに 1 つずつ対応し、ホストにとって一意で不変です。 IP アドレスは、使用しているネットワークに応じて変わります。
上記 2 つのプロトコルの機能は単純で、IP アドレスを使用して Mac アドレスを検索することと、Mac アドレスを使用して IP アドレスを検索することです。特定の機能については、次の 2 つの段落を参照してください。
「ARP (アドレス解決プロトコル) の基本的な機能は、通信を円滑に進めるために、ターゲット デバイスの IP アドレスを通じてターゲット デバイスの MAC アドレスを問い合わせることです。イーサネットのデータ フレームは、あるホストから別のホストに到着します。インターフェイスの決定には、32 ビット IP アドレスの代わりに 48 ビット イーサネット アドレス (ハードウェア アドレス) が使用されます。カーネルは、データを送信する宛先のハードウェア アドレスを知っている必要があります。P2P 接続には ARP は必要ありません。 。RARP (逆アドレス変換プロトコル) を使用すると、LAN 上の物理マシンがゲートウェイ サーバーの ARP テーブルまたはキャッシュから IP アドレスを要求できるようになります。MAC を対応する IP アドレスにマッピングするためのテーブルが LAN ゲートウェイ ルーター内に保持されます。
これを読んだ後、あなたも私と同じ疑問を抱くかもしれませんが、物理アドレスはホストを見つけるために使用されるのに、なぜ IP アドレスが必要なのでしょうか?51CTOそしてCSDNそして
次の 2 つの記事がこの質問に答えます。
MAC アドレスの構造は紫色です。合計 48 ビットで 2 つの部分に分かれており、最初の 24 ビットはメーカーのコードで、最後の 24 ビットはメーカーによって割り当てられます。 MAC アドレスで異なるネットワークを区別できると考える場合、異なるネットワークを区別するにはメーカー コードを使用するしかありません。明らかに、同じブランドのネットワーク カードが同じネットワーク内にあるとは限りません。
世界にそれほど多くのコンピューターが存在しなかった初期の時代には、ルーティングなどというものはなく、ホストはすべて同じネットワーク内にあったため、実際には MAC アドレスを介して直接通信していました。初期のリンク層プロトコルは IP アドレスとは関係ありません。ネットワーク層の設定はなく、物理層とリンク層のみです。最初はハブのみがあり、スイッチやルーターはなく、サーバー間のデータの送信が行われます。 MAC アドレスに完全に依存します。 IP アドレスが存在しない前は、MAC アドレスがすでに使用されていました。あらゆる場所で使用されているレイヤー 2 スイッチは、MAC アドレスに従ってデータを転送するようになりました。 MAC アドレスの設計では、ネットワーク内のデバイスの位置情報は伝達されません。MAC アドレスを介して通信するには、現在の場所でのすべての MAC アドレス ルートのネクスト ホップを記録するために、すべてのデバイス上で大きなテーブルを維持する必要があります。 . これは明らかに無理があります。
MAC アドレスはコンピュータの個人 ID カードのようなもの、IP アドレスはコンピュータが配置されている部屋のようなもので、その部屋には多くの人が住むことができ、LAN ゲートウェイ ルートは人口を登録するための街頭事務所のようなものです。
副題
トランスポート層
IP プロトコルを使用すると、2 つのホスト間でデータを送信できます。次の問題は、各ホストが異なるアプリケーションを持っていることです。どのデータ パケットがどのプログラムに属するかをどのように区別するかということです。これはトランスポート層が行うことです。トランスポート層の主なタスクは、分割されたユニットが相手側に正しく到着することを保証し、ポート間の接続を確立することです。ネットワーク層はホスト間の接続を確立し、ホストとポートが存在する限り、データ パケットがどのプログラムに属しているかを判断できます。同時に、アプリケーション層からデータを受け取り、それをより小さな単位(ヘッダーとデータ部分はネットワーク層のデータ部分にあります)に分割して、ネットワーク層に送信する役割も担います。ここでいうポートとは、ハードウェアポートではなくソフトウェアポートのことであり、外部からの情報がコンピュータに入る扉であり、この扉を通じてさまざまな情報がさまざまなアプリケーションに送信される。より鮮明な説明については、を参照してください。:
「なぜ港があるのか、どのように港を計画するかについては、以下を参照してください。 」
「IP はネットワーク カードに対応する物理マシンをロックでき、ネットワーク カードは外部から送信されたデータ パケットを受信します。しかしここで問題が発生します。ネットワーク カードはプログラムのインターフェイスを提供します。あなたは私を監視できます。ニュースがあれば、あなたに転送します。このようにして、アプリケーションはデータを受信できます。しかし、ここで問題が発生します。プログラム A とプログラム B は両方とも、データを送受信するためにネットワーク カードを監視する必要があります。ネットワーク カード受信したデータをすべてあなたに送信すると言っています。あなた自身の目で見てみましょう。それでは、小さな A と小さな B は受け入れられます。しかし、ここで再び CDEF が来ます...、いいえ、すべてのパッケージがすべてのアプリケーションに送信されます。すべてのアプリケーションは使い果たされ、最終的には崩壊します。
オーケー、ネットワーク カードは、あなたにサインを追加しますと言いました。私たちの間の識別として番号を使用できます。私とシャオ A の間の識別には 1 を使用します。外部の世界が番号 1 の識別情報を含むデータを送信した場合、私はあなたに転送します。、あなたが私を監視するとき、あなたは1を監視するときに私に伝えなければなりません、そして私は1つのデータパケットをあなたに転送します。そうですね、他の BCD は、同じものを繰り返さない限り、すべて独自の識別番号を持っています。これでみんなの手間が省けます。
最後に、安全な設計になっており、小Aプログラムと小Bが同時に識別番号を聞くと壊れてしまうため、識別番号は1つのアプリケーションプログラムでしか監視できません。 AB によって受信されるため、データのセキュリティを保証する方法はありません。 」
この層には、TCP と UDP という 2 つの主要なプロトコルがあります。
TCP は、コネクション指向で信頼性の高いバイト ストリーム ベースのトランスポート層通信プロトコルです。 UDP (User Datagram Protocol) は、トランザクション指向のシンプルで信頼性の低い情報転送サービスを提供するコネクションレス型トランスポート層プロトコルです。
これら 2 つの文は紛らわしいように見えますが、人々は一方を信頼でき、もう一方をあまり信頼できないと感じるかもしれません。はい、それが両者の違いです。チェン・バオジアそしてシャオ・ミン):
画像の説明
画像は「グラフィックHTTP」より引用
データを対象者に正確に届けるためには、データを送受信する前に相手との信頼できる接続を確立する必要があります。 TCP プロトコルは 3 ウェイ ハンドシェイク戦略を使用します。 TCP フラグ (フラグ) - SYN (同期) および ACK (確認応答) は、ハンドシェイク プロセスで使用されます。
最初のハンドシェイク: クライアントは syn パケット (syn=j) をサーバーに送信し、SYN_SEND 状態に入り、サーバーの確認を待ちます。
2 番目のハンドシェイク: サーバーは syn パケットを受信し、クライアントの SYN (ack=j+1) を確認する必要があり、同時に SYN パケット (syn=k)、つまり SYN+ACK パケットも送信します。 、サーバーは SYN_RECV 状態に入ります。
3 番目のハンドシェイク: クライアントはサーバーから SYN+ACK パケットを受信し、確認パケット ACK (ack=k+1) をサーバーに送信します。パケットの送信後、クライアントとサーバーは ESTABLISHED 状態に入り、3 つのハンドシェイクを完了します。 -ウェイハンドシェイク。
注: ハンドシェイク プロセス中に送信されるパケットにはデータが含まれていないため、3 ウェイ ハンドシェイクが完了すると、クライアントとサーバーは正式にデータの送信を開始します。 TCP プロトコルには、上記の 3 ウェイ ハンドシェイク以外にも、通信の信頼性を確保するためのさまざまな手段があります。
理想的には、TCP 接続が確立されると、どちらかが積極的に接続を閉じるまで TCP 接続が維持されます。
切断時には、サーバーとクライアントの両方が TCP 接続の切断要求をアクティブに開始でき、切断プロセスには「4 ウェイ ハンドシェイク」が必要です。UDPプロトコルは、データを送信する前に相手との接続を確立せず、受信したデータに対する確認信号も送信しないため、送信側にはデータが正しく受信されるか分かりませんし、当然のことながら、再送信する必要がなく、信頼性の高いデータ転送プロトコルです。具体的には、ユーザーChen Baojiaの投稿によると、
副題
アプリケーション層
アプリケーション層
アプリケーション層は、インターネット プログラムが他のプログラムと通信するために使用する層であり、ユーザーに「最も近い」層でもあります。"HTTP://"、これは HTTP プロトコル (ハイパーテキスト転送プロトコルハイパーテキスト転送プロトコル"HTTPS://"、ハイパーテキスト転送プロトコル セキュア)、ハイパーテキスト転送プロトコル セキュア)
。 1982 年の春、米国国防総省は軍事ネットワークの通信標準として TCP/IP を発表しました。 1989 年に Timothy Berners-Lee がハイパーテキスト転送プロトコル HTTP を開発し、その後、インターネット上でテキストだけでなく、画像を含むさまざまなマルチメディア Web ページを送信できるようになりました。http://www.badidu.com私たちは通常、Web ページにアクセスするとき、次のようなドメイン名を入力することに慣れています。
、IP を直接入力する代わりに (上記の ping コマンドのスクリーンショットを参照すると、Baidu の IP が表示されます)、そのほうが覚えやすいためですが、コンピューターはそう認識しないため、DNS (ドメイン ネーム システム) が必要です。 DNS は、ドメイン名から IP アドレスを検索したり、IP アドレスからドメイン名を逆検索したりするために使用されます。電子メールを送信したい場合は、SMTP (シンプルなメール転送プロトコル
私は Odaily の編集者、Lu Xiaoming です。私は実際のブロックチェーンを研究しています。ニュース速報とコミュニケーションのために WeChat lohiuming を追加してください。名前、部隊、役職、および理由を書き留めてください。
私は Odaily の編集者、Lu Xiaoming です。私は実際のブロックチェーンを研究しています。ニュース速報とコミュニケーションのために WeChat lohiuming を追加してください。名前、部隊、役職、および理由を書き留めてください。
関連書籍:
TCP/IPプロトコルとは何ですか?今、何が問題になっているのでしょうか?なぜブロックチェーンが TCP/IP ソリューションなのでしょうか?
TCP/IPモデルとOSI7層参照モデルの各層の機能と主なプロトコルTCP/IPプロトコルとは何ですか? 10分以内にやります
(かわいくてわかりやすい写真もあります)Xiaobai は TCP/IP ネットワーク プロトコル ファミリをどのように理解していますか (
上の見苦しい写真と簡単な説明があります)コンピュータネットワーク構成モデル TCP/IPの詳細説明