您好,登錄后才能下訂單哦!
一、網絡協議模型
1.OSI七層網絡協議模型
OSI七層協議(Open System Interconnection):將網絡連接過程分成數個層次(layer),每個層次負都有特定的獨立功能,且每個層次的程序代碼可以獨立撰寫,每個層次間的功能不會相互干擾。
說明:
1)越接近硬件的層次為底層(layer1),越接近應用程序的則為高層(layer7)
2)接收端或者發送端,每一層只認識對方的同一層次的數據
3)每層都有其獨特的頭部數據header,告知對方信息,其后的數據為真實數據
(1)物理層Physical Layer
定義傳輸設備的電壓與信號等,連接數據幀轉換成比特流的編碼方式,最后連接實際傳輸介質發送/接收比特信號
(2)數據鏈路層Data-Link Layer
下層為實體的定義,上層為軟件封裝的定義。數據鏈路層又可分為兩層:
偏向硬件介質:MAC數據幀,media Access Control frame,網絡接口所能處理的主要數據包裹,被物理層編碼成比特流
偏向軟件層面:邏輯鏈路層(Logical Link Control)多任務處理來自上層的數據包數據并轉換成MAC格式
信息交換、流量可控制、數據問題處理
(3)網絡層Etwork Layer
定義IP(Internet Protocol)和路由概念,計算機間的連接建立、終止和維持,數據包的傳輸路徑選擇
(4)傳輸層Transport Layer
發送端和接收端連接技術,如TCP、UDP… 包括數據包格式、數據包發送、流程的控制、傳輸過程的幀檢測與重新傳送
(5)會話層Session Layer
定義兩個四肢間的連接信道的連接與中斷,在確定網絡服務建立連接的確認
也可以建立應用程序的會話、提供其他加強型服務
(6)表示層Presentation Layer
網絡服務(或程序)之間的數據格式轉換:將來自本地端應用程序的數據格式轉換或重新編碼成網絡的標準格式
加密解密技術
(7)應用層Appliation Layer
應用程序并不屬于應用程序本身,用來同一管理調度數據對應其發送和接收的應用程序
定義應用程序如何進入該層的溝通接口,以將數據接收或發送給應用程序,最終展示給用戶
2.TCP/IP協議
TCP/IP協議在OSI七層協議的觀念上進行簡化為四層結構,在結構上沒OSI七層協議嚴謹,但時程序撰寫上會容易得到廣泛使用。
TCP/IP協議將應用層、表示層、會話層整合為應用層
應用層:將數據封裝一個TCP/IP協議組內某個特定使用到的協議,交由傳輸層處理
傳輸層:放入TCP封裝內,并給予TCP封裝的首部報文,交由網絡層處理
網絡層:封裝IP數據包內,給予IP首部,交由網絡接口層處理
網絡接口層:MAC封裝,比特流傳輸
3.網絡模型對應層級關系
OSI七層協議只是一個參考模型,過于詳細闡述網絡出書各方面情況,實際生產中為TCP/IP協議
二、網絡層:IP協議
1.IP協議
(1)IP協議版本
IPv4:32bits分為四段,點分十進制表示,8bits.8bits.8bits.8bits
每8bits表示用以數字0-255標識
00000000.00000000.00000000.00000000 ===》 0.0.0.0
11111111.11111111.11111111.11111111 ===》 255.255.255.255
IPv6:128bits二進制
(2)IP(Internet protocol)地址:網絡號+主機號
在同一物理網段內,主機的IP具有相同的網絡號,并具有獨特的主機號;同一網段內的主機其主機號不能相同
注意:
1) 同一網段內,網絡號不變,主機號不能重復
2)全0表示為整個網段的地址,全1表示為廣播地址
(3)IP地址分類:
A類:
第一段為網絡號,后三段為主機號
網絡號:0 000 0000 - 0 111 1111:1-127
網絡數量:126,127
每個網絡中的主機數量:2^24-2
默認子網掩碼:255.0.0.0,/8
用于與IP地址按位進行“與”運算,從而取出其網絡地址;
1.3.2.1/255.0.0.0 = 1.0.0.0
1.3.2.1/255.255.0.0= 1.3.0.0
私網地址:10.0.0.0/255.0.0.0
B類:
前兩段為網絡號,后兩段為主機號
網絡號:10 00 0000 - 10 11 1111:128-191
網絡數:2^14
每個網絡中的主機數量:2^16-2
默認子網掩碼:255.255.0.0,/16
私網地址:172.16.0.0-172.31.0.0
C類:
前三段為網絡號,最后一段為主機號
網絡號:110 0 0000 - 110 1 1111:192-223
網絡數:2^21
每個網絡中的主機數量:2^8-2
默認子網掩碼:255.255.255.0, /24
私網地址:192.168.0.0-192.168.255.255
D類:組播的特俗公用
1110 0000 - 1110 1111:224-239
E類:保留
240-255
總結:
Class A:0.xx.xx.xx ~ 127.xx.xx.xx,私有地址10.0.0.0 ~ 10.255.255.255
Class B:128.xx.xx.xx ~ 191.xx.xx.xx,私有地址172.16.0.0 ~ 172.31.255.255
Class C:192.xx.xx.xx ~ 223.xx.xx.xx,私有地址192.168.0.0 ~ 192.168.255.255
Class D:224.xx.xx.xx ~ 239.xx.xx.xx
Class E:240.xx.xx.xx ~ 255.xx.xx.xx
注意:Loopback IP網段
lo網絡,當初被用來作為測試操作系統內部循環所用的一個網絡,同時還能提供系統內部原本就需要使用網絡接口的服務所使用。為內部循環網絡,無需安裝網卡使用,其地址號為127.0.0.0/8,默認的主機IP是127.0.0.1,即為localhost
2.Netmask子網掩碼
將一個大的網段地址劃分成更小的網絡地址,減少網段內的主機數量,使得更加方便管理,以及廣播時效率提高
方式:通過將一位或多位主機號當做網絡號來使用,將網絡號全部表示為1,主機號全部用0標識來進行子網劃分
3.ip報文首部( 每行占用的位數為32bits)
(1)IP Version:聲明ip數據包的版本,ipv4、ipv6
(2)IHL:Internet Header Length,ip報文首部長度,以4字節為一個單位來記錄IP報頭的長度
(3)TOS:Type Of Service,服務類型,通過定義來標識IP數據包的優先級、延遲、傳輸量和可靠度等信息
(4)Total Length:IP數據包的總長度,包括報頭和數據部分、用16個字節表示0-65535bytes
(5)Identtification:標識信息,辨識數據段是否為一個數據
(6)Flags:特殊標志R、DF、MF,內容可以標識為"0DM"
D:0表示可以分段,1表示不可以分段
M:0表示此IP為最后分段,1表示非最后分段
(7)Fragment Offset:分段偏移量,用以標識這個IP分段在原始的IP數據包中所占的位置,類似于序號作用
(8)Time To Live:存在時間,最多255次轉發,每次經過一個路由器減一到0丟棄不再轉發
(9)Protocol Number:報文協議代碼(TCP--6、UDP--17、ICMP--1、IP--4… ...),數字描述;
(10)Header Checksum:報頭首部校驗碼,用于檢測IP報頭是否存在錯誤
(11)Source Address:來源IP地址
(12)Destination Address:目標IP地址
(13)Options:填充位,提供包括安全處理機制、路由記錄、時間戳、嚴格與寬松的來源路由等
(14)Data:真實數據
三、傳輸層:TCP協議
1.TCP報文首部
(1)Source Port:源端口號
(2)Destination Port:目標端口號,通過16位字節標識0-65535共65536個端口
(3)Sequence Number:數據包序列號,TCP數據分段
(4)Acknowledgement Number:回應序列號
一次發一批報文時候使用序列號和確認號,TCP三次握手的第一次無確認號
(5)Header Length:首部長度
(6)Reserved:保留位(6位);
(7)Code:control Flag,標志控制碼
該字段有6個bits組成,每個bits標識一種含義,用以說明這個連接的狀態,讓接收端連接這個數據包的主要動作
URG(Urgent):1標識為緊急數據包,接收端要緊急處理,且Urgent Pointer字段也會被啟用
ACK(Acknowledge):1表示為響應數據包,和Acknowledeg Number有關
PSH(Push Function):1表示要求對方立即傳送緩沖區內的其他對應數據包,無需等待緩沖區滿才傳送
RST(Reset):1表示強制結束連接,且發送端已經斷線
SYN(Synchronous):1表示發送端希望雙方建立同步處理(要求建立連接),主動要連接到對方
FIN(Finish):1表示傳輸結束
(8)Window Size:窗口滑動,用來控制數據包的流量,0表示緩沖器已經額滿,所以應該暫停數據傳輸
(9)TCP Checksum:確認校驗碼
(10)Urgent Pointer:緊急數據
(11)Options:填充位,可變長度,多數情況不使用
(12)Data:數據
2.TCP協議三次握手機制
Three-way handshake:TCP在建立連接之前都必須要通過的三個確認動作
(1)第一階段:數據包發起
1)隨機取用大于1024的端口,監聽用于和應用程序通信
2)TCP報頭:SYN=1,表示要求建立連接,,主動連接到對方
3)TCP報頭:Sequence Number(Client)記錄下第一次發送出連接數據包給服務器端的序列號
(2)第二階段:數據包接收和確認數據包傳送
1)服務器端接收到數據包,并確認所接收的數據包
2)回應數據包:TCP報頭中
SYN=1,ACK=1,表示主動連接且為響應數據包
Acknowledgement Number(Service)=Sequence Number(Client) + 1,給客戶端確認使用
Sequence Number(Service)新數字,用于確認客戶端確實可以收到服務器端的數據包
3)等待客戶端響應
(3)第三階段:回送確認數據包
1)確認收到報文的Acknowledgement Number(Service)是否為Sequence Number(Client) + 1
2)再次發送數據吧:ACK=1,Acknowledgement Number(Client)=Sequence Number(Service) + 1
(4)第四階段:取得最后確認
服務器端驗證
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。