ディレクトリ
9.5ネットワークの基礎
C / SとB / S構造
C:クライアントの:QQをアップロードするために、サーバー、クライアント、サーバー、コンピュータは、マイクロ文字
B:ブラウザ秒:サーバーブラウザサーバ、Jingdongは、リンクスの
BSは、アーキテクチャ、CSの本質であります
S側:
固定IP
2が動作して安定化された、同時
OSIの7契約
7またはOSI TCP / IP 5またはTCP / IPの4つに異なる機能に応じてインターネットプロトコル
TCP / IPを説明するための5つのモデル
私たちは、インターネット通信の原則に関する主要な合意の明確な理解の各層をそれぞれの層の起源と機能の5を説明するために、TCP / IPプロトコルの観点から、作成するアプリケーション層、プレゼンテーション層、セッション層とアプリケーション層になります。
まず、ユーザは、アプリケーション層の最上層のみを知覚する、上から下へ、それぞれの層は、次のレベルに依存しているので、我々はほとんどが、よりよく理解されている1からカットし始めました
物理層:
010101電気信号
データリンク層:
電気物理層パケット、データの各セットは、メッセージ/データ・フレームと呼ばれる、各データフレームは、に分けられる:ヘッダと二つの部分のデータの先頭データ
-によって各データパケットヘッダとデータ部
-ヘッド:18を固定バイト6:送信元アドレス/ 6:受信機アドレス/ 6:データ型
-macアドレス:送信者、受信機アドレス、そのアドレスMAC
-各カードは、ユニークなアドレスMAC有する:12進数を(上位6ベンダー番号6つの行の数である)を表す
-ブロードキャスト:同じLAN内の通信を、ブロードキャスト・ストームが存在するであろう
ネットワーク層:
-ip:IPv4の32ビットバイナリ表現:ドット十進表記0.0.0.0から255.255.255.255の範囲は、IPv6だから、すべてのネットワークデバイスを図示していない、限られている
-サブネットマスク:サブネットマスクにより決定され、2つのIP IPは、同じネットワークセグメントにあると、IPによりビットごとのアドレスとサブネットマスクを行うされ
、IPアドレス:172.16.10.1:10101100.00010000.00001010.000000001
サブネットマスク:255.255.255.0 :11111111.11111111.11111111.000000000
ビット単位と:172.16.10.0 10101100.00010000.00001010.000000000
-172.16.10.10 / 24-IPアドレスとサブネットマスクが含まれている
MAC変換関係とそこ-ipを
-ホスト172.16.10.10/24アクセス172.16。 10.11 / 24
- ARPプロトコル:ブロードキャストパケット、宛先ホストのMACアドレスに送信
-macアドレス学習:MACアドレスマッピングテーブルとIPアドレスを
-意志最初のIP / MACのマップを受信で一つのデータ追加{「172.16.10.11「を:ddsadfgegsdgsdg}
-プロトコルの任意の種類は、そのヘッダとコンテンツを有します
トランスポート層:
TCP契約:
-スリーウェイハンドシェイクは4波(フォーカス、図)は、接続を切断する方法を外し、信頼性を保証するためにデータを送信する方法、確立された方法を、状態は、接続を確立するプロセスであります
-服务的如果看到大量的syn_rcvd状态
-dos和ddos攻击:拒绝服务攻击,分布式的拒绝服务攻击
-端口号:端口范围0-65535,0-1023为系统占用端口
-udp协议:
-发送,不需要要响应,所以数据不可以靠,(看视频)
-端口
-通过ip+子网掩码唯一确定一台设备
-通过ip+子网掩码唯+端口号唯一确定一个软件
-半连接池
应用层:
-应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式
-应用层功能:规定应用程序的数据格式。
上网流程分析:
-在浏览器输入www.baidu.com
-会取dns服务器通过域名解析成ip地址
-向ip+端口号这个地址发送请求,就会访问到百度的服务器
socket
能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
だから、私たちはTCP / UDPプロトコルの深い理解を必要としない、ソケットが私たちのために良いパッケージを持って、私たちは自然のTCP / UDPの基準を以下のプログラムを作成し、プログラムへのソケットの規定に従う必要があります。
ソケットのワークフロー
サーバ側の話を開始します。その後、サーバーは(バインド)結合ポートは、ポート(聞く)、クライアント接続を待って、ブロックされたコールを受け入れるに耳を傾け、ソケットを初期化します。接続が成功した場合は、クライアントはソケットを開始している場合は、この時点では、サーバー(接続)に接続し、その後、クライアントを接続し、サーバが確立されています。クライアントがデータ要求を送信し、サーバは要求を受け取り、要求を処理し、クライアントに応答データを送信し、クライアントがデータを読み込み、そして最終的に接続を閉じ、相互作用の両端
小さなプログラミング例をscoket
# server
import socket
sk = socket.socket() # 创建socket对象
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 为了关闭server端不报错
sk.bind(('127.0.0.1',8080)) # 绑定server端ip和端口号
sk.listen(5) # 监听
conn,addr = sk.accept() # 拿到连接和地址
while True:
ret = conn.recv(1024).decode('utf8') # 接收client端传输的数据
print(ret)
res = conn.send(bytes(ret.upper(),encoding='utf8')) # 向client端发送数据
conn.close() # 关闭资源
sk.close() # 关闭资源
# client
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
while True:
info = input('>>>>>>')
sk.send(bytes(info, encoding='utf8'))
ret = sk.recv(1024).decode('utf8')
print(ret)
sk.close() # 关闭资源