兩臺(tái)機(jī)器在網(wǎng)絡(luò)間傳輸數(shù)據(jù)時(shí)轿腺,需要知道對(duì)方的IP两嘴、MAC地址等,而當(dāng)需要傳給具體的應(yīng)用時(shí)還需要知道端口號(hào)族壳,因此這個(gè)傳輸?shù)臄?shù)據(jù)保存了很多信息憔辫。同時(shí),接受方也需要對(duì)這些信息進(jìn)行解析仿荆,這就使得解析程序具有很多的邏輯計(jì)算贰您,如果這個(gè)程序放在一個(gè)設(shè)備將導(dǎo)致會(huì)影響數(shù)據(jù)傳輸效率。
因此拢操,類似于模塊化的思想锦亦,可將網(wǎng)絡(luò)分層,各層分別負(fù)責(zé)各自的功能令境,各層之間的接口都設(shè)定為標(biāo)準(zhǔn)杠园,這樣當(dāng)需要對(duì)網(wǎng)絡(luò)傳輸進(jìn)行自定義時(shí),只需對(duì)單獨(dú)的層或模塊進(jìn)行處理舔庶,只要保證于具有相同的功能和接口就行抛蚁。如傳輸層可以是TCP或UDP,應(yīng)用層可以是HTTP或HTTPS或WEBSOCKET等惕橙。
數(shù)據(jù)在網(wǎng)絡(luò)各層間的傳輸表現(xiàn)為:
1.發(fā)送方(打包數(shù)據(jù)):數(shù)據(jù)可以看作是一塊的內(nèi)存數(shù)據(jù)或Buffer瞧甩,在應(yīng)用層,數(shù)據(jù)被打包層HTTP頭和HTTP數(shù)據(jù)兩部分吕漂,接著在傳輸層加上TCP或UDP頭(帶有源port和目標(biāo)port)亲配,在網(wǎng)絡(luò)層加上IP頭(帶有源IP和目標(biāo)IP),在數(shù)據(jù)鏈路層加上MAC頭(帶有源MAC號(hào)和目標(biāo)MAC號(hào))
2.接受方(解析數(shù)據(jù)):數(shù)據(jù)鏈路層-網(wǎng)路層-傳輸層(發(fā)給對(duì)應(yīng)的port)-應(yīng)用層
類似于兩棟沒有天橋的高樓(26層),A棟24層到B棟24層的過程吼虎。A棟和B棟兩個(gè)的層數(shù)必須一樣犬钢,且必須保證下層完整,如中間不可以少了第10層思灰,但可以少第25層玷犹。
所以,網(wǎng)絡(luò)的分層可以讓數(shù)據(jù)的傳輸分為不同的模塊處理洒疚,每個(gè)模塊都可以對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步的處理歹颓,只要滿足相同的接口和功能。
網(wǎng)絡(luò)七層模型和五層模型對(duì)應(yīng)關(guān)系: