人與人之間的溝通靠的是語(yǔ)言痴鳄,計(jì)算機(jī)與計(jì)算機(jī)如何通信呢昆著?計(jì)算機(jī)和計(jì)算機(jī)的溝通主要靠的就是協(xié)議县貌。在計(jì)算機(jī)通信中,事先達(dá)成一個(gè)詳細(xì)的約定凑懂,并遵循這一約定進(jìn)行處理煤痕,這種約定就是協(xié)議。那么接谨,目前在計(jì)算機(jī)通信中摆碉,存在哪些協(xié)議呢?
- ISO制定了一個(gè)國(guó)際標(biāo)準(zhǔn)OSI脓豪,對(duì)通信系統(tǒng)進(jìn)行了標(biāo)準(zhǔn)話(huà)巷帝,這就是我們通常說(shuō)的7層OSI協(xié)議。
- 目前互聯(lián)網(wǎng)所遵守的協(xié)議是TCP/IP協(xié)議扫夜,由IETF所建議的楞泼,致力于推進(jìn)其標(biāo)準(zhǔn)化作業(yè)的一種協(xié)議。
協(xié)議的分層與OSI參考模型
ISO在制定標(biāo)準(zhǔn)化OSI之前历谍,對(duì)網(wǎng)絡(luò)體系結(jié)構(gòu)相關(guān)問(wèn)題進(jìn)行了充分的討論现拒,最終提出了作為通信協(xié)議設(shè)計(jì)指標(biāo)的OSI參考模型。這一模型將通信協(xié)議中必要的功能分成了7層望侈。在這一模型中印蔬,每個(gè)分層都接收由他下一層所提供的特定服務(wù),并且負(fù)責(zé)為自己的上一層提供特定的服務(wù)脱衙。上下層之間進(jìn)行交互時(shí)所遵守的約定叫做“接口”侥猬。同一層之間的交互遵守的約定叫做“協(xié)議”。OSI參考模型以及每一層的作用具體如下:
TCP/IP協(xié)議分層模型
20世紀(jì)90年代捐韩,ISO開(kāi)展了OSI這一國(guó)際標(biāo)準(zhǔn)協(xié)議的標(biāo)準(zhǔn)化進(jìn)程退唠,然而,OSI協(xié)議并沒(méi)有得到普及荤胁,真正被廣泛使用的是TCP/IP協(xié)議瞧预。OSI參考模型注重“通信協(xié)議必要的功能是什么”,而TCP/IP更強(qiáng)調(diào)“在計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議應(yīng)該開(kāi)發(fā)哪種程序”;雖然OSI并未被得到普及垢油,但是TCP/IP的各種協(xié)議其實(shí)也能對(duì)應(yīng)到OSI參考模型當(dāng)中盆驹,清楚這些協(xié)議分屬于OSI的哪一層,就能對(duì)該協(xié)議的目的有所了解滩愁。下面是各個(gè)協(xié)議與OSI參考模型中各個(gè)分層之間的對(duì)應(yīng)關(guān)系躯喇。
- 硬件(物理層):TCP/IP的最底層是負(fù)責(zé)數(shù)據(jù)傳輸?shù)挠布ㄒ蕴W(wǎng)或者電話(huà)線(xiàn)等物理層的設(shè)備硝枉。
- 網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層):網(wǎng)絡(luò)接口層是利用以太網(wǎng)中的數(shù)據(jù)連路層進(jìn)行通信廉丽,屬于接口層∑尬叮可以看做是設(shè)備驅(qū)動(dòng)程序:即在操作系統(tǒng)和硬件之間起橋梁作用正压。
- 互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層):互聯(lián)網(wǎng)層使用IP協(xié)議,相當(dāng)于OSI模型中的第3層網(wǎng)絡(luò)層弧可。IP協(xié)議基于IP地址轉(zhuǎn)發(fā)分包數(shù)據(jù)蔑匣,IP協(xié)議的作用是將分組數(shù)據(jù)包發(fā)送到目標(biāo)主機(jī)。TCP/IP分層中的互聯(lián)網(wǎng)層和傳輸層的功能通常是由操作系統(tǒng)提供棕诵。
- IP:IP是跨越網(wǎng)絡(luò)傳送數(shù)據(jù)包,使整個(gè)互聯(lián)網(wǎng)都能收到數(shù)據(jù)的協(xié)議凿将。IP協(xié)議書(shū)數(shù)據(jù)能夠發(fā)送到地球的另一端校套,這期間它使用IP地址作為主機(jī)的標(biāo)識(shí)隙弛。雖然IP也是分組交換的一種協(xié)議绽乔,但是他不具有重發(fā)機(jī)制。屬于非可靠性傳輸協(xié)議饥漫。
- ICMP:IP數(shù)據(jù)包在發(fā)送途中一單發(fā)生異常犀变,導(dǎo)致無(wú)法到達(dá)對(duì)端目標(biāo)地址時(shí)妹孙,需要給發(fā)送端發(fā)送一個(gè)發(fā)生異常的通知。ICMP就是為這一功能而制定的获枝,有時(shí)也被用來(lái)診斷網(wǎng)絡(luò)的健康狀況蠢正。
- 傳輸層:TCP/IP的傳輸層功能本身與OSI參考模型中的傳輸層類(lèi)似。傳輸層的主要功能就是能夠讓?xiě)?yīng)用程序之間實(shí)現(xiàn)通信省店。
- TCP:TCP是一種面向有連接的傳輸層協(xié)議嚣崭,他可以保證兩端通信主機(jī)之間的通信可達(dá)。TCP能夠正確處理在傳輸過(guò)程中丟包懦傍、傳輸順序亂掉等異常情況雹舀。然而,為了建立與斷開(kāi)連接粗俱,有時(shí)它需要至少7次的發(fā)包收包说榆,導(dǎo)致網(wǎng)絡(luò)流量的浪費(fèi)。
- UDP: UDP有別于TCP,他是一種面向無(wú)連接的傳輸層協(xié)議签财,UDP不會(huì)關(guān)注對(duì)端是否真的收到了傳送過(guò)去的數(shù)據(jù)串慰,如果需要檢查對(duì)端是否收到分組數(shù)據(jù)包,或者對(duì)端是否連接到網(wǎng)絡(luò)荠卷,則需要在應(yīng)用程序中實(shí)現(xiàn)模庐。UDP通常用于分組數(shù)據(jù)較少或者多播、廣播通信以及視頻通信等多媒體領(lǐng)域油宜。
- 應(yīng)用層(會(huì)話(huà)層以上以上的分層):TCP/IP的分層中掂碱,將OSI參考模型中的會(huì)話(huà)層、表示層和應(yīng)用層的功能都集中到了應(yīng)用程序中實(shí)現(xiàn)慎冤。
傳輸方式的分類(lèi)
- 面向有連接和無(wú)連接類(lèi)型
- 面向有連接類(lèi)型:面向有連接型中疼燥,在發(fā)送數(shù)據(jù)之前,需要在收發(fā)主機(jī)之間連接一條通信線(xiàn)路蚁堤。類(lèi)似人們平常打電話(huà)醉者,在通信傳輸前后,專(zhuān)門(mén)進(jìn)行建立和斷開(kāi)連接的處理披诗。
- 面向無(wú)連接類(lèi)型:面向無(wú)連接類(lèi)型則不要求建立和斷開(kāi)連接撬即。發(fā)送端可與任何時(shí)候自由發(fā)送數(shù)據(jù),反之呈队,接收端也永遠(yuǎn)不知道自己會(huì)從何時(shí)從哪里收到數(shù)據(jù)剥槐。因此,在面向無(wú)連接的情況下宪摧,接受端需要時(shí)常確認(rèn)是否收到了數(shù)據(jù)粒竖。類(lèi)似人們?nèi)ム]寄寄包裹,在面向無(wú)連接中几于,不需要確認(rèn)對(duì)端是否存在蕊苗,即使接收端不存在或者無(wú)法接受數(shù)據(jù),發(fā)送端也能將數(shù)據(jù)發(fā)送出去沿彭。
- 電路交換和分組交換
- 電路交換:主要用于過(guò)去的電話(huà)網(wǎng)朽砰。電路交換中,交換機(jī)主要負(fù)責(zé)數(shù)據(jù)的中轉(zhuǎn)處理膝蜈,計(jì)算機(jī)首先被連接到交換機(jī)锅移,交換機(jī)與交換機(jī)之間則由眾多通信線(xiàn)路再繼續(xù)連接。因此饱搏,計(jì)算機(jī)之間在發(fā)送數(shù)據(jù)時(shí)非剃,需要通過(guò)交換機(jī)與目標(biāo)主機(jī)建立通信電路,連接電路被稱(chēng)為建立連接推沸,建立連接以后备绽,用戶(hù)就可以一直使用這條電路券坞,直到該連接被斷開(kāi)為止。
- 分組交換:因?yàn)樵陔娐方粨Q中肺素,兩臺(tái)通信的主機(jī)之間需要建立連接恨锚,且是獨(dú)占線(xiàn)路進(jìn)行數(shù)據(jù)傳輸?shù)模渌?jì)算機(jī)只能等待這臺(tái)計(jì)算機(jī)處理結(jié)束后才有機(jī)會(huì)使用這條電路手收發(fā)數(shù)據(jù)倍靡。鑒于電路交換的弊端猴伶,人們想出了分組交換,即讓連接到通信電路的計(jì)算機(jī)將所要發(fā)送的數(shù)據(jù)分成多個(gè)數(shù)據(jù)包塌西,按照一定的順序排列之后分別發(fā)送他挎。有了分組交換,數(shù)據(jù)被細(xì)分之后捡需,所有的計(jì)算機(jī)就可以一齊手法數(shù)據(jù)办桨,提高了通信線(xiàn)路的利用率。在分組的過(guò)程中站辉,在每個(gè)分組的首部寫(xiě)入了發(fā)送端和接收端的地址呢撞,因此,一條線(xiàn)路可以同時(shí)為多個(gè)用戶(hù)提供服務(wù)饰剥。在分組交換過(guò)程中殊霞,有分組交換機(jī)(路由器)連接通信線(xiàn)路,分組交換的大致處理過(guò)程:發(fā)送端計(jì)算機(jī)將數(shù)據(jù)分組發(fā)送給路由器汰蓉,路由器收到這些分組數(shù)據(jù)以后脓鹃,緩存到自己的緩沖區(qū),然后再轉(zhuǎn)發(fā)給目標(biāo)計(jì)算機(jī)古沥。路由器接收到數(shù)據(jù)以后會(huì)順序緩存到響應(yīng)的隊(duì)列中,再以先進(jìn)先出的順序?qū)⑺麄冎鹨话l(fā)送出去娇跟。