網(wǎng)絡(luò)安全(網(wǎng)絡(luò)模型)

應(yīng)用層
是最靠近應(yīng)用程序的OSI層。由用戶使用相應(yīng)的接口實(shí)現(xiàn)自己的服務(wù)。
協(xié)議有:HTTP FTP SMTP等
表示層
數(shù)據(jù)的表示、安全、壓縮。可確保一個(gè)系統(tǒng)的應(yīng)用層所發(fā)送的信息被另一個(gè)系統(tǒng)的應(yīng)用層讀取。格式有: JPEG、ASCII、加密格式等。
在表示層,數(shù)據(jù)按照網(wǎng)絡(luò)能理解的方案進(jìn)行格式化。管理數(shù)據(jù)的加密與解密。
會(huì)話層
建立、管理、終止會(huì)話,對(duì)應(yīng)主機(jī)進(jìn)程,指本地主機(jī)與遠(yuǎn)程主機(jī)正在進(jìn)行的會(huì)話。負(fù)責(zé)在網(wǎng)絡(luò)的兩節(jié)點(diǎn)之間建立、維持和終止通信。
會(huì)話層的功能包括:建立通信鏈接,保持會(huì)話過程通信連接的暢通,同步兩個(gè)節(jié)點(diǎn)之間的對(duì)話,決定通信是否被終端以及通信中斷時(shí)從何處重新發(fā)送。
有人會(huì)把會(huì)話層稱為網(wǎng)絡(luò)通信得到“交通警察"。當(dāng)通過撥號(hào)向你的ISP(因特網(wǎng)服務(wù)提供商)請(qǐng)求連接到因特網(wǎng)時(shí),ISP服務(wù)器上的會(huì)話層向你與你的PC客戶機(jī)上的會(huì)話層進(jìn)行協(xié)商連接。若你的電話線偶然脫落時(shí),會(huì)話層將會(huì)檢測(cè)到連接中斷并重新發(fā)起連接。會(huì)話層通過決定節(jié)點(diǎn)通信的優(yōu)先級(jí)和通信時(shí)間的長(zhǎng)短來設(shè)置通信期限。
傳輸層
定義傳輸數(shù)據(jù)的協(xié)議端口號(hào),以及流控和差錯(cuò)校驗(yàn)。
協(xié)議有:TCP UDP等,數(shù)據(jù)包一旦離開網(wǎng)卡即進(jìn)入網(wǎng)絡(luò)傳輸層。定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(hào),如:TCP(傳輸控制協(xié)議,傳輸效率低,可靠性強(qiáng),用于傳輸可靠性要求高,數(shù)據(jù)量大的數(shù)據(jù)),UDP(用戶數(shù)據(jù)報(bào)協(xié)議,用于傳輸可靠性要求不高,數(shù)據(jù)量小的數(shù)據(jù))。主要是講從下層接收的數(shù)據(jù)進(jìn)行分段和傳輸,到達(dá)目的地后再進(jìn)行重組。常常把這一層數(shù)據(jù)叫做段。
OSI模型中最終要的一層。傳輸協(xié)議同時(shí)進(jìn)行瀏覽控制或是基于接收方可接收數(shù)據(jù)的快慢程度規(guī)定適當(dāng)?shù)陌l(fā)送速率。除此之外,傳輸層按照網(wǎng)絡(luò)能處理的最大尺寸將較長(zhǎng)的數(shù)據(jù)包進(jìn)行強(qiáng)制分割。例如,以太網(wǎng)無法接收大于1500字節(jié)的數(shù)據(jù)包。發(fā)送方節(jié)點(diǎn)的傳輸層將數(shù)據(jù)分割成較小的數(shù)據(jù)片,同時(shí)對(duì)每一數(shù)據(jù)片安排一個(gè)序列號(hào),以便數(shù)據(jù)到達(dá)接收方節(jié)點(diǎn)的傳輸層時(shí),能以正確的順序重組。該過程稱作排序。
網(wǎng)絡(luò)層
進(jìn)行邏輯地址尋址,實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的路徑選擇等。協(xié)議有:ICMP IGMP IP ARP RARP等。
在位于不同地理位置的網(wǎng)絡(luò)中的兩個(gè)主機(jī)系統(tǒng)之間提供連接和路徑選擇。Internet的發(fā)展使得從世界各站點(diǎn)訪問信息的用戶量大大增加,網(wǎng)絡(luò)層正式管理這種連接的層。
OSI模型的第三層,其主要功能是將網(wǎng)絡(luò)地址翻譯成對(duì)應(yīng)的物理地址,并決定如何將數(shù)據(jù)從發(fā)送方路由到接收方。
網(wǎng)絡(luò)層通過綜合考慮發(fā)送優(yōu)先權(quán)、網(wǎng)絡(luò)擁塞程度、服務(wù)質(zhì)量以及可選路由的花費(fèi)來決定從一個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)A到另一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)B的最佳路徑。由于網(wǎng)絡(luò)層處理,并智能指導(dǎo)數(shù)據(jù)傳送,路由器連接網(wǎng)絡(luò)各段,所以路由器屬于網(wǎng)絡(luò)層。在網(wǎng)絡(luò)中,”路由“是基于編址方案、使用模式以及可達(dá)性來指導(dǎo)數(shù)據(jù)的發(fā)送。
網(wǎng)絡(luò)層用于本地LAN網(wǎng)段之上的計(jì)算機(jī)系統(tǒng)建立通信,它之所以可以這樣做,是因?yàn)樗凶砸训穆酚傻刂方Y(jié)構(gòu),這種結(jié)構(gòu)與第二層機(jī)器地址是分開的、獨(dú)立的。這種協(xié)議稱為路由或可路由協(xié)議。路由協(xié)議包括IP、Novell公司的IPX以及AppleTalk協(xié)議。
數(shù)據(jù)鏈路層
建立邏輯連接、進(jìn)行硬件地址尋址、差錯(cuò)校驗(yàn)等功能。將比特組合成字節(jié)進(jìn)而組合成幀,用MAC地址訪問介質(zhì),錯(cuò)誤發(fā)現(xiàn)但不能糾正。
主要功能是如何在不可靠的物理線路上進(jìn)行數(shù)據(jù)的可靠傳遞。為了保證傳輸,從網(wǎng)絡(luò)層接收的數(shù)據(jù)被分割成特定的可被物理層傳輸?shù)膸?。幀是用來移?dòng)數(shù)據(jù)的結(jié)構(gòu)包,它不僅包括原始數(shù)據(jù),還包括發(fā)送方和接收方的物理地址以及檢錯(cuò)和控制信息。其中的地址確定了幀將發(fā)往何處,而糾錯(cuò)和控制信息則確保幀無差錯(cuò)到達(dá)。如果在傳送數(shù)據(jù)時(shí),接收點(diǎn)檢測(cè)到所傳數(shù)據(jù)中有差錯(cuò),就要通知發(fā)送方重發(fā)這一幀。
數(shù)據(jù)鏈路層在物理層提供比特流服務(wù)的基礎(chǔ)上,建立相鄰節(jié)點(diǎn)之間的數(shù)據(jù)鏈路,通過差錯(cuò)控制提供數(shù)據(jù)幀在信道上無差錯(cuò)的傳輸,并進(jìn)行各電路上的動(dòng)作系列。作用主要是物理地址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯(cuò)、重發(fā)等。
物理層
建立、維護(hù)、斷開物理連接。
主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型,光纖的接口類型,各種傳輸介質(zhì)的傳輸速率等。主要作用是傳輸比特流(就是有1、0轉(zhuǎn)化為電力強(qiáng)弱來進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為1、0)。
?
第二小節(jié)http1.1? http2
HTTP/2采用二進(jìn)制格式而非文本格式
HTTP/2是完全多路復(fù)用的,而非有序并阻塞的——只需一個(gè)連接即可實(shí)現(xiàn)并行
使用報(bào)頭壓縮,HTTP/2降低了開銷
HTTP/2讓服務(wù)器可以將響應(yīng)主動(dòng)“推送”到客戶端緩存中
1.二進(jìn)制分幀層
在二進(jìn)制分幀層上,HTTP 2.0 會(huì)將所有傳輸?shù)男畔⒎指顬楦〉南⒑蛶?并對(duì)它們采用二進(jìn)制格式的編碼 ,其中HTTP1.x的首部信息會(huì)被封裝到Headers幀,而我們的request body則封裝到Data幀里面。

2.多路復(fù)用

從上圖可以看出,HTTP的持久連接可以有效減少TCP建立連接和斷開連接的次數(shù),這樣的好處是減少了服務(wù)器額外的負(fù)擔(dān),并提升整體HTTP的請(qǐng)求時(shí)間
3.頭部壓縮

維護(hù)一份相同的靜態(tài)字典,包含常見的頭部名稱,以及常見的頭部名稱和值的組合
維護(hù)一份相同的動(dòng)態(tài)字典,可以動(dòng)態(tài)的添加內(nèi)容
通過靜態(tài)Huffman編碼對(duì)傳輸?shù)氖撞孔侄芜M(jìn)行編碼
4.客戶端緩存
協(xié)商緩存
協(xié)商緩存就是通過服務(wù)器來判斷緩存是否可用
Last-Modify搭配If-Modify-Since:瀏覽器第一次請(qǐng)求一個(gè)資源的時(shí)候,服務(wù)器返回的header中會(huì)加上Last-Modify,Last-modify是該資源的最后修改時(shí)間;當(dāng)瀏覽器再次請(qǐng)求該資源時(shí),request的請(qǐng)求頭中會(huì)包含If-Modify-Since,該值服務(wù)端header中返回的Last-Modify。服務(wù)器收到If-Modify-Since后,根據(jù)資源的最后修改時(shí)間判斷是否命中緩存
Etag搭配If-None-Match:web服務(wù)器響應(yīng)請(qǐng)求時(shí),會(huì)在header中加一個(gè)Etag用來告訴瀏覽器當(dāng)前資源在服務(wù)器的唯一標(biāo)識(shí)(生成規(guī)則由服務(wù)器決定)。則再次向web服務(wù)器請(qǐng)求時(shí)帶上頭If-None-Match (Etag的值)。web服務(wù)器收到請(qǐng)求后將If-None-Match與Etag進(jìn)行比對(duì),決定是否命中協(xié)商緩存;
ETag和Last-Modified的作用和用法,他們的區(qū)別:
1.Etag要優(yōu)于Last-Modified。Last-Modified的時(shí)間單位是秒,如果某個(gè)文件在1秒內(nèi)改變了多次,那么他們的Last-Modified其實(shí)并沒有體現(xiàn)出來修改,但是Etag每次都會(huì)改變確保了精度;
2.在性能上,Etag要遜于Last-Modified,畢竟Last-Modified只需要記錄時(shí)間,而Etag需要服務(wù)器通過算法來計(jì)算出一個(gè)hash值;
3.在優(yōu)先級(jí)上,服務(wù)器校驗(yàn)優(yōu)先考慮Etag。
如果服務(wù)器收到的請(qǐng)求沒有Etag值,則將If-Modified-Since和被請(qǐng)求文件的最后修改時(shí)間做比對(duì),一致則命中協(xié)商緩存,返回304;不一致則返回新的last-modified和文件并返回200
強(qiáng)緩存
Expires:值為絕對(duì)時(shí)間,不過Expires 是HTTP 1.0的東西,現(xiàn)在默認(rèn)瀏覽器均默認(rèn)使用HTTP 1.1
Cache-Control:值為相對(duì)時(shí)間,如果與Expires同時(shí)設(shè)置的話,其優(yōu)先級(jí)高于Expires。
cache-control有下面幾個(gè)比較常用的設(shè)置值:
-max-age:設(shè)置失效時(shí)間,客戶端在這個(gè)有效期內(nèi),如果又請(qǐng)求該資源,就直接讀取緩存
-no-cache:不使用本地緩存。需要使用緩存協(xié)商,先與服務(wù)器確認(rèn)返回的響應(yīng)是否被更改,如果之前的響應(yīng)中存在ETag,那么請(qǐng)求的時(shí)候會(huì)與服務(wù)端驗(yàn)證,如果資源未被更改,則從緩存中取數(shù)據(jù)
-no-store:直接禁止瀏覽器緩存數(shù)據(jù),每次用戶請(qǐng)求該資源,都會(huì)向服務(wù)器發(fā)送一個(gè)請(qǐng)求。
-public:可以被所有的用戶緩存,包括終端用戶和CDN等中間代理服務(wù)器。
-private:只能被終端用戶的瀏覽器緩存,不允許CDN等中繼緩存服務(wù)器對(duì)其緩存。
服務(wù)器通過設(shè)置http中hdader的Expires和cache-control字段告訴瀏覽器換存的有效期。這種方法會(huì)有一個(gè)固定時(shí)間,所帶來的問題是如果服務(wù)器數(shù)據(jù)進(jìn)行了更新,但是還沒有到強(qiáng)緩存的過期時(shí)間,則數(shù)據(jù)無法更新