Pythonの28日目のネットワークプログラミング、OSI 7層モデル、スリーウェイハンドシェイクと4波

 

  ##路線ネットワークプログラミングの考え方

「」「#の
 ネットワークプログラミングで何が?
ネットワークは通常、連結からなるネットワークケーブルまたは他の媒体を介して複数のコンピュータからインターネット上のコンピュータを指し、

ネットワークプログラミングと呼ばれ、ネットワーク上のアプリケーションをベースの書き込みプログラム

思考の#ライン:

目的は、インターネットで他のコンピュータをリンクすることで

、他のコンピュータへの物理層の物理メディアリンク

通信のためのデータリンク層のMACアドレスが、唯一の同じローカルエリア上の

ネットワーク層判断し、使用のIPの世界的な特定のローカルエリアネットワークコンピュータ

のコンピュータプロセスの特定のポートを決定するために-transport層

ようJSON、2つのアプリケーション間でデータを交換するためのXMLなどの組織独自のデータ構造のアプリケーション層

「」 "

  ## C / Sアーキテクチャ

「」 "
 ネットワークは、少なくとも二つのコンピュータを必要とし、使用してネットワークにデータを送信するユニコムしなければならないネットワーク
 2 。1には、内のデータにアクセスするアプリケーションのためにインストールする必要があり、データにアクセスする必要がある
   (と呼ばれるクライアントアプリケーションをアプリケーション・プログラムをクライアント)

。3 。いずれかでのアプリケーション共有データに必要なデータを提供するためにインストールされなければならない
   アプリケーションは、アプリケーションサーバ(サーバ)と呼ばれ
       、Cと略記 / S 
           例えば:QQは、クライアント・サーバテンセントある
                 Tencentのビデオ

                B / Sのブラウザブラウザ/ サーバの構造、この送信データによるHTMLテキストれる

究極の目標は、C / Sの構造に基づいてアプリケーションを作成するためにネットワークプログラミングを学ぶことです

  通信ネットワークの基本的な要素##

通信するために2つの条件を有していなければならない物理的な伝送媒体(ツイストペアファイバ同軸電波)
 2通信プロトコル(キー)

  ##ネットワーク通信プロトコル

送信者と受信機では、仕様の共通セットに同意

我々は合意なければならないのはなぜ
データ解決することができる2つの側面を修正することを目指し
、内部通信などの2つの側面がマンダリンである
     国際コミュニケーション英語


各社のIBM DELL HP早い時期ISOがOSI開放型システム間相互接続モデルを前方に置くことができないので、それは、ネットワークに接続されたコンピュータの異なるブランドにつながるのプロトコルの独自のセットを持っています

  ## OSI 7層モデル

#Openシステム間相互接続参照モデル、ISOによって起動OSIと略記通信、のための開放型システム間相互接続参照モデルは、実際には、プロトコルの多くは、OSI通信処理の全体は7つの層に分割され、OSI 7層モデルと称します

#右、最も完全な7層モデルである単純化された学習曲線を、低減するために非常に詳細な、しかし全体の通信プロセスの高い複雑さ、後者が、最も完全な通信モデルであるので、彼は途中5層、および4つの左

#の前記アプリケーション層、プレゼンテーション層、セッション層、アプリケーション層をマージするように、全体として、アプリケーション層に属し、それによって、私たちが学ぶれ、5の中間体を得た#を焦点を当てます!

 

 

   ## OSIは、解決に努めています

#OSI各層が解決に取り組ん
だけで通信を行うためのOSI規格の規定に従って、OSIは、コンピュータ業界の共通言語に相当し、誰もが世界の周りのすべてのコンピュータと通信することはできません

#の電子機器による伝送:機能1.物理層ツイストペアケーブル、同軸ケーブル、電波:現在のレベルに応じた電流信号は、すなわちバイナリデータ伝播媒体、番号0および1に対応してもよい

2のデータリンクレイヤ
のEthernet:
    イーサネット・プロトコル(イーサネット)どのようにした電気信号のパケットを指定するデータリンク層での作業、及び電気信号の組含めるべきである
次のように指定されたイーサネット:
     - 電気信号のセットは、「フレーム」と呼ばれる、データパケットを構成する
     - 各データ・フレームはに分割される:ヘッダ頭部と二つのデータのデータ
ヘッド18はバイト固定:(を含む)

 - 送信元/送信元アドレス、6バイト
 - 受信者/宛先アドレス、6バイト
 -データ型(ラベル+ イーサタイプ)、6バイトの

データ・バイト46であっ:(最小、最大1500バイト)

 - パケットの詳細は

、1518のバイトまで、最短長+データ長= 64のバイトをヘッド伝送スライス上の上限超え

#MACアドレス:
それが何を意味するか、アドレスに含まれる送信元アドレスと宛先アドレス?

イーサネット所定のインターネットアクセスデバイスはカードを持っている必要があり、送信側と受信側のアドレスは、カードのアドレスを参照し、MACアドレスのことである

MACアドレス:各NICの工場は、世界のユニークなMACアドレスの長さに解雇されています一般的に12進数(最初の6つのベンダーIDであり、行数は6である)で示される48バイナリ、
## RADIO

 MACアドレスを持つ、同じネットワーク上の2つのホストがと通信できます

即ち実質的轟音コンピュータ通信によるイーサネットを使用する最も原始的な方法、無線通信方法、

容易ブロードキャストは、ブロードキャストストームを吸収します
相互に通信することができますが、また、ネットワーク伝送を最適化するために、ネットワーク内のコンピュータをさせるための責任だけではなく、スイッチ

 #それを最適化する方法は?

 あなたは、PC1とPC2通信の前にしたいとき

 1. PC2のMACアドレスを知る必要があり、それはまず、すべてのコンピュータにこの情報をブロードキャストする必要があります

 2.この情報は、スイッチに渡され、次にスイッチによってブロードキャストされなければなりません、

 MACは、独自のメッセージの宛先を受信した後3.pc2発見メッセージは、データの送信元に返信します

 4.また、スイッチに応答しなければならないスイッチがPC2ネットワークのスローガンに対応するMACアドレスを記録し、独自のキャッシュに保存されました

 髪はPC2のデータが得られた場合、キャッシュPC2 5からMACアドレスを検索します

 6.あなたが個別に直接送信PC2を見つけた場合は、必要に応じていないラジオ、

 以前の放送のプロセスが存在しない場合は7を繰り返し、

 自動学習機能と呼ばれるこの最適化機能

  ##ネットワーク層

 

1.IPプロトコル

インターネットプロトコルアドレスに変換インターネットプロトコルアドレス、:IPプロトコルは、ネットワーク層プロトコル、フルネームで働いている

### 1.1 IPアドレス(フォーカス)
 
- 広く使われているIPアドレスと呼ばれるIPプロトコルに定義されたアドレス、 V4、すなわち32ビットのバイナリで表されるネットワークアドレス提供のIPv4バージョン、
 - 0.0.0.0〜255.255.255.255の範囲
- 4つの10進数として書かれ、典型的には、IPアドレス、例えば: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 

私たちのコンピュータは、クラスCの誰でも使用できるという理由だけで、192.168で始まる、通常はクラスCのIPです

#を1.2サブネットマスク(理解)

サブネットマスクは何ですか

サブネットマスクは32ビットのアドレスである、ネットワーク識別子及びホスト識別子にIPアドレスの一部を遮蔽するための識別およびIPアドレスがLAN上で、またはリモートネットワーク上にあることを示しています。

これは、すべてのネットワーク、ホストパート0の一部です。例えば、IPは172アドレス既知のネットワークは、フロント部24、本体部8、サブネットマスク、小数点として書き込ま11111111.11111111.11111111.00000000で255.255.255である場合、16.10.1を.0。

なぜ我々は、サブネットマスク必要ない

、単純なIPアドレスが唯一のタイプのIPアドレスを特定のサブネット認識しないIP 
:たとえばそうではないので、192.168.10.1と192.168.10.2の両方が同じサブネットを決定することはできませんがこれは明らかにホスト番号を表すネットワーク番号を示します

#1.3 IPパケット(こちら)

IPパケットが、ヘッドとデータの部分に分割されている直接イーサネットパケットのデータ部に、単一のIPパケットのフィールドを定義する必要はありません

ヘッド:20〜60バイト長の

データを:最も65515バイトの長さ。

イーサネットパケットと「データ」セクションで、1500バイトの最大値のみ。IPパケットは1500バイトを超える場合したがって、それは別々に送信さいくつかのイーサネットデータフレームに分割する必要があります。


#1.4 ARPプロトコル(理解)

ARPプロトコルの起源:? IPは通常、動的割り当てでは、論理アドレスであり、データ伝送は、MACアドレスに依存しなければならない、それはどのようにそれを必要とするIP ARPによってMACアドレスを取得することができますプロトコル

ARPプロトコル機能:MACアドレスは、宛先ホストがブロードキャストパケットを送信し

、各ホストIPが知られており、サブネットマスクによって同じサブネットかどうかを判定することができる第1のクリア

**ケース1:ホスト192
0.168
0.1
0.101
アクセス192
0.168
0.1
0.102 **

と同じサブネットである
ARP要求フレームの内容は:

1.FF:FF:FF:FF:FF:FFスイッチで特別なMACアドレスは、このアドレスデータは、ネットワーク内のすべてのホストにブロードキャストされることが分かるれます

ARP要求を受信した後、元ホストMACに2.192.168.1.102自身のMAC返信

3.送信者(192.168.1.101)応答を受信した後、お互いにMACアドレスを格納されたマッピング関係は、将来の使用のためにキャッシュを腹腔ます

PSます。arp -aは、ARPキャッシュのリストを表示することができます

 

#の概要:MACアドレス、IPアドレスが取得したARPブロードキャスト方法、同じサブネット内にARPデータが、対応するIPホストによれば、他のゲートウェイに到達し得ない他のゲートウェイのMACアドレス、ゲートウェイコースにより取得された、他のゲートウェイARPてもMACを開催

PS:ルータ・スイッチは、ゲートウェイと呼ばれることができます!

 
 
 

  トランスポート層##

このレベルのTCP /仕事のUDP 
トランスポート層は、各アプリケーションがポート番号バンドルことを必要とする
ポート番号が0の範囲の整数である -65536 0-1024 このシステムは予約推奨されていない
ポート番号を繰り返すことができない
。この点が通過することができますIP + 全地球測位コンピュータのアプリケーションの1つのポート番号

#のTCP伝送制御プロトコル
    の信頼性を保証するためにどのように信頼性の高いトランスポートプロトコル、データの完了が発生した後、あなたは成功したと見なさデータ送信、応答メッセージを返すために、受信者のを待たなければならない
    場合を他の当事者がしばらく戻らない、それは、再び超限界にデータを送信しますミッシングリンクであると判断番号
    に基づいて、伝送リンク
    リンクどのようにコール
        データが発生するが、最初のリンクを確立する必要があり、単純に、道路の反対側に到達するものを見つけるためにすることを意味し
        選択する方法最高の伝送路は、ルーティングプロトコルによって制御される
    伝送路が利用可能であることを確認する必要があり信頼性の高いデータ転送室を確保するための
    リンクを確立するために、3ウェイハンドシェイクが必要:
        3ウェイハンドシェイクは、送信が利用可能であるかを決定することである
        が、これ以降のTCPプロトコルの信頼性の高い伝送を保証するものではありません。データ伝送の各 データ・セグメントのセグメントは確認が必要です
    リンク切れを振る4を必要とする
        データ転送の両方が完了したことを確実にするために、なぜ我々は1つ多く必要があります、いくつかの送信端は、他の側には終わっていないがあるかもしれない

    メリット:
        伝送信頼性、データの整合性を確認
    欠点を:
        ので、情報の送信を確認する必要があるため、ネットワークが大きく、比較的低効率の消費ので
    :シナリオ
        の重要なデータを、オンライン決済、テキストメッセージを


、プロトコル、ユーザデータグラムプロトコル#UDP 
    信頼性の低いトランスポート
    UDPは問題だけ送信しますそれが受信された場合
    
    のTCPよりも高い伝送効率:長所
    短所:信頼性の低い輸送
    シナリオ:
        高速要件、下のための整合性の要件
        ビデオ通話、音声チャット
        の戦争ゲームあなたは、通常のカードに適切な人材を果たし、主にUDPあなたのカードを

 

   ##スリーウェイハンドシェイクと4つの振っ概要


#の接続確立TCP 3ウェイハンドシェイクは、通信相手の目的は、後続の開始番号を確認し、プロセスで
整然とした通信。次のように主な手順は次のとおり
。1つの接続の開始は、接続確立側(クライアント)はSYNパケットを送信し、それ自身のイニシャルシーケンス番号;.含む
 2 接続宛先(サーバ)は、SYNパケットが後含むSYNパケットを、返されました。パケットの一対の
ACK応答情報のシーケンス番号、受信した次のパケットのシーケンス番号の所望の応答、すなわち、+ 1には、また含ま
独自の初期シーケンス番号Bと、
 3 。接続確立側(クライアント)のリターンを受信しますSYNパケットの後、含有する、実行に応答してACKパケットを返す
次の所望のシーケンス番号はパケット、即ち、+ Bを受けた。1 
#TCP终止连接的四次握手过程如下:
1. 首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这
个FIN)执行被动关闭。
2. 当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一
样,一个FIN将占用一个序号。
3. 同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个
服务器程序就关闭它的连接,导致它的TCP端发送一个FIN。
4. 客户必须发回一个确认,并将确认序号设置为收到序号加1。

   ##应用层

应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开放的,大家都可以开发自己的应用程序,用什么样的数据格式来传输,就需要由应用程序开发者自己来制定

应用层功能:规定应用程序的数据格式。

例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

 

おすすめ

転載: www.cnblogs.com/liangzhenghong/p/10932762.html