網(wǎng)絡(luò)協(xié)議(Protocol)是一種特殊的軟件,是計算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)其功能的最基本機(jī)制。網(wǎng)絡(luò)協(xié)議的本質(zhì)是規(guī)則德谅,即各種硬件和軟件必須遵循的共同守則棍掐。網(wǎng)絡(luò)協(xié)議并不是一套單獨(dú)的軟件郑象,它融合于其他所有的軟件系統(tǒng)中希太,因此可以說熏纯,協(xié)議在網(wǎng)絡(luò)中無所不在桃熄。網(wǎng)絡(luò)協(xié)議遍及OSI通信模型的各個層次肺素,從我們非常熟悉的TCP/IP恨锚、HTTP、FTP協(xié)議倍靡,到OSPF猴伶、IGP等協(xié)議,有上千種之多塌西。對于普通用戶而言他挎,不需要關(guān)心太多的底層通信協(xié)議,只需要了解其通信原理即可捡需。在實(shí)際管理中办桨,底層通信協(xié)議一般會自動工作,不需要人工干預(yù)站辉。但是對于第三層以上的協(xié)議呢撞,就經(jīng)常需要人工干預(yù)了,比如TCP/IP協(xié)議就需要人工配置它才能正常工作庵寞。
局域網(wǎng)常用的三種通信協(xié)議分別是TCP/IP協(xié)議、NetBEUI協(xié)議和IPX/SPX協(xié)議薛匪。TCP/IP協(xié)議毫無疑問是這三大協(xié)議中最重要的一個捐川,作為互聯(lián)網(wǎng)的基礎(chǔ)協(xié)議,沒有它就根本不可能上網(wǎng)逸尖,任何和互聯(lián)網(wǎng)有關(guān)的操作都離不開TCP/IP協(xié)議古沥。不過TCP/IP協(xié)議也是這三大協(xié)議中配置起來最麻煩的一個,單機(jī)上網(wǎng)還好娇跟,而通過局域網(wǎng)訪問互聯(lián)網(wǎng)的話岩齿,就要詳細(xì)設(shè)置IP地址,網(wǎng)關(guān)苞俘,子網(wǎng)掩碼盹沈,DNS服務(wù)器等參數(shù)。
TCP/IP是個協(xié)議組吃谣,可分為三個層次:網(wǎng)絡(luò)層乞封、傳輸層和應(yīng)用層。
1.在網(wǎng)絡(luò)層有IP協(xié)議岗憋、ICMP協(xié)議肃晚、ARP協(xié)議、RARP協(xié)議和BOOTP協(xié)議仔戈。
2.在傳輸層中有TCP協(xié)議與UDP協(xié)議关串。
3.在應(yīng)用層有FTP拧廊、HTTP、TELNET晋修、SMTP吧碾、DNS等協(xié)議。
因此飞蚓,HTTP本身就是一個協(xié)議滤港,是從Web服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
TCP/IP協(xié)議族中包括上百個互為關(guān)聯(lián)的協(xié)議趴拧,不同功能的協(xié)議分布在不同的協(xié)議層溅漾, 幾個常用協(xié)議如下:
1、Telnet(Remote Login):提供遠(yuǎn)程登錄功能著榴,一臺計算機(jī)用戶可以登錄到遠(yuǎn)程的另一臺計算機(jī)上添履,如同在遠(yuǎn)程主機(jī)上直接操作一樣。
2脑又、FTP(File Transfer Protocol):遠(yuǎn)程文件傳輸協(xié)議暮胧,允許用戶將遠(yuǎn)程主機(jī)上的文件拷貝到自己的計算機(jī)上。
3问麸、SMTP(Simple Mail transfer Protocol):簡單郵政傳輸協(xié)議往衷,用于傳輸電子郵件。
4严卖、NFS(Network File Server):網(wǎng)絡(luò)文件服務(wù)器席舍,可使多臺計算機(jī)透明地訪問彼此的目錄。
5哮笆、UDP(User Datagram Protocol):用戶數(shù)據(jù)包協(xié)議来颤,它和TCP一樣位于傳輸層,和IP協(xié)議配合使用稠肘,在傳輸數(shù)據(jù)時省去包頭福铅,但它不能提供數(shù)據(jù)包的重傳,所以適合傳輸較短的文件项阴。
HTTP協(xié)議簡介
HTTP協(xié)議的主要特點(diǎn)可概括如下:
1.支持客戶/服務(wù)器模式验毡。
2.簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑帝嗡。請求方法常用的有GET晶通、HEAD、POST哟玷。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同狮辽。
由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小巢寡,因而通信速度很快喉脖。
3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記抑月。
4.無連接:無連接的含義是限制每次連接只處理一個請求树叽。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后谦絮,即斷開連接题诵。采用這種方式可以節(jié)省傳輸時間。
5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議层皱。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力性锭。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳叫胖,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大草冈。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快臭家。
HTTP協(xié)議是建立在請求/響應(yīng)模型上的疲陕。首先由客戶建立一條與服務(wù)器的TCP鏈接方淤,并發(fā)送一個請求到服務(wù)器钉赁,請求中包含請求方法、URI携茂、協(xié)議版本以及相關(guān)的MIME樣式的消息你踩。服務(wù)器響應(yīng)一個狀態(tài)行,包含消息的協(xié)議版本讳苦、一個成功和失敗碼以及相關(guān)的MIME式樣的消息带膜。
HTTP/1.0為每一次HTTP的請求/響應(yīng)建立一條新的TCP鏈接,因此一個包含HTML內(nèi)容和圖片的頁面將需要建立多次的短期的TCP鏈接鸳谜。一次TCP鏈接的建立將需要3次握手膝藕。
另外,為了獲得適當(dāng)?shù)膫鬏斔俣雀琅ぃ瑒t需要TCP花費(fèi)額外的回路鏈接時間(RTT)芭挽。每一次鏈接的建立需要這種經(jīng)常性的開銷滑废,而其并不帶有實(shí)際有用的數(shù)據(jù),只是保證鏈接的可靠性袜爪,因此HTTP/1.1提出了可持續(xù)鏈接的實(shí)現(xiàn)方法蠕趁。HTTP/1.1將只建立一次TCP的鏈接而重復(fù)地使用它傳輸一系列的請求/響應(yīng)消息,因此減少了鏈接建立的次數(shù)和經(jīng)常性的鏈接開銷辛馆。
結(jié)論:雖然HTTP本身是一個協(xié)議俺陋,但其最終還是基于TCP的。不過昙篙,目前腊状,有人正在研究基于TCP+UDP混合的HTTP協(xié)議。
Socket是什么呢瓢对?Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層寿酌,它是一組接口。在設(shè)計模式中硕蛹,Socket其實(shí)就是一個門面模式醇疼,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說法焰,一組簡單的接口就是全部秧荆,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議埃仪。