網(wǎng)絡協(xié)議
C\S架構,B\S架構
C:客戶端Client
B:瀏覽器Browser
S:服務器Server
C\S架構就是說Client\Server架構:比如QQ,微信,游戲等(軟件);打印機(硬件)
? 優(yōu)點: 安全性高,個性化設置,功能全面.響應速度快.
? 缺點: 開發(fā)成本高,維護成本高.(基于App),面向的客戶固定.
B\S架構就是說Browser\Server架構:瀏覽器和各個網(wǎng)站服務端進行的通信
? 優(yōu)點: 開發(fā)維護成本低,,面向用戶廣泛.
? 缺點: 安全性相對低,響應速度相對慢,個性化的設置單一.
osi七層協(xié)議
互聯(lián)網(wǎng)的本質
兩臺計算機之間的通信如下:
- 首先通過各種物理連接介質連接
- 找準對方計算機(準確到軟件)的位置
- 通過統(tǒng)一的標準(一攬子協(xié)議)進行數(shù)據(jù)的收發(fā)
osi七層協(xié)議
互聯(lián)網(wǎng)協(xié)議按照功能不同分為osi七層或TCP/IP五層或TCP/IP四層
每層常見物理設備及主要作用:
物理層
計算機之間要通信必須完成組網(wǎng),而物理層就是數(shù)據(jù)傳輸?shù)奈锢斫橘|
物理層功能:主要是基于電氣特性發(fā)送高低電平(電信號),高電平對應數(shù)字1,低電平對應0
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層功能:將數(shù)據(jù)封裝成幀,將電信號按幀分組
以太網(wǎng)協(xié)議
以太網(wǎng)協(xié)議規(guī)定一組電信號構成一個數(shù)據(jù)報,叫做幀,每個數(shù)據(jù)幀分成報頭head和數(shù)據(jù)data兩部分
head包含:(固定18個字節(jié))
? 發(fā)送者/源地址,6個字節(jié)
? 接收者/目標地址,6字節(jié)
? 數(shù)據(jù)類型,6字節(jié)
data包含:(最短46字節(jié),最長1500字節(jié))數(shù)據(jù)包的具體內容
head長度+data長度=最短64字節(jié),最長1518字節(jié),超過最大限制就分片發(fā)送
mac地址
即網(wǎng)卡地址,長度為48位2進制,通常由12位16進制數(shù)表示(前6位是廠商編號,后6位是流水線編號)
同一網(wǎng)絡中當A用戶第一次向B用戶發(fā)送數(shù)據(jù)時(通過arp協(xié)議獲取B的mac地址,并將源mac與目標mac封裝到幀中),采用的就是廣播方式,所有用戶都會收到A發(fā)出的數(shù)據(jù),通過對數(shù)據(jù)幀拆分找到目標mac并與自己比較,如果一致則接收,如果不一致就丟棄。
ARP協(xié)議
ARP協(xié)議功能:廣播的方式發(fā)送數(shù)據(jù)包,獲取目標主機的mac地址
協(xié)議工作方式:每臺主機IP都是已知的,例如:主機172.16.10.10/24訪問172.16.10.11/24
首先通過IP地址和子網(wǎng)掩碼區(qū)分出自己所處的子網(wǎng)
如果是同一子網(wǎng),在數(shù)據(jù)包地址中封裝目標主機mac及目標主機IP
如果是不同子網(wǎng),在數(shù)據(jù)包地址中封裝網(wǎng)關mac及目標IP
分析172.16.10.10/24與172.16.10.11/24處于同一網(wǎng)絡(如果不是同一網(wǎng)絡,那么下表中目標ip為172.16.10.1,通過ARP獲取的是網(wǎng)關的mac)
源mac | 目標mac | 源IP | 目標IP | |
---|---|---|---|---|
發(fā)送端主機 | 發(fā)送端mac | FF:FF:FF:FF | 172.16.10.10/24 | 172.16.10.11/24 |
這個包會以廣播的方式在發(fā)送端所處的子網(wǎng)內傳輸,所有主機接收后拆包,發(fā)現(xiàn)目標IP為自己就響應,并返回自己的mac
網(wǎng)絡層
網(wǎng)絡層功能:引入網(wǎng)絡地址用來區(qū)分不同的局域網(wǎng)
IP協(xié)議
? 規(guī)定網(wǎng)絡地址的協(xié)議叫IP協(xié)議,它定義的地址叫IP地址,廣泛使用IPv4,它規(guī)定網(wǎng)絡地址由32位2進制表示,范圍0.0.0.0—255.255.255.255;一個IP地址通常寫成四段十進制數(shù),例:172.16.10.1
IP地址分兩部分
網(wǎng)絡部分:標識子網(wǎng)
主機部分:標識主機
單純的IP地址段只是標識了IP地址的種類,從網(wǎng)絡部分或主機部分都無法辨識一個IP所處的子網(wǎng)
子網(wǎng)掩碼
表示子網(wǎng)絡特征的一個參數(shù)。是一個32位的二進制數(shù)字,網(wǎng)絡部分全部為1,主機部分全部為0比如,IP地址172.16.10.1,如果已知網(wǎng)絡部分是前24位,主機部分是后8位,那么子網(wǎng)絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。
通過將兩個IP地址與子網(wǎng)掩碼分別進行and運算,然后比較結果是否相同,可以判定這兩個IP是否是同一子網(wǎng)絡。比如:
'''比如,已知IP地址172.16.10.1和172.16.10.2的子網(wǎng)掩碼都是255.255.255.0,請問它們是否在同一個子網(wǎng)絡?''' #兩者與子網(wǎng)掩碼分別進行AND運算, 172.16.10.1:10101100.00010000.00001010.000000001 255255.255.255.0:11111111.11111111.11111111.00000000 AND運算得網(wǎng)絡地址結果:10101100.00010000.00001010.000000001->172.16.10.0 172.16.10.2:10101100.00010000.00001010.000000010 255255.255.255.0:11111111.11111111.11111111.00000000 AND運算得網(wǎng)絡地址結果:10101100.00010000.00001010.000000001->172.16.10.0 #結果都是172.16.10.0,因此它們在同一個子網(wǎng)絡。
作用:
為每臺計算機分配IP地址
確定哪些地址在同一子網(wǎng)絡
IP數(shù)據(jù)包
IP數(shù)據(jù)包也分為head和data部分,無需為IP包定義單獨的欄位,直接放入以太包的data部分
head:長度為20到60 字節(jié)
data:最長為65515字節(jié)
而以太網(wǎng)數(shù)據(jù)包的“數(shù)據(jù)”部分,最長只有1500字節(jié),因此,如果IP數(shù)據(jù)包超過了1500字節(jié),就需要分割成幾個以太網(wǎng)數(shù)據(jù)包分開發(fā)送
傳輸層
傳輸層功能:建立端口到端口的通信,端口即應用程序與網(wǎng)卡關聯(lián)的編號(范圍0—65535,0—1023為系統(tǒng)占用端口)
TCP協(xié)議
? 可靠傳輸,TCP數(shù)據(jù)包沒有長度限制,理論上可以無限長,但為了保證網(wǎng)絡效率,通常TCP數(shù)據(jù)包的長度不會超過IP數(shù)據(jù)包的長度,以確保單個TCP數(shù)據(jù)包不必再分割
TCP報文
序號:Seq序號,占32位,用來標識TCP源端向目的端發(fā)送的字節(jié)流,發(fā)送數(shù)據(jù)時對此進行標記。
確認序號:Ack序號,占32位,只有Ack標志位為1時,確認序號字段才有效,Ack=Seq+1
標志位:共6個,即URG、ACK、PSH、RST、SYN、FIN等,具體含義如下:
URG:緊急指針有效
ACK:確認序號有效
PSH:接收方應該盡快將這個報文交給應用層
RST:重置連接
SYN:發(fā)起一個新的連接
FIN:釋放一個連接
不要將確認序號Ack與標志位ACK搞混;確認方Ack=發(fā)起方Req+1,兩端配對
三次握手
? TCP在建立連接時需卻認通信雙方的收發(fā)信息的能力是正常的,因此需要進行多次驗證,俗稱“三次握手”。
? 所謂三次握手(Three-Way Handshake)即建立TCP連接,就是指建立一個TCP連接時,需要客戶端和服務端總共發(fā)送3個包以確認連接的建立。在socket編程中,這一過程由客戶端執(zhí)行connect來觸發(fā),整個流程如下圖所示:
? (1)第一次握手:Client將標志位SYN置為1,隨機產(chǎn)生一個值seq=x,并將該數(shù)據(jù)包發(fā)送給Server,Client進入SYN_SENT狀態(tài),等待Server確認。
? (2)第二次握手:Server收到數(shù)據(jù)包后由標志位SYN=1知道Client請求建立連接,Server將標志位SYN和ACK都置為1,ack=x+1,隨機產(chǎn)生一個值seq=K,并將該數(shù)據(jù)包發(fā)送給Client以確認連接請求,Server進入SYN_RCVD狀態(tài)。
? (3)第三次握手:Client收到確認后,檢查ack是否為x+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=y+1,并將該數(shù)據(jù)包發(fā)送給Server,Server檢查ack是否為y+1,ACK是否為1,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態(tài),完成三次握手,隨后Client與Server之間可以開始傳輸數(shù)據(jù)了。
四次握手
? 所謂四次揮手(Four-Way Wavehand)即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務端總共發(fā)送4個包以確認連接的斷開。在socket編程中,這一過程由客戶端或服務端任一方執(zhí)行close來觸發(fā),整個流程如下圖所示:
? 由于TCP連接時全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成數(shù)據(jù)發(fā)送任務后,發(fā)送一個FIN來終止這一方向的連接,收到一個FIN只是意味著這一方向上沒有數(shù)據(jù)流動了,即不會再收到數(shù)據(jù)了,但是在這個TCP連接上仍然能夠發(fā)送數(shù)據(jù),直到這一方向也發(fā)送了FIN。首先進行關閉的一方將執(zhí)行主動關閉,而另一方則執(zhí)行被動關閉,上圖描述的即是如此。
? (1)第一次揮手:Client發(fā)送一個FIN,用來關閉Client到Server的數(shù)據(jù)傳送,Client進入FIN_WAIT_1狀態(tài)。
? (2)第二次揮手:Server收到FIN后,發(fā)送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),Server進入CLOSE_WAIT狀態(tài)。
? (3)第三次揮手:Server發(fā)送一個FIN,用來關閉Server到Client的數(shù)據(jù)傳送,Server進入LAST_ACK狀態(tài)。
? (4)第四次揮手:Client收到FIN后,Client進入TIME_WAIT狀態(tài),接著發(fā)送一個ACK給Server,確認序號為收到序號+1,Server進入CLOSED狀態(tài),完成四次揮手。
SYN攻擊:
在三次握手過程中,Server發(fā)送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時Server處于SYN_RCVD狀態(tài),當收到ACK后,Server轉入ESTABLISHED狀態(tài)。SYN攻擊就是Client在短時間內偽造大量不存在的IP地址,并向Server不斷地發(fā)送SYN包,Server回復確認包,并等待Client的確認,由于源地址是不存在的,因此,Server需要不斷重發(fā)直至超時,這些偽造的SYN包將產(chǎn)時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網(wǎng)絡堵塞甚至系統(tǒng)癱瘓。SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態(tài)且源IP地址是隨機的,則可以斷定遭到SYN攻擊了.
特點:TCP(Transmission Control Protocol)可靠的、面向連接的協(xié)議(eg:打電話)、傳輸效率低全雙工通信(發(fā)送緩存&接收緩存)、面向字節(jié)流。使用TCP的應用:Web瀏覽器;文件傳輸程序。
UDP協(xié)議
不可靠傳輸,“報頭”部分一共只有8字節(jié),總長度不超過65535字節(jié),正好放進一個IP數(shù)據(jù)包。
特點:UDP(User Datagram Protocol)不可靠的、無連接的服務,傳輸效率高(發(fā)送前時延小),一對一、一對多、多對一、多對多、面向報文(數(shù)據(jù)包),盡最大努力服務,無擁塞控制。使用UDP的應用:域名系統(tǒng) (DNS);視頻流;IP語音(VoIP)。
應用層
應用層功能:規(guī)定應用程序的數(shù)據(jù)格式。
例:TCP協(xié)議可以為各種各樣的程序傳遞數(shù)據(jù),比如Email、WWW、FTP等等。那么,必須有不同協(xié)議規(guī)定電子郵件、網(wǎng)頁、FTP數(shù)據(jù)的格式,這些應用程序協(xié)議就構成了”應用層”。
編輯:hfy
-
IP協(xié)議
+關注
關注
3文章
85瀏覽量
21678 -
子網(wǎng)掩碼
+關注
關注
2文章
41瀏覽量
11039 -
UDP協(xié)議
+關注
關注
0文章
69瀏覽量
12715 -
TCP協(xié)議
+關注
關注
1文章
91瀏覽量
12096
發(fā)布評論請先 登錄
相關推薦
評論