##ネットワークプログラミング `` `Pythonの ネットワークプログラミングは、Webベースのアプリケーションで作成することです :CS構造 クライアントアプリケーションクライアント(アクセスデータ端末) サーバアプリケーション:(共有データ端末提供)サーバー 学習ネットワークプログラミングを、目的は、上で記述することですC / のSアプリケーション構成 の2つのネットワークの通信条件: 1、物理的伝送媒体:ツイストペア/光ファイバ/同軸/ 電波 2 、通信プロトコル 通信プロトコル:ルールの共通セットに準拠する送信者と受信者正しくデータ解析することを可能にするために OSIモデルのを:コンピュータ業界の共通言語 、物理層--- ---データリンク層、ネットワーク層、トランスポート層---- ---- ----プレゼンテーション層セッション層- -アプリケーション層 セッション層、プレゼンテーション層、アプリケーション層は、アプリケーション層に属しています。 物理層:様々な物理メディア ` #のOSIモデルのデータリンク層の# ` `Pythonの データリンク層:電気信号の内容が何で0と1を表し、グルーピングは、電気信号のセットを含むべきです。イーサネットリンク層プロトコルの作品! 電気信号のセットは、データ・パケット、フレームを構成します! 各フレームは、ヘッダとデータDATA HEAD0二部分に分けられる :(18バイト)を含むヘッド 送信元MACアドレス:6つのバイト 送信元MACアドレス受信:6つのバイト データタイプ(ラベル + イーサネットタイプ)6バイトの データであって、 46である--1,500バイト ヘッド長+最短長= 64データバイト、1518のバイトまで、それは送信上限断片を超える イーサネット所定のインターネットアクセスを装置はカードを持っている必要があり、送信側と受信側のアドレスは、カードのアドレスを参照し、MACアドレスのことである MACアドレス:各NICは、世界のユニークなMACアドレスを、48進工場の長さに解雇されています一般的に12進数(最初の6つ、行数が6であるベンダーIDである)で示される 通信することができる同じネットワーク上の2つのホストのMACアドレスと イーサネット最も原始的な方法は、放送方法通信、ある轟音コンピュータによって基本的なコミュニケーション `` # #ネットワーク層 `` `pythonの イーサネット通信の問題: インターネットを構成小さなローカルエリアネットワーク内の各他の世界的な単離することであるが、すべてのコンピュータが使用されている場合その後、世界中の1機から送信されたパケットを受信します、他のコンピュータを見つけるために、イーサネットのブロードキャストが、これは効率が低いだけの問題ではありません、それは災害となり、()ブロードキャストストームがこのように生成され 、ネットワーク層の機能:異なるブロードキャストドメイン/サブネット間を区別するために使用されるアドレスの新しいセットを導入し、このアドレスは、ネットワークアドレスで、最終的にはネットワーク・アドレスは次のように見えるが、また、サブネットを区別するためにどのように? #のIPプロトコル インターネットプロトコルアドレスに変換インターネットプロトコルアドレス、:IPプロトコルはネットワーク層プロトコル、フルネームで働いている #### 3.1 IPアドレス(フォーカス) - IPアドレスはプロトコル定義のIPアドレスと呼ばれ、V4ネットワークアドレスを指定広く使用されているバージョン、すなわちIPv4のは、32ビットのバイナリで表される -範囲0.0.0.0〜255.255.255.255 - IPアドレスは通常、4つの10進数として書かれている、例えば:192.168.10.1 - ネットワーク番号:サブネットを識別する - ホスト番号:ホストを識別する 分類IPアドレスを: 政府機関のために確保カテゴリ 1.0.0.0 --- 126.0。 0.0 に割り当てられた中規模企業のカテゴリB 128.0.0.0 --- 191.255.0.0の Cが必要な任意のクラスに割り当てられた人 192.168.0.1 - 192.168.255.254 のクラスDマルチキャストを 実験のためにクラスE #どのようなサブネットマスクである サブネットマスクは、ネットワーク識別子及びホスト識別子にIPアドレスの部分を遮蔽するための識別とIPアドレスがLAN上に、またはリモートネットワーク上にあることを示す、32ビットのアドレスです。 これは、すべてのネットワーク、ホストパート0の一部です。たとえば、IPは172に対応しています。それは、ネットワーク部24、本体部8、サブネットマスク、小数点として書き込ま11111111.11111111.11111111.00000000である前知られている場合16.10.1は、255.255.255である.0。 #なぜ我々は、サブネットマスク必要ない 、単純なIPアドレスが唯一のタイプのIPアドレスを特定のサブネット認識しないIP :例を 192.168.10.1と192.168.10 、0.2が同じサブネットでそれらを決定していません表すネットワーク番号とホスト番号表すビットわからないので 知っている「サブネットマスク」を、私たちは、同じサブネット内の任意の2つのIPアドレスかどうかを判断することができるようになります。二つの方法は、IPアドレスとサブネットマスクである同一のAND演算(2桁が1であり、演算結果がそうでなければ1、及び0である)、及び結果を比較しているし、もしそうならば、それらは同じサブしていることを示すためにネットワークは、それ以外の場合ではありません。 #を通じて、前方サブネットマスクの数字は、サブネットのサイズを拡大します。ルーティング設定でサブネットマスク!!! 要約すると、IPプロトコルの役割は、1つのコンピュータごとにIPアドレスが割り当てられている二つあり、他方は、同じサブネット内のどのアドレスを決定することです。 #IPパケットは、(こちら) IPパケットを直接イーサネットパケットのデータ部に、単一のIPパケットのフィールドを定義する必要はありませんヘッドとデータ部分に分割され 、20〜60バイトの長さに:ヘッド データ:最大これは、65515バイトである だけで1500バイトまで、およびイーサネットパケットの「データ」セクション。IPパケットは1500バイトを超える場合したがって、それは別々に送信さいくつかのイーサネットデータフレームに分割する必要があります。 ARPプロトコル(理解) ARPプロトコルの起源は:? IPは動的な割り当ては、論理アドレスで通常であり、データ伝送は、MACアドレスに依存しなければならない、あなたはMACは、ARP要求するIPプロトコルによって、それに対処し得ることができますどのように ARPプロトコルの機能を:ラジオパケットとして送信され、宛先ホストのMACアドレス 1。.FF:FF:FF:FF:FF:FFがこのアドレス情報は、ネットワーク内のすべてのホストにブロードキャストされることが分かるであろうスイッチに特別なMACアドレスである 2.192 .168.1.102 応答が自身のMAC MACソースホストとのARP要求に受信される 3(192.168.1.101センダ後)応答を受信し、IP MACアドレスは反対側のキャッシュにマッピング関係に格納され、次の使用のため 要約:MACを取得した後にARPブロードキャスト方法に対処する、他のゲートウェイのMACアドレスと同じサブネット内にARPは、他のゲートウェイに到達し、対応するIPホストによるゲートウェイが、もちろん、他のゲートウェイは、MACホストを取得するデータを得られませんARPによって `` ` # #輸送層 ` `` Pythonの トランスポート層の起源 ** : 物理層リンクチャネルが再開 MACデータリンク層を、LAN内のホストに配置することができる ことにより、ネットワーク層 IPアドレス、サブネットマスクは、世界的にLAN内のホストを標的とすることができる コンピュータ上でアプリケーションを実行することだけが可能であり、そのようなマイクロ文字やQQとして着陸しながら、受信したデータがエンドクロスであること?またはマイクロチャネルQQに 答えは:カード番号に関連付けられているポート番号、ポートが必要とされるネットワークアプリケーション トランスポート層の機能:ポートへの通信ポートを確立 **補足:ポート範囲0-65535,0-1023は、ポートシステムは取ります ** TCP ** ** UDP **とトランスポート層プロトコルでの作業: #TCPプロトコル: 信頼性の高い伝送、TCPパケットの長さが限定されるものではなく、理論的にそれは無限大であることができるが、ネットワークの効率を確保するために、TCPパケットの典型的長さは、単一のTCPパケット再分割が不要であることを保証するために、IPパケットの長さを超えません。 #スリーウェイハンドシェイクの ためにリンクを確立するためのスリーウェイハンドシェイクを確認するためにデータを送信する前に、TCPの理由信頼性の高い データ伝送を確保するために、実際には本当にあなたが受け取る私の髪を確認しているプロセススリーウェイハンドシェイクを、あなたは、私の髪を受け取ることができます信頼性の 問題は、それの成功を確実にするためにどのように、データ転送ハンドシェイク、3ウェイハンドシェイクが信頼性がある場合に、データ伝送を保護するために実際にいるのですか? #** TCPプロトコルは、データを送信した後、相手がデータを確認するための応答メッセージを受信しなければならないことを要求します成功しすぎて再試行の回数は、リンクが中断されている可能性が言った場合、返事が情報の時間内に受信されない場合、それは自動的に再送信する、送信された!** #4振っ 目的は、両者の間のデータ伝送の第四の波がされていることを確認することです完成し、同じでのデータの整合性を保証することである データ送信が完了したことを確認する:その明らかな利点を すべての送達確認情報が送信されるので、低減された送信効率が得られる:欠点は 、シーンデータの整合性の複数の保証されなければならない:シナリオなどのテキスト情報、支払い情報、など! #UDPプロトコルは、 8バイトの合計のみ、全長の信頼性の高い伝送「ヘッダ」セクションではありません 正確にIPパケットに、65,535バイトを超えません。 道は完全に異なるUDPプロトコルTCPで撮影した、それは他のデータを受信したかどうかを気にしない、でも気にしない、アドレスの他の側面は、単にその後、他のすべてに、ネットワークにパケットを送信、有効です! ** **概要 利点:なし送達確認情報ので、伝送効率は、TCPプロトコルよりも高い 欠点:不完全なデータ転送することができる シナリオ:ビデオ、ボイスチャット、データの整合性が必要とされないが、より高い伝送速度を必要とする ` ##アプリケーション層 `` `Pythonの アプリケーション層の起源:ユーザーがアプリケーションを使用している、アプリケーション層で作業しているが、インターネットはオープンで、誰もが独自のアプリケーションを開発することができ、データの伝送フォーマットの種類は、次のものが必要アプリケーション開発者は、独自開発し たアプリケーションレイヤ機能を:データフォーマットの規定の適用を `` `