1. 程式人生 > >Python--網絡編程-----C/S架構

Python--網絡編程-----C/S架構

我們 標識 進制 blog .com 使用 服務端 傳輸層 現在

一、C/S架構

C為Client S為 Server C/S架構即為客戶端/服務器架構,

這種架構的軟件開發,需要開發客戶端軟件和服務端軟件,

一般來講,客戶端軟件運行在客戶端主機上,服務端軟件安裝在服務端主機上,

兩臺主機要怎麽進行通信呢?

首先,兩臺主機之間的網卡之間物理線路必須要聯通

其次,操作系統作為應用軟件與網卡之間的橋梁

最後,應用系統通過操作系統接口進行信息交互

二、互聯網協議

主機網卡之間連接的媒介我們統稱為網絡,兩臺主機要想通過網絡進行通信,就必須要遵循一定的標準,而這個標準我們目前使用最多的稱之為互聯網協議,

我們今天要討論的有OSI七層互聯模型和五層互聯模型

1、OSI七層互聯模型

技術分享圖片

應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層和物理層總共七層

為什麽要進行分層呢?為了便於理解(復雜問題簡單化)和獨立各個層次模塊,每一層負責不通的功能,而又與其它層相互聯系

2、下面從下到上依次進行介紹:

A、物理層:就是通過高低電平發送一些0101110的二進制代碼,規定了線路標準等等

B、數據鏈路層:這些01010111代碼我們怎麽知道表示什麽意義,也就是我們需要想字符編碼一樣給它來一個對應,也就是比特流的組裝,我們現在常用的數據鏈路層的協議是Ethernet協議,它規定了幀頭和數據,如下:

技術分享圖片在以太網協議中,有目標MAC,源MAC,而MAC地址可以唯一的標識一臺主機的一個網卡,這樣通過MAC地址就能找到

一個網卡,而找MAC的方式就是廣播,也就是目的MAC要在你的廣播範圍之內,能夠給源MAC回復,

雖然理論上通過MAC地址就能通信了,但是在現實的網絡環境中,這是不現實的,我們不可能把廣播放到所有的網絡環境中,這樣就出現了網絡層的概念

C、網絡層: 網絡層使用的協議為IP協議,也就是使用IP地址標識一個主機,目前常用的IP地址是IPv4地址,IPv6使用還沒有得到推廣,知道了IP地址,我們就能通過網絡上的各種設備找到這個IP地址的路,

並且通過ARP地址解析協議,發到對應的網卡上,

理論上,通過IP地址,我們能夠找到世界上任何一臺互聯網主機

D、傳輸層: 雖然能夠找到這個主機,但我們的目的是要跟主機上的應用進行通信,怎麽找到這個應用呢,這就使用到了端口,端口範圍為0-65534 ,1-1024為系統預留,之後的端口應用程序可以使用,

理論上,通過IP地址和端口,我們能夠找到世界上任何一臺互聯網主機之上的應用

E、會話層,表示層和應用層我們在這裏統稱為應用層,也就是程序員關心的那一層,在這一層用戶可以定義自己的應用頭格式和數據部分,常用的應用層標準有HTTP、FTP等,

Python--網絡編程-----C/S架構