網(wǎng)絡(luò)通訊協(xié)議是什么
計(jì)算機(jī)網(wǎng)絡(luò)理論把這整個(gè)過(guò)程定義成一個(gè)分層服務(wù)體系。在國(guó)際標(biāo)準(zhǔn)組織(ISO)的著名標(biāo)準(zhǔn)開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI)里,這個(gè)復(fù)雜的體系依次有應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層,稱為ISO七層模型。
在數(shù)據(jù)的實(shí)際傳輸中,發(fā)送方將數(shù)據(jù)送到自己的應(yīng)用層,加上該層的控制信息后傳給表示層;表示層也將數(shù)據(jù)加上自己的標(biāo)識(shí)傳給會(huì)話層;以此類推,每一層都在收到的數(shù)據(jù)上加上本層的控制信息并傳給下一層;最后到達(dá)物理層時(shí),數(shù)據(jù)通過(guò)實(shí)際的物理媒體傳到接收方。接收端則執(zhí)行與發(fā)送端相反的操作,由下往上,將逐層標(biāo)識(shí)去掉,重新還原成最初的數(shù)據(jù)。由此可見(jiàn),數(shù)據(jù)通訊雙方在對(duì)等層必須采用相同的協(xié)議,定義同一種數(shù)據(jù)標(biāo)識(shí)格式,這樣才可能保證數(shù)據(jù)的正確傳輸。
最初,各個(gè)廠商的設(shè)備,系統(tǒng),各有各的一套,彼此之間很難互相通信,要建立一個(gè)網(wǎng)絡(luò),就只能選一家廠商的設(shè)備,比如說(shuō)全I(xiàn)BM的,或全DECnet的,用一種系統(tǒng),那時(shí)UNIX大行其道。后來(lái)用Windows的網(wǎng)絡(luò)也慢慢多了起來(lái),基于將不同網(wǎng)絡(luò)互連的迫切要求,國(guó)際標(biāo)準(zhǔn)化組織ISO于上世紀(jì)70年代發(fā)布了OSI七層網(wǎng)路模型,以規(guī)范化網(wǎng)絡(luò)設(shè)計(jì)。那為什么要分層呢?是因?yàn)槌鲇趯?shù)據(jù)處理分步的考慮??偨Y(jié)來(lái)說(shuō),OSI網(wǎng)七層絡(luò)模型的用處如下:
1.使不同廠商在開(kāi)發(fā)設(shè)備的時(shí)候有個(gè)公共的標(biāo)準(zhǔn),讓不同廠商開(kāi)發(fā)出來(lái)的設(shè)備能夠互相通信。
2.使不同系統(tǒng)之間能夠互相通信,如UNIX、Winsows和Mac。
3.分層使數(shù)據(jù)處理分步,互相之間不造成影響。
OSI七層網(wǎng)絡(luò)模型由下至上為1至7層,分別為物理層(Physical layer),數(shù)據(jù)鏈路層(Data link layer),網(wǎng)絡(luò)層(Network layer),傳輸層(Transport layer),會(huì)話層(Session layer),表示層(Presentation layer),應(yīng)用層(Application layer)。其中上三層稱之為高層,定義應(yīng)用程序之間的通信和人機(jī)界面。什么意思呢,就是上三層負(fù)責(zé)把電腦能看懂的東西轉(zhuǎn)化為你能看懂的東西,或把你能看懂的東西轉(zhuǎn)化為電腦能看懂的東西。下四層稱之為底層,定義的是數(shù)據(jù)如何端到端的傳輸(end-to-end),物理規(guī)范以及數(shù)據(jù)與光電信號(hào)間的轉(zhuǎn)換。
應(yīng)用層,很簡(jiǎn)單,就是應(yīng)用程序。這一層負(fù)責(zé)確定通信對(duì)象,并確保由足夠的資源用于通信,這些當(dāng)然都是想要通信的應(yīng)用程序干的事情。
表示層,負(fù)責(zé)數(shù)據(jù)的編碼、轉(zhuǎn)化,確保應(yīng)用層的正常工作。這一層,是將我們看到的界面與二進(jìn)制間互相轉(zhuǎn)化的地方,就是我們的語(yǔ)言與機(jī)器語(yǔ)言間的轉(zhuǎn)化。數(shù)據(jù)的壓縮、解壓,加密、解密都發(fā)生在這一層。這一層根據(jù)不同的應(yīng)用目的將數(shù)據(jù)處理為不同的格式,表現(xiàn)出來(lái)就是我們看到的各種各樣的文件擴(kuò)展名。
會(huì)話層,負(fù)責(zé)建立、維護(hù)、控制會(huì)話,區(qū)分不同的會(huì)話,以及提供單工(Simplex)、半雙工(Half duplex)、全雙工(Full duplex)三種通信模式的服務(wù)。我們平時(shí)所知的NFS,RPC,X Windows等都工作在這一層。
傳輸層,負(fù)責(zé)分割、組合數(shù)據(jù),實(shí)現(xiàn)端到端的邏輯連接。數(shù)據(jù)在上三層是整體的,到了這一層開(kāi)始被分割,這一層分割后的數(shù)據(jù)被稱為段(Segment)。三次握手(Three-way handshake),面向連接(Connection-Oriented)或非面向連接(Connectionless-Oriented)的服務(wù),流控(Flow control)等都發(fā)生在這一層。
網(wǎng)絡(luò)層,負(fù)責(zé)管理網(wǎng)絡(luò)地址,定位設(shè)備,決定路由。我們所熟知的IP地址和路由器就是工作在這一層。上層的數(shù)據(jù)段在這一層被分割,封裝后叫做包(Packet),包有兩種,一種叫做用戶數(shù)據(jù)包(Data packets),是上層傳下來(lái)的用戶數(shù)據(jù);另一種叫路由更新包(Route update packets),是直接由路由器發(fā)出來(lái)的,用來(lái)和其他路由器進(jìn)行路由信息的交換。
數(shù)據(jù)鏈路層,負(fù)責(zé)準(zhǔn)備物理傳輸,CRC校驗(yàn),錯(cuò)誤通知,網(wǎng)絡(luò)拓?fù)?,流控等。我們所熟知的MAC地址和交換機(jī)都工作在這一層。上層傳下來(lái)的包在這一層被分割封裝后叫做幀(Frame)。
物理層,就是實(shí)實(shí)在在的物理鏈路,負(fù)責(zé)將數(shù)據(jù)以比特流的方式發(fā)送,接收,就不多說(shuō)了。
TCP/IP四層協(xié)議 應(yīng)用層 表示層 會(huì)話層 傳輸層 網(wǎng)絡(luò)層 數(shù)據(jù)鏈路層 物理層 網(wǎng)絡(luò)接口層
TCP/IP的多數(shù)應(yīng)用協(xié)議將OSI應(yīng)用層、表示層、會(huì)話層的功能合在一起,組成應(yīng)用層,典型協(xié)議有:HTTP、FTP、TELNET等;TCP/UDP協(xié)議對(duì)應(yīng)OSI的傳輸層,提供上層數(shù)據(jù)傳輸保障;IP協(xié)議對(duì)應(yīng)OSI的網(wǎng)絡(luò)層;TCP/IP的最底層功能由網(wǎng)絡(luò)接口層實(shí)現(xiàn),相當(dāng)于OSI的物理層和數(shù)據(jù)鏈路層,TCP/IP應(yīng)用已有的底層網(wǎng)絡(luò)實(shí)現(xiàn)傳輸,對(duì)該層并未作嚴(yán)格定義。