【目錄】
一、C/S 架構 和 B/S 架構
二、網路通信
三、互聯網通信協議——osi 七層協議(應表會傳網數物)
四、五層協議
五,小結
一、C/S 架構 和 B/S 架構
1、C/S 架構——Client/Server
Client<===========>Server
客戶端軟體send 服務端軟體recv
作業系統 作業系統
計算機硬體<====物理介質=====>計算機硬體* 作業系統:(operating system,簡稱os)是管理和控制計算機硬體與軟體資源的計算機程式,是直接運行在“裸機”上的最基本的系統軟體,任何其他軟體都必須在作業系統的支持下才能運行,
注:計算機(硬體)->os->應用軟體
2、B/S 架構——Browser/Server
Browser<===========>Server
b/s架構也是c/s架構的一種
二、網路通信
網路存在的意義就是跨地域資料傳輸,稱之為通信
網路=物理鏈接介質+互聯網通信協議
三、互聯網通信協議——osi 七層協議(巧記—應表會傳網數物)
1、互聯網的本質就是一系列的網路協議
* 英語成為世界上所有人通信的統一標準,如果把計算機看成分布于世界各地的人,
那么連接兩臺計算機之間的internet實際上就是 一系列統一的標準,這些標準稱之為互聯網協議,
* 互聯網的本質就是一系列的協議,總稱為‘互聯網協議’(Internet Protocol Suite).
* 互聯網協議的功能:定義計算機如何接入internet,以及接入internet的計算機通信的標準,
2、osi七層協議——應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層 —(巧記—應表會傳網數物)
1)互聯網協議按照功能不同分為osi七層或tcp/ip五層或tcp/ip四層

2)每層運行常見物理設備

3)osi七層協議資料傳輸的封包與解包程序

四、五層協議
1、五層協議的組成——應用層、傳輸層、網路層、資料鏈路層、物理層
計算機1: 計算機2:
應用層 應用層
傳輸層 傳輸層
網路層 網路層
資料鏈路層 資料鏈路層
物理層 <===========互動機===========> 物理層
0101010101010(源mac地址,目標mac地址)(源ip地址,目標ip地址)資料
2、物理層:負責發送電信號

1)物理層由來:上面提到,孤立的計算機之間要想一起玩,就必須接入internet,言外之意就是計算機之間必須完成組網
2)物理層功能:主要是基于電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0
3)一組物理層資料稱之為:位
單純的電信號毫無意義,必須對其進行分組
3、資料鏈路層:ethernet 以太網協議
1)資料鏈路層由來:
單純的電信號0和1沒有任何意義,必須規定電信號多少位一組,每組什么意思
2)資料鏈路層的功能:
定義了電信號的分組方式
3)以太網協議:
早期的時候各個公司都有自己的分組方式,后來形成了統一的標準,即以太網協議ethernet:
規定1:一組電信號構成一個資料包,叫做‘幀’一組資料稱之為一個資料幀
規定2:資料幀分成兩部分=》報頭head+資料data兩部分
頭包含:源地址與目標地址,該地址是mac地址
資料包含:包含的是網路層發過來的整體的內容
head
data
head包含:(固定18個位元組)
發送者/源地址,6個位元組
接收者/目標地址,6個位元組
資料型別,6個位元組
data包含:(最短46位元組,最長1500位元組)
資料包的具體內容
head長度+data長度=最短64位元組,最長1518位元組,超過最大限制就分片發送
規定3:規定但凡接入互聯網的主機必須有一塊網卡,每塊網卡在出廠時都燒制好一個全世界獨一無二的地址,
該地址稱之為mac地址,
4)mac地址
head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具備網卡,發送端和接收端的地址便是指網卡的地址,即mac地址 ,
mac地址:每塊網卡出廠時都被燒制上一個世界唯一的mac地址,長度為48位2進制,通常由12位16進制數表示(前六位是廠商編號,后六位是流水線號)
5)廣播
計算機通信基本靠吼,即以太網協議的作業方式是廣播,
有了mac地址,同一網路內的兩臺主機就可以通信了(一臺主機通過arp協議獲取另外一臺主機的mac地址)
ethernet采用最原始的方式,廣播的方式進行通信,即計算機通信基本靠吼,
4、 網路層:IP協議
1)IP協議
要達到的目的:
劃分廣播域
每一個廣播域但凡要接通外部,一定要有一個網關幫內部的計算機轉發包到公網
網關與外界通信走的是路由協議規定1:一組資料稱之為一個資料包
規定2:資料幀分成兩部分=》頭+資料
頭包含:源地址與目標地址,該地址是IP地址
資料包含的:傳輸層發過來的整體的內容
2)IP地址和子網掩碼
ipv4地址:
8bit.8bit.8bit.8bit0.0.0.0
255.255.255.255子網掩碼:
8bit.8bit.8bit.8bit
255.255.255.0對應的二進制表達
11111111.11111111.11111111.00000000
一個合法的ipv4地址組成部分=ip地址/子網掩碼地址
172.16.10.1/255.255.255.0
172.16.10.1/24
計算機1:
172.16.10.1: 10101100.00010000.00001010.000000001
255255.255.255.0: 11111111.11111111.11111111.000000000
172.16.10.0: 10101100.00010000.00001010.000000000
計算機2:
172.16.10.2: 10101100.00010000.00001010.000000010
255.255.255.255.0: 11111111.11111111.11111111.000000000
172.16.10.0: 10101100.00010000.00001010.000000000
計算機1: 計算機2:
應用層 應用層
傳輸層 傳輸層
網路層 網路層
資料鏈路層 資料鏈路層
物理層 <=========二層互動機========> 物理層
0101010101010(源mac地址,xxxx)(源ip地址,目標ip地址)資料
(源mac地址,網關的mac地址)(172.16.10.10/24,101.100.200.11/10)資料
*事先知道的是對方的ip地址
但是計算機的底層通信是基于ethernet以太網協議的mac地址通信
3)ARP協議
【ARP協議】:
所以必須能夠將ip地址決議成mac地址* arp協議由來:計算機通信基本靠吼,即廣播的方式,所有上層的包到最后都要封裝上以太網頭,然后通過以太網協議發送,在談及以太網協議時候,我們了解到,通信是基于mac的廣播方式實作,計算機在發包時,獲取自身的mac是容易的,如何獲取目標主機的mac,就需要通過arp協議,
* arp協議功能:廣播的方式發送資料包,獲取目標主機的mac地址
4)計算機在同一局域網以及不同局域網內的通信方式
# 兩臺計算機在同一個局域網內
計算機1:172.16.10.10/24 —— 直接 —— 計算機2:172.16.10.11/24
ARP:
自己的ip,對方的ip
1、計算二者網路地址,如果一樣,拿到計算機2的mac地址就可以了
2、發送廣播包
發送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 資料
# 兩臺計算機不在同一個局域網內
計算機1:172.16.10.10/24 —— 網關 —— 計算機2:101.100.200.11/10
ARP:
自己的ip,對方的ip
1、計算機二者網路地址,如果不一樣,應該拿到網關的mac地址
2、發送廣播包
發送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.1/24 資料
5、傳輸層——tcp協議、udp協議
1)傳輸層的由來:
網路層的ip幫我們區分子網,以太網層的mac幫我們找到主機,然后大家使用的都是應用程式,你的電腦上可能同時開啟qq,暴風影音,等多個應用程式,那么我們通過ip和mac找到了一臺特定的主機,如何標識這臺主機上的應用程式,答案就是埠,埠即應用程式與網卡關聯的編號,
2)傳輸層功能:
建立埠到埠的通信
補充:埠范圍0-65535,0-1023為系統占用埠
3)tcp協議:
可靠傳輸,TCP資料包沒有長度限制,理論上可以無限長,但是為了保證網路的效率,
通常TCP資料包的長度不會超過IP資料包的長度,以確保單個TCP資料包不必再分割,
以太網頭
ip 頭
tcp頭
資料
4)udp協議:
不可靠傳輸,”報頭”部分一共只有8個位元組,總長度不超過65,535位元組,正好放進一個IP資料包,
以太網頭
ip頭
udp頭
資料
5)tcp報文

6)tcp三次握手和四次揮手

tcp三次握手詳解:


6、應用層
1)應用層由來:
用戶使用的都是應用程式,均作業于應用層,互聯網是開發的,大家都可以開發自己的應用程式,
資料多種多樣,必須規定好資料的組織形式
2)應用層功能
應用層功能:規定應用程式的資料格式,
例:TCP協議可以為各種各樣的程式傳遞資料,比如Email、WWW、FTP等等,那么,必須有不同協議規定電子郵件、網頁、FTP資料的格式,這些應用程式協議就構成了”應用層”,

五、小結
1、總結圖

2、資料傳輸動圖

參考資料:
https://zhuanlan.zhihu.com/p/110296719
https://www.cnblogs.com/linhaifeng/articles/6129246.html
https://www.cnblogs.com/linhaifeng/articles/5937962.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157925.html
標籤:Python
上一篇:python中操作檔案和目錄
