網(wǎng)站開發(fā)定制多少錢南京百度搜索優(yōu)化
1、分層模型
1.1、OSI七層模型
1、OSI(Open System Interconnection,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型 ,是一個(gè)邏輯上的定義,一個(gè)規(guī)范,它把網(wǎng)絡(luò)從邏輯上分為了7層。
2、每一層都有相關(guān)、相對應(yīng)的物理設(shè)備,比如路由器,交換機(jī)。OSI 七層模型是一種框架性的設(shè)計(jì)方法 ,建立七層模型的主要目的是為解決異種網(wǎng)絡(luò)互連時(shí)所遇到的兼容性問題,其最主要的功能使就是幫助不同類型的主機(jī)實(shí)現(xiàn)數(shù)據(jù)傳輸。
3、它的最大優(yōu)點(diǎn)是將服務(wù)、接口和協(xié)議這三個(gè)概念明確地區(qū)分開來,通過七個(gè)層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實(shí)現(xiàn)可靠的通訊。
1.2 、TCP/IP四層模型
應(yīng)用層—http,ftp,ssh
傳輸層----TCP/UDP協(xié)議
網(wǎng)絡(luò)層----IP協(xié)議
網(wǎng)絡(luò)接口層-----以太網(wǎng)幀協(xié)議
?2、協(xié)議
2.1、以太網(wǎng)幀協(xié)議
以太網(wǎng)幀大小必須在64-1518字節(jié)(不包含前導(dǎo)碼和定界符),即包括目的地址(6B)、源地址(6B)、類型(2B)、數(shù)據(jù)、FCS(4B)在內(nèi),其中數(shù)據(jù)段大小在46-1500字節(jié)之間。
?
2.1.2、MAC地址(網(wǎng)卡編號)
1、MAC地址用來識別數(shù)據(jù)鏈路層中相連的節(jié)點(diǎn);
2、長度為48位, 及6個(gè)字節(jié). 一般用16進(jìn)制數(shù)字加上冒號的形式來表示(例如: 08:00:27:03:fb:19)
3、在網(wǎng)卡出廠時(shí)就確定了, 不能修改. mac地址通常是唯一的(虛擬機(jī)中的mac地址不是真實(shí)的mac地址, 可能會沖突; 也有些網(wǎng)卡支持用戶配置mac地址)
2.1.3、類型2字節(jié)
當(dāng)類型為0800時(shí),正常發(fā)送IP數(shù)據(jù)報(bào)
當(dāng)幀類型為0806時(shí),會發(fā)送arp數(shù)據(jù)報(bào)-,根據(jù)IP獲取對方的mac地址
當(dāng)幀類型為0835時(shí),會發(fā)送parp數(shù)據(jù)報(bào),返回自己的mac地址
?arp數(shù)據(jù)報(bào),根據(jù)IP獲取對方的mac地址【比如我們從北京向廣州的主機(jī)發(fā)送消息,要獲取廣州主機(jī)的MAC地址】
2.2、ARP報(bào)文格式
- 硬件類型:目標(biāo)網(wǎng)卡的硬件類型,表明ARP報(bào)文可以在哪種類型的網(wǎng)絡(luò)上傳輸。1表示以太網(wǎng)地址。
- 協(xié)議類型:硬件地址要映射的協(xié)議地址類型。映射IP地址時(shí)的值為0x0800.
- 硬件地址長度:即MAC地址的長度(以太網(wǎng)的MAC地址長度為6)。
- 協(xié)議地址長度:即IP地址的長度。
- 操作類型:指定本次ARP報(bào)文的類型。1:ARP請求報(bào)文;0:ARP響應(yīng)報(bào)文。
- 源MAC地址:發(fā)送設(shè)備的MAC地址。
- 源IP地址:發(fā)送設(shè)備的IP地址。
- 目標(biāo)MAC地址:接收設(shè)備的MAC地址。在ARP請求報(bào)文中,目標(biāo)MAC地址未知,MAC字段的值為全0(即00-00-00-00-00-00)。
- 目標(biāo)IP地址:接收設(shè)備的IP地址。
2.3、IP報(bào)文格式
2.3.1、IP協(xié)議的首部格式(IPV4)
組成部分
- 4位版本號:用來指定IP協(xié)議的版本,IPV4的版本號為4,前4位存儲0100。IPV6的版本號是6,前4位存儲0110
- 4位首部長度(Internet Header Length):表明IP首部的大小,單位是4個(gè)字節(jié),length * 4的字節(jié)數(shù),因?yàn)檫@一字段共4個(gè)比特位,所以這一字段最大值為2 ^ 4 - 1即15,所以IP首部最大長度為15 * 4即60字節(jié);在默認(rèn)情況下,該字段被設(shè)置為5,所以默認(rèn)IP首部20字節(jié)。
- 8位服務(wù)類型:前三位表示優(yōu)先度(已經(jīng)棄用),第4位表示最低延遲、第5位表示最大吞吐、第6位表示最大可靠性、第7位表示最小代價(jià),這四位互相沖突,只能選擇一個(gè)。需要根據(jù)不同情況進(jìn)行選擇,如果是SSH/TELNET這類遠(yuǎn)端登錄,那么就應(yīng)該選擇最小延時(shí),如果是FTP類型的程序,則應(yīng)該選擇最大吞吐量;第8位是保留位,目前沒有使用,必須填0。
- 16位總長度(Total Length):表示IP首部和后面攜帶的數(shù)據(jù)部分一共有多少個(gè)字節(jié)。該字段有16個(gè)比特位,因此IP數(shù)據(jù)報(bào)整體最大長度為65535個(gè)字節(jié)。
- 16位標(biāo)識(ID):唯一地標(biāo)識主機(jī)發(fā)送的報(bào)文,如果一份IP報(bào)文在數(shù)據(jù)鏈路層被分片,那么每一片的該字段應(yīng)該都是相同值。幫助對端主機(jī)在接收后進(jìn)行分片重組。
- 3位標(biāo)志(Flag):第一位保留(保留的意思是現(xiàn)在不使用,未來如果需要的話再使用),必須填0;第二位用來指明是否可以分片,如果為0則可以分片,如果為1則不能分片。
- 13位片偏移(Fragment Offset):該字段表示分片相對于原始IP報(bào)文開始處的偏移量,其實(shí)就是表示當(dāng)前分片在原報(bào)文中所處的位置,第一個(gè)分片對應(yīng)值為0。由于該字段總共13個(gè)比特位,因此最多可以表示2 ^ 13即8192個(gè)相對位置。單位為8字節(jié),所以最大可以表示8192 * 8 = 65536個(gè)字節(jié)的位置。
- (8位生存時(shí)間(Time To Live):數(shù)據(jù)報(bào)到達(dá)目的地的最大報(bào)文跳數(shù)(Hop,指網(wǎng)絡(luò)中一個(gè)區(qū)間,IP數(shù)據(jù)包正是在網(wǎng)絡(luò)中一個(gè)跳間被轉(zhuǎn)發(fā)),一般為64,每次經(jīng)過一個(gè)路由,TTL–,如果TTL == 0時(shí)還沒到達(dá)目的地,那么這個(gè)報(bào)文就會被丟棄。這個(gè)字段主要是為了防止出現(xiàn)路由循環(huán),數(shù)據(jù)包在一個(gè)循環(huán)中一直轉(zhuǎn)發(fā),浪費(fèi)網(wǎng)絡(luò)資源。
- 8位協(xié)議(Protocol):表示IP的上層是什么協(xié)議,我們熟知的TCP、UDP、ICMP等都是在IP上層的。
- 16位首部校驗(yàn)和(Header Checksum):使用CRC進(jìn)行校驗(yàn),鑒別IP首部是否收到損壞,如果損壞直接丟棄,它只校驗(yàn)IP頭部,不校驗(yàn)下面的內(nèi)容,因?yàn)閮?nèi)容部分的校驗(yàn)是上層傳輸層(TCP)需要考慮的,IP協(xié)議只要發(fā)現(xiàn)首部有問題就直接丟棄該報(bào)文。
- 32位源IP地址(Source Address):表示發(fā)送端的IP。
- 32位目的IP地址(Destination Address):表示接收端的IP。
- 選項(xiàng)字段(Options):不定長,最大可以到40個(gè)字節(jié)。
2.3.2、IP地址分類
IP地址由網(wǎng)絡(luò)標(biāo)識(網(wǎng)絡(luò)地址)和主機(jī)標(biāo)識(主機(jī)地址)兩部分組成。
IP地址劃分為五個(gè)級別,分別為A類、B類、C類、D類和E類(一直沒有使用過),所以目前我們所能見到的IP地址只有A、B、C、D四類。劃分的依據(jù)就是IP地址從第1位到第4位的比特位。
?2.4 、UDP報(bào)文格式
- 16位源端口(進(jìn)程)
- 16位目的端口(進(jìn)程)
- 16位UDP長度(數(shù)據(jù)長度)
- 16位UDP校驗(yàn)和(數(shù)據(jù)校驗(yàn))
?2.5、TCP報(bào)文格式
- 16位源端口(進(jìn)程)
- 16位目的端口(進(jìn)程)
- 32位序號(Seq)【用來表示A發(fā)送給B的數(shù)據(jù)報(bào)序號】
- 32位確認(rèn)序號(Ack)【客戶端和服務(wù)器端都可以發(fā)送,Ack=Seq+1】
- 4位首都長度:表示TCP頭部有4個(gè)字節(jié)(32位),所以TCP頭部最大長度為15*4=60
- 6個(gè)標(biāo)志位【每個(gè)標(biāo)志位1bit,分別是 URG、ACK、PSH、RST、SYN、FIN】
????????URG:緊急指針有效
????????ACK:確認(rèn)序號有效
????????PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文交給應(yīng)用層
????????PST:重置連接
????????SYN:建立一個(gè)連接
????????FIN:斷開一個(gè)連接
- 16位滑動(dòng)窗口(表示緩存存儲空間的大小)
? ? ? ? 傳輸數(shù)據(jù)的雙方,如果一邊傳輸?shù)目?#xff0c;一邊接收的慢。那么數(shù)據(jù)接收方會告訴傳輸方,自己 有一個(gè)緩存。傳輸方就會把數(shù)據(jù)放入緩存,當(dāng)緩存滿了,數(shù)據(jù)的傳輸方就會進(jìn)入阻塞等待。
- 16位校驗(yàn)和:檢驗(yàn)數(shù)據(jù)是否一致
- 16位緊急指針:標(biāo)識哪部分?jǐn)?shù)據(jù)是緊急數(shù)據(jù)
?2.6、ICMP報(bào)文格式
ICMP(Internet Control Message Protocol)是一種網(wǎng)絡(luò)協(xié)議,它用于在IP網(wǎng)絡(luò)中傳遞控制信息和錯(cuò)誤消息。它通常與IP協(xié)議一起使用,IP協(xié)議負(fù)責(zé)發(fā)送和路由數(shù)據(jù)包,而ICMP協(xié)議負(fù)責(zé)檢查網(wǎng)絡(luò)是否可達(dá)、路由是否正確、主機(jī)是否可達(dá)等網(wǎng)絡(luò)狀態(tài)的反饋信息
?ICMP報(bào)文屬于IP子協(xié)議,協(xié)議號為1。
2.6.1、ICMP首部格式
其中各字段的含義如下:
類型(Type):指定 ICMP 報(bào)文的類型,占 1 個(gè)字節(jié)。常見類型有:回顯應(yīng)答(Echo Reply:0)、回顯請求(Echo Request:8)等。
代碼(Code):指定 ICMP 報(bào)文的代碼,占 1 個(gè)字節(jié)。用于進(jìn)一步描述 ICMP 報(bào)文,與 Type 字段組合使用。
校驗(yàn)和(Checksum):校驗(yàn)和,用于檢查 ICMP 報(bào)文是否有損壞,占 2 個(gè)字節(jié)。
由類型決定的4字節(jié):根據(jù)類型不一樣,4字節(jié)表達(dá)的意思不一樣。
數(shù)據(jù)(Data):數(shù)據(jù),可變長度。可以是任意數(shù)據(jù),長度由具體的 ICMP 報(bào)文類型和代碼決定。
?2.6.2、ICMP報(bào)文類型列表
?