ICMP が必要な理由

ICMP

なぜ ICMP なのか?

ICMP: 内部制御メッセージ プロトコル (インターネット制御メッセージ プロトコル)

私の個人的な理解は、「不慣れなネットワーク環境では、いつでも何らかの理由でデータパケットの損失や廃棄が発生する可能性があります。データを送信する側にデータパケットの損失や廃棄の理由を理解してもらい、確実にデータパケットを送信できるようにするためです。」正常に到着できる場合は、ICMP を設定します。TCP プロトコルは、データ パケットの信頼性の高い送信を保証できないのでしょうか? このようなシナリオを考えてみましょう。サーバー A がサーバー B にデータ パケットを送信し、途中でルーター C を通過する必要があります。データ パケットが流れるときデータ パケットのサイズがルータの MSS を超えているが、データ パケットの断片化が許可されていない場合、ルータはデータ パケットを破棄します。tcp は確実に送信されるため、クライアントが RTO 時間内にデータ パケットの ack 情報を受信しなかった場合、データを再送信しますが、データ パケットがルーター C を通過すると、上記の理由により依然として破棄されます。理由。TCP の信頼性の高い送信はエンドツーエンド プロトコルに基づいており、サーバーがメッセージを受信しなかった場合はクライアントが再送信することを保証し、サーバーが対応するデータ パケットを受信しなかった場合は再送信することを保証します。フィールドに送信すると、クライアントに再送信するように通知されます。ただし、クライアントとサーバーは、TCP プロトコルに従ってのみ損失が発生したことを認識できないため、エラーを補うことはできません。たとえば、シャオミンはケーキをシャオホンに郵送したいと考えています。宅配業者は途中で中継ステーションを通過する必要があります。シャオミンのケーキが届かない場合は、この時点の tcp プロトコルの動作に基づいて、彼らは互いに電話します時間。シャオミンは引き続きシャオホンにケーキを郵送し、上記のサイクルに入ります。シャオミンがどれだけケーキを送っても、シャオホンがシャオミンのケーキを受け取ることはありませんが、tcpの信頼性の高い送信により、シャオミンはいつもシャオホンにケーキを郵送します。ICMP が追加された場合、転送ステーションは ICMP メッセージをシャオミンに送信し、転送ステーションがケーキを受け入れないことを通知します。ルータの動作環境はネットワーク層の下にあり、TCP は信頼性の高い伝送を保証しますが、エラー フィードバックは提供しないため、ネットワーク間のフィードバックには ICMP を使用する必要があります。ICMP は、ip にサービスを提供し、「真に効果的な」tcp の信頼性の高い送信を保証するために、必要なフィードバック情報を対応する送信者に送信するネットワーク層プロトコルです。(ネットワーク状況に応じて調整可能で、確実な伝送を保証します)

Guess you like

Origin blog.csdn.net/qq_52696089/article/details/125395821