シニアネットワークプログラミング2

1.パッケージwireshartのインストール
2.udpすると、ブロードキャスト、TCPではありません。放送は、それがブロードキャストストーム生じる可能性があります
ブロードキャストが使用する必要がある、あなたは何をする必要はありません

2つの.tcpプロトコル、伝送制御プロトコル。UDP、ユーザデータグラムプロトコルの
TCPが安定している、我々はデータがUDP遅くに関して、受け取っていることを確認することができ
、通常はTCPを使用して、Webサーバ。TCPのシナリオより

サーバ:
1)(ソケットソケットを作成します
。2.バインドバインド()
3.(聞く)ソケットがパッシブとアクティブ話すソケットになり
(4.acceptは)他の人が続けていくのを待って、受信しますコール・

クライアント:
ソケット()
クライアント()

ネットワーク通信プロセスが
刻まれている:ブラウザプロセスを開いて、www.baidu.com入力のプロセス
のプロセスパケットトレーサ
のダウンロードソフトウェアprofesslonal XPのWindows

1. 2台のコンピュータを前提と通信することができます同じネットワークセグメント内の
2なぜできないネットワークケーブルに接続された複数のコンピュータ
3のスイッチとハブ

通信することができ、異なるネットワーク間を、ネットワーク間の間には通信しない
ルータ:リンク異なるネットワーク

2内のデバイスのMACアドレスコミュニケーション、変更。全体の通信でIPアドレスが変更されません
MACアドレスがこの無用に加えて、手に手間のデータ転送に使用されている

訪問Baiduのブラウザ1.問題
1を参照してくださいゲートウェイかどうか
2. IPまたはドメイン名を見て、IP、その後、3ウェイハンドシェイクで
、ドメイン名場合3.対応するBaiduのIPアドレス解決する必要がある
4を、デフォルトゲートウェイのARP GET MACアドレス
5.組織データは、デフォルトゲートウェイに送信され
、デフォルトのネットワークを持っている6。順方向データに能力、ルータ転送データ
迅速に適切なパスを選択するルーティングプロトコルに記載のルータ、宛先に転送ゲートウェイデータ
オブジェクト・ゲートウェイ(NMサーバ常駐のDNS)サーバ、DNSに転送データ
のDNSクエリサーバbaidu.com解析に対応するIPアドレスアウト、およびドメイン名を要求するためにバックトラッククライアントに彼を送って
対応するIPアドレスbaidu.comを得た後、それは、3ウェイハンドシェイクTCPリンクを送信します
Webサーバーにデータ要求を送信するためにHTTPプロトコルを使用して
4。 Webサーバは、ブラウザのバックトラック、独自のサーバーを照会することにより、データの要求、対応する結果を受信した後
、データブラウザを受け取った後に、メッシュ表示するためのブラウザ独自のレンダリング機能
ブラウザが閉じられたTCPリンクである、すなわち、この波4
アクセス処理を完了するために

4振って、3ウェイハンドシェイクTCP
3ウェイハンドシェイクと第四の波はできません リンク、)(受け入れに成功した直接影響
波の間に手を3回、4回を振るために
あなたが振っていない場合は、それが消費するリソースの

長リンク
、長いリンクがアクセスすることを続けている
ソケットの数に制限することができ、プロセスを

サービス側をリンクの最大数は、5へのリンクの最大数、クライアント20、サーバの受信データが5つのになると
、最大のLinuxカーネル内の構成に応じて、あなたが設定することで

、ネットワーク攻撃
DNS攻撃
フィッシングサイトを区別し、ドメイン名を見て正しいことをして、偽のパスワードを入力し

たIPかを確認するために、ドメイン名に対応するnslookupコマンド+ドメイン名を
Pythonがrawソケットを使用して

#サーバ
ソケットからのインポート*
#セットのリズムを作成します。使用して1を、TCP SOCK_STREAM
ServerSocketを=ソケット(AF_INET、SOCK_STREAM)
#2バインド任意のIPアドレス、ポート番号8899
ServerSocket.bind(( ''、8899))
#。3 モニターは、アクティブからあなたができる数が正である受動的になり、
serverSocket.listen(5)

クライアントは2と1つのソケットだけサーバである
clientSocket =ソケット(AF_INET、SOCK_STREAM)
clientSocket.connect(( ' 192.168.0.107」、8899))

#4は、リターンデータを受信し、戻り値が同じ組で、最初の値が新たなソケットである、第二の値の他方はIPとポートで
新しいクライアントを表現#clientSocket終了
#clientinfo新しいクライアントとポート表す
clientSocket.send( 'haha'.encodeを(' UTF-8「))

clientSocket ,, CLIENTINFO serverSocket.accept =()
1024のバイトを受信位
(1)印刷

recvDate clientSocketを=。 recv(1024)
:("%S%Sを" %(STR(CLIENTINFO)、recvDate))を印刷
#閉じる現在のソケットを
clientSocket.close()
近いパッケージソケット
serverSocket.close()

のTCPクライアント
#クライアントは2と1台のソケットだけサーバである
#tcpLliebtSocket =ソケット(AF_INET、SOCK_STREAM )


#TCPクライアント
ソケットからのインポート*

#クライアントは2つだけと1台のソケットサーバれ
clientSocket =ソケット(AF_INET、SOCK_STREAM)
#tcpクライアントは、その将来のデータ伝送には、適切なサーバーを凝縮していますお互いのIPアドレスとポートに入力する必要はありません
データを送信する際に以前の接続がないので、要約を送信するために、すべてのIPアドレスとポートで受け入れられることが必要である、#udp
clientSocket.connect((「192.168.0.107」、8989を ))
送信データ#1
clientSocket.send( 'haha'.encode(' UTF-8 '))
recvData = clientSocket.recv(1024)
印刷(' recvData:S%「%recvData)
)(clientSocket.close
#サーバ
ソケットからのインポート*
#セットのリズムを作成します。使用して1を、TCP SOCK_STREAM
ServerSocketを=ソケット(AF_INET、SOCK_STREAM)
#2バインド任意のIPアドレス、ポート番号8899
ServerSocket.bind(( ''、8800))
#3リスニング、活性は正の数ができている数パッシブとなる
serverSocket.listen(5)
戻り値が同じ組#4は、戻りデータを受信する場合、最初の値は、新しいソケット、秒お互いのIPアドレスとポート番号の値は、
新しいクライアントを表す#clientSocket
新しいクライアントとポートを表す#clientinfo
、CLIENTINFO = serverSocket.accept()clientSocketを
1024バイト受け入れる#
recvDate = clientSocket.recvを(1024)
」(印刷Sの%:%は「%S(STR(CLIENTINFO)、recvDate))
近い現在のソケット

#クライアントは2と1つのソケットだけサーバである
clientSocket =ソケット(AF_INET、SOCK_STREAM)
#tcpクライアントがありますうまく凝縮するサーバは、その将来のデータ伝送では、互いのIPアドレスとポートを記入する必要はありません
以前の接続が存在しないので、要約を送信するために、すべてのIPアドレスとポートで受け入れられることが必要である、データを送信するに#udp時間
clientSocket.connect(( '192.168.0.107'、8989))
のデータを送信する
clientSocket.send( 'haha'.encode(' UTF-8 '))
recvData = clientSocket.recv(1024)
プリント(' recvData:%のS 「%recvData)
clientSocket.close()


clientSocket.close()
近いパッケージソケット
serverSocket.close()




おすすめ

転載: www.cnblogs.com/wangjunxi/p/11832218.html