演習の第一段階:Pythonの基本的なプログラミングの基礎小さな演習の知識ベースのday31ネットワークを開発します

day31の宿題

1.クラス5話ネットワークプロトコル層モデル、うち各ソートの内容

物理層

物理層の機能:主に高電圧が数1、デジタル0に対応する低電圧に対応し、電気的特性に基づいて、低電圧(電気信号)を送信します。ネットワークデータは01010101100101形式からなる電気信号を介して送信されます。

データリンク層

二つの部分のヘッダとデータの先頭データ:電気物理層パケット、電気信号のセットは「フレーム」と呼ばれる、データパケットを構成し、各データフレームが分割されます。

  • ):( 18のバイトを含む頭部を固定します
    • 6バイトの送信元/送信元アドレス
    • 受信者/宛先アドレス、6つのバイト
    • データ型、6つのバイト
  • 46のバイトのデータを含む:(最小、最大1500バイト)

MACアドレス:データグラムの送信元アドレスと受信者のアドレスは、MACアドレスです。それぞれが一意のネットワークカードのMACアドレスを持っている:12進数(最初の6桁は、ベンダIDであり、行番号は6です)

放送:同じLAN内での通信、コンピュータのローカルエリアネットワークにデータを送信するために、轟音のおかげで、あなたはすべてのコンピュータに要求を送信する必要があり、その後、我々は、データを受信するために、そのコンピュータを取得する必要があります。(バルク)

ネットワーク層

  • IP:IPv4の32ビットバイナリ表現:ドット十進表記0.0.0.0から255.255.255.255まで、範囲が制限され、すべてのネットワークデバイスを図示していないので、そこのIPv6
  • サブネットマスク:サブネットマスクとIPは、2つのIPによって決定されているのと同じネットワークセグメントにある、によってビットごとのIPアドレスとサブネットマスクを行います
  • IPは、Macコンバータと関係を持っています
    • 172.16.10.10/24アクセスホスト172.16.10.11/24
      • ARPプロトコル:、宛先ホストをブロードキャストパケットを送信するMACアドレス
      • MACアドレス学習:MACアドレスとIPアドレスマッピングテーブル
      • 最初のものは、受信したデータのIP / MACマッピングテーブルに追加される{「172.16.10.1」:「ローカルホスト」}
      • プロトコルの任意の種類は、ヘッダとコンテンツを持っています

トランスポート層

  • TCPプロトコル:
    • スリーウェイハンドシェイクは4波(フォーカス、図)、接続が確立された方法、信頼性を保証するためにデータを送信する方法、切断する方法を切断、接続を確立するプロセスにおける状態であります
    • あなたが表示された場合、状態多数のサービスがSYN_RCVD
    • ドスとDDoS攻撃:サービス拒否攻撃、サービス攻撃の分散拒否
    • ポート番号:ポート範囲0-65535,0-1023ポートはシステムによって占有されています
  • UDPプロトコル:
    • (ビデオを参照)、いないデータに対して、応答を必要としないように、送信
  • ポート
    • 一意のデバイスによって決定IP +サブネットマスク
    • IP + CD +ポート番号によって、サブネットマスクは、一意のソフトウェアを識別します
  • セミ結合プール

アプリケーション層

アプリケーション層の起源:ユーザーがアプリケーション層で作業している、アプリケーションを使用しているが、インターネットの発達で、誰もが独自のアプリケーション、データのさまざまなを開発することができ、データは良い組織の形で提供されなければなりません

アプリケーションレイヤ機能:アプリケーションの所定のデータフォーマット。

  • 例:TCPプロトコルのデータは、電子メール、WWW、FTPなどの各種プログラムに転送することができます。だから、そこにする必要があり合意は異なる電子メール、Webページ、FTPデータ形式、これらのアプリケーションプロトコルを構成し提供し、「アプリケーションレベルの。」

2.スリーウェイハンドシェイクは4つの波を図面を説明、およびcは端部と側状態sであります

スリーウェイハンドシェイク:

  • クライアントは、サーバーへの接続要求を送信します。
  • 応答は、サーバ、クライアントの要求を同意して、クライアントからの接続要求を送信します。
  • クライアントサーバの応答は、接続することで合意しました。

四波:

  • クライアントはサーバーに切断要求を送信します。
  • 切断され、クライアントに応答するサーバーを要請することで合意しました。
  • サーバーは、顧客の切断要求を送信します。
  • クライアントが切断を終了し、サービス要求に応答することに合意しました。

3.サーバーを書き、サーバーに送信する文字列のHello Worldを達成するためのクライアントを書く、クライアントは、資本のリターンにデータを送信します

サーバーコード:

import socket

soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

soc.bind(('127.0.0.1',8081))
soc.listen(5)
conn,addr = soc.accept()
print(addr)
data = conn.recv(1024)

conn.send(data.upper())
conn.close()

クライアントコード:

import socket
soc = socket.socket()

soc.connect(('127.0.0.1',8081))

soc.send(b'hello world')

data = soc.recv(1024)

print(f'我收到了服务端回的消息:{data.decode("utf8")}')

soc.close()

結果:

私は戻って、サーバーへのメッセージを受け取った:こんにちは、世界

ブログのアドレス

https://www.cnblogs.com/foreversun92/

おすすめ

転載: www.cnblogs.com/foreversun92/p/11468552.html