網(wǎng)絡(luò)通信程序開發(fā)_第1頁
網(wǎng)絡(luò)通信程序開發(fā)_第2頁
網(wǎng)絡(luò)通信程序開發(fā)_第3頁
網(wǎng)絡(luò)通信程序開發(fā)_第4頁
網(wǎng)絡(luò)通信程序開發(fā)_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)是計(jì)算機(jī)科學(xué)中蓬勃發(fā)展的技術(shù)之一,是計(jì)算機(jī)應(yīng)用的一個(gè)重要領(lǐng)域,同時(shí)也是涉及計(jì)算機(jī)硬件、軟件、通信技術(shù)和信息處理技術(shù)的一門新興的綜合性學(xué)科。它已廣泛應(yīng)用于學(xué)校、辦公自動(dòng)化、信息管理、工業(yè)自動(dòng)化等領(lǐng)域中,并引起了各國政府的高度重視,特別是Internet的逐步普及,已經(jīng)極大地影響和改變了人們的生活。計(jì)算機(jī)網(wǎng)絡(luò)已成為衡量一個(gè)國家的科技發(fā)展水平、信息化程度以及綜合國力的重要標(biāo)志。計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展歷史計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展象計(jì)算機(jī)發(fā)展一樣,雖然歷史不長(zhǎng),但速度很快。它是從簡(jiǎn)單的為解決遠(yuǎn)程運(yùn)算、遠(yuǎn)程信息處理而形成的專用聯(lián)機(jī)系統(tǒng)開始的。隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,又在聯(lián)機(jī)系統(tǒng)廣泛使用的基礎(chǔ)上,發(fā)展到了把多臺(tái)中心計(jì)算機(jī)連接起來,組成以共享資源為目的的計(jì)算機(jī)網(wǎng)絡(luò)。這樣就進(jìn)一步擴(kuò)大了計(jì)算機(jī)的應(yīng)用范圍,促進(jìn)了包括計(jì)算機(jī)技術(shù)、通信技術(shù)在內(nèi)的多個(gè)領(lǐng)域的飛速發(fā)展。計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展經(jīng)歷了以下幾個(gè)階段:具有通信功能的單機(jī)系統(tǒng)(面向終端)具有通信功能的多機(jī)系統(tǒng)(面向終端)計(jì)算機(jī)通信網(wǎng)絡(luò)計(jì)算機(jī)網(wǎng)絡(luò)計(jì)算機(jī)網(wǎng)絡(luò)的定義、功能計(jì)算機(jī)網(wǎng)絡(luò)的定義凡將地理位置不同,并具有獨(dú)立功能的多個(gè)計(jì)算機(jī)系統(tǒng),通過通信設(shè)備和線路將其連接起來,由功能完善的網(wǎng)絡(luò)軟件(網(wǎng)絡(luò)協(xié)議、信息交換方式、控制程序和網(wǎng)絡(luò)操作系統(tǒng))實(shí)現(xiàn)網(wǎng)絡(luò)資源共享的系統(tǒng)稱為計(jì)算機(jī)網(wǎng)絡(luò)。*計(jì)算機(jī)網(wǎng)絡(luò)的定義包含如下幾個(gè)內(nèi)容:獨(dú)立功能的計(jì)算機(jī)系統(tǒng),通信線路連接,共享資源。計(jì)算機(jī)網(wǎng)絡(luò)的功能數(shù)據(jù)通信:數(shù)據(jù)通信即數(shù)據(jù)傳送,是計(jì)算機(jī)網(wǎng)絡(luò)的最基本功能之一,用以實(shí)現(xiàn)計(jì)算機(jī)與終端或計(jì)算機(jī)之間傳送各種信息。利用這一功能,地理位置分散的計(jì)算機(jī)可通過計(jì)算機(jī)網(wǎng)絡(luò)連接起來,以實(shí)現(xiàn)數(shù)據(jù)信息的快速傳輸和集中處理。資源共享:充分利用計(jì)算機(jī)系統(tǒng)資源是組建計(jì)算機(jī)網(wǎng)絡(luò)的主要目標(biāo)之一。計(jì)算機(jī)資源包括軟件、硬件和數(shù)據(jù)。初級(jí)的是資源共享硬件設(shè)備,而現(xiàn)在資源共享主要是共享數(shù)據(jù)庫和軟件。提高計(jì)算機(jī)的可靠性:在單機(jī)使用的情況下,如沒有備用機(jī),則計(jì)算機(jī)或某一部件發(fā)生故障便引起停機(jī)。如有備用機(jī),則費(fèi)用會(huì)大為增設(shè)。當(dāng)計(jì)算機(jī)連成網(wǎng)絡(luò)之后,網(wǎng)絡(luò)中各臺(tái)計(jì)算機(jī)可以通過網(wǎng)絡(luò)彼此互為后備機(jī)。能均衡負(fù)載,互相協(xié)作:當(dāng)某個(gè)計(jì)算中心的計(jì)算任務(wù)很重時(shí),可通過網(wǎng)絡(luò)將某些任務(wù)傳送給空閑的計(jì)算機(jī)去處理。從而提高了計(jì)算機(jī)的工作效率,也提高了每一臺(tái)計(jì)算機(jī)的可用性。能進(jìn)行分布處理:對(duì)于綜合性的大型問題可以采用合適的算法,將任務(wù)分散到不同的計(jì)算機(jī)上進(jìn)行分布處理。各計(jì)算機(jī)連成網(wǎng)絡(luò)也有利于共同協(xié)作進(jìn)行重大科研的開發(fā)研究。能實(shí)現(xiàn)優(yōu)質(zhì)的通信:進(jìn)行各種信息交流,使通信向更高水平發(fā)展。提高了性能價(jià)格比:計(jì)算機(jī)組組成網(wǎng)絡(luò),其性能價(jià)格比有明顯的提高,雖然增加了通信費(fèi)用,然而維護(hù)使用費(fèi)用卻明顯下降。此外系統(tǒng)擴(kuò)充容易,運(yùn)行靈活方便,提高了運(yùn)行性能,這些是一般計(jì)算機(jī)系統(tǒng)無法相比的。計(jì)算機(jī)網(wǎng)絡(luò)的類型計(jì)算機(jī)網(wǎng)絡(luò)是由數(shù)據(jù)通信和數(shù)據(jù)處理相互結(jié)合的系統(tǒng)。計(jì)算機(jī)網(wǎng)絡(luò)可按不同的方法分類,為了使讀者對(duì)計(jì)算機(jī)網(wǎng)絡(luò)有一個(gè)清楚的認(rèn)識(shí),下面將從幾個(gè)不同角度對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的類型作一簡(jiǎn)單介紹。遠(yuǎn)程網(wǎng)和局部網(wǎng)專用網(wǎng)和公用網(wǎng)對(duì)等網(wǎng)和基于服務(wù)器文件共享和客戶/服務(wù)器:客戶機(jī)/服務(wù)器系統(tǒng)工作過程是:一個(gè)請(qǐng)求程序(Client)首先通過網(wǎng)絡(luò)協(xié)議(如TCP/IP及IPX/SPX等)與接收程序(Server)進(jìn)行連接,由客戶端發(fā)出請(qǐng)求給服務(wù)器,服務(wù)器則進(jìn)行相應(yīng)的處理,然后將結(jié)果送回客戶端。客戶機(jī)/服務(wù)器已廣泛應(yīng)用于網(wǎng)絡(luò)應(yīng)用中,最典型的應(yīng)用是在Internet上?;灸J绞荳eb服務(wù)器和瀏覽器的組合。計(jì)算機(jī)網(wǎng)絡(luò)的組成計(jì)算機(jī)網(wǎng)絡(luò)一般由數(shù)據(jù)傳輸線路、調(diào)制解調(diào)器、通信處理機(jī)、主計(jì)算機(jī)系統(tǒng)、集中器、各終端設(shè)備,數(shù)據(jù)交換的接口設(shè)備以及網(wǎng)絡(luò)軟件所組成。對(duì)于組成計(jì)算機(jī)網(wǎng)絡(luò)的硬件,由以下幾部分組成。計(jì)算機(jī)網(wǎng)絡(luò)的組成主機(jī):集中器通信處理機(jī)調(diào)制解調(diào)器終端通信線路計(jì)算機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 星形、樹形、總線結(jié)構(gòu)、環(huán)形、不規(guī)則形和全部互連。通信子網(wǎng)的通信方式:通常分成點(diǎn)到點(diǎn)通信方式和廣播通信方式兩大類。點(diǎn)到點(diǎn)通信方式所有信息傳輸都是在兩個(gè)相鄰有通信介質(zhì)直接連接的IMP(InterfaceMessageProcessor接口信息處理機(jī))之間進(jìn)行。如兩個(gè)要求通信的IMP沒有直接通路時(shí),需要經(jīng)由其它IMP。發(fā)送IMP將信息傳給相鄰的IMP,相鄰IMP將信息全部接收下來后,再傳給下一個(gè)IMP,一直到目的IMP。這種傳輸過程稱存儲(chǔ)轉(zhuǎn)發(fā),兩個(gè)直鄰IMP間進(jìn)行點(diǎn)到點(diǎn)的通信。適合于這種通信方式了子網(wǎng)拓?fù)浣Y(jié)構(gòu)示于圖1.4。這種通信方式的優(yōu)點(diǎn)是通信線路的利用率較高,在源與目的端多個(gè)IMP間的線路段是分時(shí)使用的。這對(duì)用戶在同一時(shí)間內(nèi)只使用一段線路,其它線路段仍可為別的用戶服務(wù)。這種點(diǎn)到點(diǎn)通信方式適合星形、樹形、環(huán)形、總線、不規(guī)則形廣播式通信方式所謂廣播式通信,網(wǎng)絡(luò)中一個(gè)結(jié)點(diǎn)發(fā)送的信息,其它各結(jié)點(diǎn)都能收到,例如,電視廣播是一種典型的廣播式通信。但是,計(jì)算機(jī)網(wǎng)絡(luò)的廣播式通信還有其特點(diǎn)。網(wǎng)中的結(jié)點(diǎn)都能發(fā)送和接收信息,網(wǎng)絡(luò)中所有結(jié)點(diǎn)都使用同一個(gè)通信信道發(fā)送信息,信息在信道上傳輸是雙向的。為了避免信息在信道上發(fā)生沖突,而導(dǎo)致通信失敗,在同一時(shí)間內(nèi)只允許一個(gè)結(jié)點(diǎn)往共用信道上發(fā)送信息。這就需要有相應(yīng)措施來解決多個(gè)結(jié)點(diǎn)爭(zhēng)勝信道的問題。另外,點(diǎn)到點(diǎn)通信時(shí)通信雙方的關(guān)系比較明確。在廣播式通信中收發(fā)關(guān)系是在通信時(shí)確定的,在信息分組中必須有信息源結(jié)點(diǎn)地址和目的結(jié)點(diǎn)地址。接收時(shí)根據(jù)目的地址,并從源地址得知信息的發(fā)送結(jié)點(diǎn)。廣播式通信方式大多用于局域網(wǎng)。廣播式通信子網(wǎng)的物理拓?fù)浣Y(jié)構(gòu)主要有總線結(jié)構(gòu)、環(huán)形、星形、衛(wèi)星或無線電計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)與OSI參考模型問題的提出所謂計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu),即是指整個(gè)網(wǎng)絡(luò)系統(tǒng)中的邏輯構(gòu)造和功能分配。便利整個(gè)系統(tǒng)中的雙方相同層次的實(shí)體稱對(duì)等實(shí)體。用“(N)—實(shí)體”表示為N層的實(shí)體。服務(wù)訪問點(diǎn)(SAPServiceAccessPoint)是下層實(shí)體為上層實(shí)體提供服務(wù)的接口。例如,(N)—實(shí)體通過該層的SAP向(N+1)—實(shí)體提供服務(wù),該接口簡(jiǎn)稱為(N)—SAP。一個(gè)(N)—實(shí)體可服務(wù)于一個(gè)或多個(gè)(N)—SAP,一個(gè)(N+1)—實(shí)體可使用一個(gè)或多個(gè)(N)—SAP來得服務(wù)。編址 在OSI模型中低層和高層的編址規(guī)則是不同的。數(shù)據(jù)鏈路層地址對(duì)網(wǎng)絡(luò)和每一個(gè)結(jié)點(diǎn)都有一個(gè)唯一的地址,有時(shí)也稱物理地址,即一個(gè)物理設(shè)備的具體地址。例如,大部份局域網(wǎng)的鏈路層地址駐留在網(wǎng)絡(luò)適配器(網(wǎng)卡)上,其48位長(zhǎng)的地址由定義協(xié)議標(biāo)準(zhǔn)的組織來分配,使每一個(gè)網(wǎng)絡(luò)適配器都有一個(gè)唯一的地址。網(wǎng)絡(luò)層地址為每個(gè)端系統(tǒng)提供確定的無二義的地址,稱NSAP。OSI模型中數(shù)據(jù)傳輸下圖給出了在OSI模型中數(shù)據(jù)傳輸?shù)氖疽鈭D。發(fā)送端用戶將數(shù)據(jù)傳送給接收端用戶。發(fā)送端用戶把數(shù)據(jù)(data)交給應(yīng)用層,應(yīng)用層實(shí)體在用戶數(shù)據(jù)前面加上應(yīng)用層頭部(AH),即成了應(yīng)用層協(xié)議數(shù)據(jù)單元(A—PDU),再傳給表示層。表示層將A—PDU附加上表示層的頭部PH,組成P—PDU。這一過程重復(fù)進(jìn)行一直傳送到物理層。物理層將L—PDU通過通信介質(zhì)傳送到接收方。在接收方,信息逐層向上傳遞。每經(jīng)過一層將本層的頭部(PCI)處理完后刪去,并送給上一層實(shí)體,最后數(shù)據(jù)到達(dá)接收端用戶。數(shù)據(jù)AH數(shù)據(jù)PHA-PDUSHP-PDUTHS-PDUNHT-PDUDLHN-PDUDLTDL-PDU圖1.16用戶數(shù)據(jù)在OSI模型中的傳輸過程PDU是對(duì)每一層包含該層協(xié)議和服務(wù)數(shù)據(jù)的數(shù)據(jù)單元的統(tǒng)稱。在實(shí)際中,不同層次的PDU都賦予不同的名稱。例如,在物理層稱位(bit),在數(shù)據(jù)鏈路層稱幀(frame),在網(wǎng)絡(luò)層稱分組或包(packet),在傳輸層及以上層次稱報(bào)文(message)。有時(shí)把協(xié)議稱為協(xié)議棧。通過傳輸數(shù)據(jù)的封裝過程也可以更好地理解協(xié)議棧的含義:發(fā)送數(shù)據(jù)時(shí)由高層向低層傳遞數(shù)據(jù),一層一層地加入?yún)f(xié)議頭,先加入高層協(xié)議頭,后加入低層協(xié)議頭,高層協(xié)議頭在里,低層協(xié)議頭在外。接收數(shù)據(jù)時(shí)由低層向高層傳遞數(shù)據(jù),一層一層地去掉協(xié)議頭,低層協(xié)議頭在外,高層協(xié)議頭在里,先去掉低層協(xié)議頭,后去掉高層協(xié)議頭。先加入的高層協(xié)議頭后去掉,后加入的低層協(xié)議頭先去----符合棧的先進(jìn)后出,后進(jìn)先出原則。在端用戶間傳輸數(shù)據(jù)的過程中可看出,數(shù)據(jù)在層間傳輸過程中,下層實(shí)體不改變上層PDU的結(jié)構(gòu)和內(nèi)容,只在前面增加本層的協(xié)議信息。但在三個(gè)層次中有例外,表示層實(shí)體可以對(duì)應(yīng)用層PDU根據(jù)需要進(jìn)行代碼轉(zhuǎn)換;數(shù)據(jù)鏈路層實(shí)體除在網(wǎng)絡(luò)層PDU前加頭部外,還在PDU后面加尾部和一個(gè)幀的首尾標(biāo)志,因?yàn)閿?shù)據(jù)鏈路層實(shí)體是從物理層接收位信息,必須在這些位信息中判斷接收一個(gè)完整的幀,用首尾標(biāo)志來定界幀的開始和結(jié)束,在尾部增加檢錯(cuò)碼,來檢查幀的正確性;而物理層實(shí)體不再增加任何信息,只是將數(shù)據(jù)鏈路層的幀按位串在傳輸介質(zhì)上發(fā)送出去。

TCP/IP基礎(chǔ)TCP/IP協(xié)議及在網(wǎng)絡(luò)中的地位網(wǎng)絡(luò)設(shè)計(jì)者在解決網(wǎng)絡(luò)體系結(jié)構(gòu)時(shí)經(jīng)常使用ISO/OSI(國際標(biāo)準(zhǔn)化組織/開放系統(tǒng)互連)七層模型,該模型每一層代表一定層次的網(wǎng)絡(luò)功能。最下面是物理層,它代表著進(jìn)行數(shù)據(jù)轉(zhuǎn)輸?shù)奈锢斫橘|(zhì),換句話說,即網(wǎng)絡(luò)電纜。其上是數(shù)據(jù)鏈路層,它通過網(wǎng)絡(luò)接口卡提供服務(wù)。最上層是應(yīng)用層,這里運(yùn)行著使用網(wǎng)絡(luò)服務(wù)的應(yīng)用程序。TCP/IP的發(fā)展過程及組織ISOC(InternetSociety)應(yīng)用軟件IABIETFIANAIRTFTCP/IP協(xié)議最早是為廣域網(wǎng)設(shè)計(jì)的一個(gè)協(xié)議集,目的是為了使不同不同體系結(jié)構(gòu)、不同硬件結(jié)構(gòu)的計(jì)算機(jī)能夠互相通信。,當(dāng)UNIX操作系統(tǒng)集成TCP/IP協(xié)議后,該協(xié)議隨UNIX的流行而迅速發(fā)展成為廣域網(wǎng)的標(biāo)準(zhǔn)協(xié)議,現(xiàn)在廣域網(wǎng)特別是Internet網(wǎng)廣泛使用該協(xié)議。TCP/IP是同ISO/OSI模型等價(jià)的。當(dāng)一個(gè)數(shù)據(jù)單元從網(wǎng)絡(luò)應(yīng)用程序下流到網(wǎng)絡(luò)接口卡,它通過了一列的TCP/IP模塊。這其中的每一步,數(shù)據(jù)單元都會(huì)同網(wǎng)絡(luò)另一端對(duì)等TCP/IP模塊所需的信息一起打成包。這樣當(dāng)數(shù)據(jù)最終傳到網(wǎng)卡時(shí),它成了一個(gè)標(biāo)準(zhǔn)的以太幀(假設(shè)物理網(wǎng)絡(luò)是以太網(wǎng))。而接收端的TCP/IP軟件通過剝?nèi)ヒ蕴W(wǎng)幀并將數(shù)據(jù)向上傳輸過TCP/IP棧來為處于接收狀態(tài)的應(yīng)用程序重新恢復(fù)原始數(shù)據(jù)(一種最好的了解TCP/IP工作實(shí)質(zhì)的方法,是使用探測(cè)程序來觀察網(wǎng)絡(luò)中的到處流動(dòng)的幀中被不同TCP/IP模塊所加上的信息)。這就是TCP/IP所做的:將許多小網(wǎng)聯(lián)成一個(gè)大網(wǎng)。并在這個(gè)大網(wǎng)也就是Internet上提供應(yīng)用程序所需要的相互通信的服務(wù)。TCP/IP協(xié)議在使用和發(fā)展過程中,逐漸形成了一個(gè)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議集,協(xié)議集除了TCP/IP核心協(xié)議之外,還包括了一些應(yīng)用層的協(xié)議,如HTTP,F(xiàn)TP,TELNET等,這些應(yīng)用層的協(xié)議都是建立在TCP/IP核心協(xié)議基礎(chǔ)上,利用不同的端口而實(shí)現(xiàn)的。TCP/IP是一族用來把不同的物理網(wǎng)絡(luò)聯(lián)在一起構(gòu)成網(wǎng)際網(wǎng)的協(xié)議。TCP/IP聯(lián)接獨(dú)立的網(wǎng)絡(luò)形成一個(gè)虛擬的網(wǎng),在網(wǎng)內(nèi)用來確認(rèn)各種獨(dú)立的不是物理網(wǎng)絡(luò)地址,而是IP地址。TCP/IP使用多層體系結(jié)構(gòu),該結(jié)構(gòu)清晰定義了每個(gè)協(xié)議的責(zé)任。TCP和UDP向網(wǎng)絡(luò)應(yīng)用程序提供了高層的數(shù)據(jù)傳輸服務(wù),并都需要IP來傳輸數(shù)據(jù)包。IP有責(zé)任為數(shù)據(jù)包到達(dá)目的地選擇合適的路由。Internet依賴TCP/IP協(xié)議組(IP,TCP,UDP,ICMP等)。在Internet主機(jī)上,兩個(gè)運(yùn)行著的應(yīng)用程序之間傳送要通過主機(jī)的TCP/IP堆棧上下移動(dòng)。在發(fā)送端TCP/IP模塊加在數(shù)據(jù)上的信息將在接收端對(duì)應(yīng)的TCP/IP模塊上濾掉,并將最終恢復(fù)原始數(shù)據(jù)。TCP/IP的重要性可以連接不同系統(tǒng)開放系統(tǒng),可通過Requestforcomments開發(fā)自己的TCP/IP解法與Internet連接提供強(qiáng)有力的WAN連接,可路由,為廣域網(wǎng)設(shè)計(jì)的TCP/IP與OSI參考模型的對(duì)應(yīng)關(guān)系OSI模型最初是用來作為開發(fā)網(wǎng)絡(luò)通信協(xié)議族的一個(gè)工業(yè)參考標(biāo)準(zhǔn)。通過嚴(yán)格遵守OSI模型,不同的網(wǎng)絡(luò)技術(shù)之間可以輕易地實(shí)現(xiàn)互操作。OSI模型是一種通用的、標(biāo)準(zhǔn)的、垂直分層模型,每層至少與一個(gè)協(xié)議相聯(lián)系,各層協(xié)議像棧一樣堆在一起,協(xié)議棧來自垂直分層和棧式協(xié)議這些網(wǎng)絡(luò)概念。沒有一個(gè)流行的網(wǎng)絡(luò)協(xié)議完全遵守OSI模型。TCP/IP也不例外,TCP/IP協(xié)議族有自己的模型,被稱為TCP/IP協(xié)議棧,又稱DOD模型(Departmentofdefense) OSI參考模型 TCP/IP模型應(yīng)用層ApplicationLayer應(yīng)用層ApplicationLayer表示層PresentLayer會(huì)話層SemissionLayer傳輸層TransportLayer傳輸層TransportLayer網(wǎng)絡(luò)層InternetLayer網(wǎng)絡(luò)層InternetLayer數(shù)據(jù)鏈路層DataLinkLayer網(wǎng)絡(luò)訪問層NetworkAccessLayer物理層PhysicalLayer網(wǎng)絡(luò)接口層:在模型的最底層是網(wǎng)絡(luò)接口層。本層負(fù)責(zé)將幀放入線路或從線路中取下幀。Internet層:Internet協(xié)議將數(shù)據(jù)包封裝成Internet數(shù)據(jù)包并運(yùn)行必要的路由算法。傳輸層:傳輸協(xié)議在計(jì)算機(jī)之間提供通信會(huì)話。數(shù)據(jù)投遞要求的方法決定了傳輸協(xié)議。應(yīng)用層:在模型的頂部是應(yīng)用層。本層是應(yīng)用程序進(jìn)入網(wǎng)絡(luò)的通道。在應(yīng)用層有許多TCP/IP工具和服務(wù),如:FTP、Telnet等等。該層為網(wǎng)絡(luò)用戶提供了許多實(shí)用應(yīng)用程。OSI模型包含許多被分割成層的組件。在網(wǎng)絡(luò)數(shù)據(jù)通信的過程中,每一層完成一個(gè)特定的任務(wù)。當(dāng)傳輸數(shù)據(jù)的時(shí)候,每一層接收到上面層格式化后的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行操作,然后把它傳給下面的層。當(dāng)接收數(shù)據(jù)的時(shí)候,每一層接收到下面層傳過來的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行解包,然后把它傳給上一層。OSI模型的一個(gè)關(guān)鍵概念是虛電路。就模型的層次而言,每一層都有一虛電路直接連接目的主機(jī)上的對(duì)應(yīng)層。就每一層而言,它的數(shù)據(jù)在目的層被解包的方式和被打包的方式是完全一樣的。每一層都利用其上層和下層的服務(wù)來維持它和遠(yuǎn)地主機(jī)上對(duì)應(yīng)層的虛電路。TCP/IP協(xié)議棧模型應(yīng)用程序應(yīng)用程序應(yīng)用層應(yīng)用程序應(yīng)用程序表示層硬件接口會(huì)話層硬件接口傳輸層 TCP UDP網(wǎng)絡(luò)層 ICMP IP IGMPRARPARP鏈路層RARPARP物理層

TCP/IP框架與數(shù)據(jù)流應(yīng)用層應(yīng)用程序應(yīng)用程序表示層應(yīng)用程序應(yīng)用程序會(huì)話層傳輸層 UDP TCP TCP UDP網(wǎng)絡(luò)層 IP IP硬件接口硬件接口鏈路層硬件接口硬件接口物理層傳輸線 TCP/IP協(xié)議族及內(nèi)部依賴關(guān)系TCP/IP協(xié)議族英文全稱:TransmissionControlProtocol/InternetProtocol中文全稱:傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議TCP/IP實(shí)際上是一族協(xié)議,不是單一的協(xié)議。TCP/IP通過Internet傳輸信息。以太網(wǎng)卡表示鏈路層,鏈路層(網(wǎng)卡)不同,不影響TCP/IP應(yīng)用程序簡(jiǎn)單說明:硬件協(xié)議層(面向硬件)不同介質(zhì):以太網(wǎng)、令牌網(wǎng)等;高速、低速按硬件要求對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行控制。IP層(網(wǎng)絡(luò)層)“點(diǎn)到點(diǎn)”的“數(shù)據(jù)報(bào)”傳輸機(jī)制,不保證傳輸?shù)目煽啃?。將各種“硬件協(xié)議”統(tǒng)一成IP數(shù)據(jù)報(bào)和IP地址形式。屏蔽硬件差異:物理幀、網(wǎng)絡(luò)地址。簡(jiǎn)潔清晰;效率高,對(duì)數(shù)據(jù)進(jìn)行“盡力傳遞”。一般是不允許應(yīng)用程序直接訪問IP層。TCP/UDP層(傳輸層)提供“端到端”的數(shù)據(jù)傳輸機(jī)制。格式化信息流。提供網(wǎng)絡(luò)進(jìn)程通信能力。提供高效的UPD和可靠的TCP。BSDUNIX的socket接口。應(yīng)用程序?qū)臃譃?種:依賴于無連接的UDP;依賴于有連接的TCP;或兩者均可。各個(gè)協(xié)議說明: 鏈路層有兩個(gè)地址協(xié)議:地址解析協(xié)議(ARP)和反向地址解析協(xié)議(RARP)物理地址6個(gè)字節(jié),IP地址4個(gè)字節(jié)。以太幀物理地址6個(gè)字節(jié),TCP/IP協(xié)議使用IP地址,地址解析協(xié)議和反向地址解析協(xié)議解決了地址轉(zhuǎn)換問題。網(wǎng)卡的物理地址實(shí)際上是在鏈路層上。

ARP(AddressResolutionProtocol):地址解析協(xié)議(IP->物理地址)

RARP(ReverseAddressResolutionProtocol):反向地址解析協(xié)議(物理地址->IP)如果一臺(tái)IP機(jī)器不帶磁盤,啟動(dòng)時(shí)無法知道其IP地址。只知道自己的MAC地址。RARP協(xié)議可以。它發(fā)出一個(gè)分組,其中包括其MAC地址,要求回答這一MAC地址的IP地址。一個(gè)稱為RARP服務(wù)器的特定機(jī)器作出響應(yīng)并回答。至此,這一身份危機(jī)就獲得解決。像一位優(yōu)秀的分析家一樣RARP使用已知信息,即機(jī)器的MAC地址,求得其IP地址完成機(jī)器ID的確定。IP層協(xié)議:

ICMP(InternetControlMessageProtocol):Internet控制信息協(xié)議

IGMP(InternetGroupManagementProtocol):Internet組管理協(xié)議TCP/UDP層協(xié)議:

UDP(UserDatagramProtocol):用戶數(shù)據(jù)報(bào)協(xié)議

TCP(TransmissionControlProtocol):傳輸控制協(xié)議應(yīng)用層協(xié)議:

SMTP(SimpleMailTransmissionProtocol):簡(jiǎn)單郵件傳送協(xié)議

FTP(FileTransmissionProtocol):文件傳輸協(xié)議

HTTP(HyperTextTransmissionProtocol):超文本傳輸協(xié)議Telnet:Telnet是協(xié)議中的變色龍,它的特殊性在于終端仿真。它允許遠(yuǎn)程客戶機(jī)(稱為TelnetClient)上的用戶訪問另外機(jī)器(稱為TelnetServer)的資源。Telnet完成這一任務(wù)的方法是下拉(pulling)一臺(tái)較快的Telnet服務(wù)器,將客戶機(jī)修飾成一臺(tái)終端,直接附加到遠(yuǎn)程網(wǎng)絡(luò)。這個(gè)設(shè)計(jì)實(shí)際上是軟件映像,可以與某遠(yuǎn)程主機(jī)互相交往的虛擬終端。這些仿真的終端工作在文件方式??梢詧?zhí)行顯示菜單這樣的步驟,這可使用戶有機(jī)會(huì)選擇菜單,在一個(gè)下拉的服務(wù)器上訪問應(yīng)用程序。用戶運(yùn)行Telnet客戶機(jī)軟件開始Telnet會(huì)話,然后登錄到Telnet服務(wù)器。Telnet的能力限于運(yùn)行應(yīng)用程序或窺視一下服務(wù)器上的內(nèi)容。它僅僅是一個(gè)“觀察“的協(xié)議。它不能用于文件共享,如下載資料。要想真正搞到資料必須運(yùn)用FTP協(xié)議。其它有關(guān)概念:

SNMP(SimpleNetworkManagementProtocol):簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議

NDIS(NetworkDeviceInterfaceSpecification):網(wǎng)絡(luò)驅(qū)動(dòng)接口規(guī)范

NFS(NetworkFileSystem):網(wǎng)絡(luò)文件系統(tǒng)互聯(lián)網(wǎng)協(xié)議(IP協(xié)議):無連接,不可靠的數(shù)據(jù)傳輸協(xié)議,既不保證數(shù)據(jù)正確傳輸,也不會(huì)在傳輸錯(cuò)誤時(shí)給主機(jī)發(fā)通知。一旦出現(xiàn)錯(cuò)誤,會(huì)給主機(jī)發(fā)一個(gè)ICMP報(bào)文報(bào)告錯(cuò)誤信息,ICMP報(bào)文也使用IP傳輸,所以不能保證錯(cuò)誤信息正確傳輸。不可靠協(xié)議不保證正確傳輸和出錯(cuò)后報(bào)告錯(cuò)誤信息,定義不可靠協(xié)議可以簡(jiǎn)化協(xié)議的設(shè)計(jì)和執(zhí)行,將保證可靠性的工作留給高層去完成。分割:傳輸?shù)臄?shù)據(jù)一旦大于網(wǎng)絡(luò)的MTU(最大傳輸單元),就必須對(duì)數(shù)據(jù)進(jìn)行分割。即將數(shù)據(jù)分割成多個(gè)可以直接在網(wǎng)絡(luò)上傳輸?shù)妮^小的數(shù)據(jù)包。這樣可以提高網(wǎng)絡(luò)的效率和性能。IP發(fā)送的中含有分割信息(分段偏移),接收端將根據(jù)分割信息將信息重組,即使接收順序與發(fā)送順序不一致也不會(huì)出錯(cuò)。重組和分割在網(wǎng)絡(luò)層與鏈路層間實(shí)現(xiàn),IP路由:當(dāng)不在一個(gè)子網(wǎng)內(nèi)的兩個(gè)主機(jī)相互通信時(shí),要保證數(shù)據(jù)正確傳輸?shù)侥康闹鳈C(jī),網(wǎng)絡(luò)中每一個(gè)接收到信息的節(jié)點(diǎn),將根據(jù)目的IP地址將數(shù)據(jù)轉(zhuǎn)發(fā)出去。路由器可以在以太網(wǎng)和令派環(huán)等網(wǎng)絡(luò)技術(shù)不同的網(wǎng)絡(luò)間傳輸數(shù)據(jù)傳輸層協(xié)議:傳輸層在應(yīng)用程序間傳送數(shù)據(jù)包,通信程序必須了解端口號(hào)??蛻舫绦虮仨氈婪?wù)程序的端口號(hào),這樣才能向服務(wù)器程序發(fā)送請(qǐng)求數(shù)據(jù)包,同時(shí)將客戶程序自己的端口號(hào)也發(fā)送給服務(wù)器程序,服務(wù)器程序處理請(qǐng)求數(shù)據(jù)包,并根據(jù)客戶程序的端口號(hào),向客戶程序發(fā)送響應(yīng)數(shù)據(jù)包。傳輸層不需要IP地址,而是由網(wǎng)絡(luò)層完成這個(gè)任務(wù),既在IP頭中加入源IP地址和目的IP地址等信息,IP在主機(jī)間傳輸數(shù)據(jù)。傳輸協(xié)議在應(yīng)用程序間傳輸數(shù)據(jù)。網(wǎng)絡(luò)通信程序的最終實(shí)現(xiàn)是在客戶應(yīng)用程序和服務(wù)器應(yīng)用程序之間傳輸信息,而通過Internet通信,就必須與TCP/IP的傳輸層交換數(shù)據(jù),傳輸層有兩個(gè)協(xié)議:傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。傳輸層端口:同一臺(tái)主機(jī)上有多個(gè)通信程序運(yùn)行,它們通信時(shí)都使用相同的IP地址,如何區(qū)分它們,即當(dāng)主機(jī)收到數(shù)據(jù)時(shí),把數(shù)據(jù)交給哪個(gè)通信程序處理,必須有一個(gè)標(biāo)識(shí),這就引入端口的概念。端口是節(jié)點(diǎn)的功能單元,數(shù)據(jù)可以通過這個(gè)單元進(jìn)入或離開數(shù)據(jù)網(wǎng)。它標(biāo)識(shí)一個(gè)通信功能的一個(gè)具體實(shí)現(xiàn),完成具體的一個(gè)通信功能。端口用16位二進(jìn)制數(shù)表示,也稱為端口號(hào)。一個(gè)通信程序可能完成多個(gè)通信功能,就有可能使用多個(gè)端口。Internet上廣泛使用的服務(wù)如Ftp,Telnet,Mail等都分配了固定的端口號(hào)。如下表:協(xié)議(服務(wù))端口回送協(xié)議7文件傳輸協(xié)議21Telnet協(xié)議23SMTP協(xié)議25平凡文件傳輸協(xié)議TFTP69Finger協(xié)議79超文本傳輸協(xié)議HTTP80POP3協(xié)議110*在winsock.h.中有端口定義。用戶數(shù)據(jù)報(bào)協(xié)議UDP:UDP協(xié)議建立在IP協(xié)議之上,與IP協(xié)議一樣提供無連接數(shù)據(jù)報(bào)傳輸。但增加提供了協(xié)議端口,以保證進(jìn)程通信。UDP不建立連接,是不可靠傳輸協(xié)議,不能保證數(shù)據(jù)被正確傳輸,出錯(cuò)也不發(fā)通知信息,需要其上的應(yīng)用程序進(jìn)行可靠性處理。UDP主要是面向于僅需要少量報(bào)文交換的場(chǎng)合,不需要為此建立和撤消連接,其開銷要比面向連接的傳輸小。UDP只是把數(shù)據(jù)簡(jiǎn)單地放在端口進(jìn)行傳輸,重點(diǎn)在端口。傳輸控制協(xié)議TCP:TCP協(xié)議的主要特點(diǎn)是可靠性高,它提供面向連接的流傳輸。在實(shí)際數(shù)據(jù)傳輸前,要在信源端和信宿端建立一條連接,若此連接建立不成功,則TCP信源端不會(huì)像UDP那樣貿(mào)然地向信宿端發(fā)送數(shù)據(jù)。面向連接的每一個(gè)報(bào)文都需要接收端確認(rèn)。TCP重點(diǎn)在連接,而不在端口。一個(gè)端口可以打開多個(gè)連接。確認(rèn)與超時(shí)重傳。擁塞控制(可變窗口)。PUSH操作。應(yīng)用層協(xié)議1.引導(dǎo)協(xié)議:BOOTPBOOTP能為無盤節(jié)點(diǎn)獲取其啟動(dòng)所需的所有信息,其功能比RARP強(qiáng)大。另外與RARP相比:BOOTP基于是UDP實(shí)現(xiàn)的,移置性好;BOOTP協(xié)議的信息交換量大,可充分利用硬件能力。無盤節(jié)點(diǎn)加電后,ROM中的啟動(dòng)程序開始運(yùn)行,利用其中的UDP/IP模塊(屬于基本輸入/輸出系統(tǒng)的一部分),以UDP數(shù)據(jù)報(bào)的形式發(fā)送BOOTP請(qǐng)求;服務(wù)器收到BOOTP請(qǐng)求后,利用UDP發(fā)回響應(yīng),內(nèi)含無盤節(jié)點(diǎn)所需的啟動(dòng)信息。經(jīng)過這樣一來一回的報(bào)文交換,BOOTP協(xié)議便完成了全部工作。無論客戶機(jī)發(fā)送BOOTP請(qǐng)求,還是服務(wù)器發(fā)回BOOTP響應(yīng),都需要采用有限廣播的形式。由此也可看出特殊IP地址的作用。通過BOOTP僅能夠獲得啟動(dòng)文件名等啟動(dòng)信息,并不能直接用于客戶機(jī)的啟動(dòng)。還需要進(jìn)一步地應(yīng)用別的協(xié)議(如:TFTP)來獲取啟動(dòng)用的內(nèi)存映象,并運(yùn)行之。2.遠(yuǎn)程登錄(TELNET,rlogin)本地用戶在本地終端上對(duì)遠(yuǎn)地系統(tǒng)進(jìn)行遠(yuǎn)程登錄。實(shí)際上是一個(gè)TCP連接。將本地終端上的鍵盤輸入逐鍵傳到遠(yuǎn)地機(jī)。將遠(yuǎn)地機(jī)輸出送回到本地終端。3. 文件傳輸協(xié)議(FTP)客戶端用戶調(diào)用ftp命令后,便與服務(wù)器建立連接,這個(gè)連接叫作控制連接,用于雙方傳輸控制信息,而非數(shù)據(jù)。一旦建立控制連接,雙方進(jìn)入交互式會(huì)話狀態(tài)。然后,客戶端每調(diào)用一個(gè)FTP命令,客戶與服務(wù)器之間在建立一個(gè)數(shù)據(jù)連接,雙方可以傳輸數(shù)據(jù)(比如文件拷貝等)。該命令執(zhí)行完后,在回到交互會(huì)話狀態(tài),可繼續(xù)執(zhí)行別的FTP命令。最后,用戶鍵入close和quit命令,退出FTP會(huì)話。FTP的命令多達(dá)60個(gè),很接近DOS的命令風(fēng)格。FTP命令有以下特點(diǎn):交互式用戶界面。文件格式說明。BINARY、ASCII、EBCDIC等等。權(quán)限控制。在請(qǐng)求文件傳輸之前,F(xiàn)TP要求客戶必須首先向服務(wù)器提交注冊(cè)名和口令,服務(wù)器將拒絕非法客戶的訪問。但也提供了匿名FTP(anonymousFTP)。4.單純文件傳輸協(xié)議(TFTP)建立在UDP數(shù)據(jù)報(bào)基礎(chǔ)上的TFTP短小實(shí)用,僅提供單純的文件傳輸,沒有權(quán)限控制,也不支持客戶與服務(wù)器之間的復(fù)雜交互過程。請(qǐng)求報(bào)文(讀/寫)指明對(duì)象文件的文件名。數(shù)據(jù)報(bào)文以塊(512字節(jié)/塊)為單位傳送數(shù)據(jù)。差錯(cuò)報(bào)文用于報(bào)告錯(cuò)誤。確認(rèn)報(bào)文用于確認(rèn)數(shù)據(jù)報(bào)文,其中指出正確收到的數(shù)據(jù)塊號(hào)。TFTP提供對(duì)稱性重傳,客戶和服務(wù)器都運(yùn)行超時(shí)重傳機(jī)制。服務(wù)器超時(shí)后重傳一數(shù)據(jù)塊,客戶超時(shí)后,重傳一確認(rèn)。對(duì)稱性重傳可提高TFTP的健壯性。5. 其它TCP/IP協(xié)議網(wǎng)絡(luò)文件系統(tǒng)NFS遠(yuǎn)程過程調(diào)用RPCIP地址TCP/IP不同的層也使用不同的名字:應(yīng)用層ApplicationLayer主機(jī)名或NetBIOS名、IP地址傳輸層TransportLayer端口網(wǎng)絡(luò)層InternetLayerIP地址網(wǎng)絡(luò)接口層NetworkInterfaceLayerMAC地址這些名稱中除了MAC地址是硬地址不可變之外(特殊的極意外的情況下也會(huì)有MAC地址重復(fù)的時(shí)候),其它名稱都是邏輯標(biāo)識(shí)、是可變的。在這里我們先討論一下IP地址。TCP/IP(TransmiteControlProtocol傳輸控制協(xié)議/InternetProtocol網(wǎng)際協(xié)議)已成為計(jì)算機(jī)網(wǎng)絡(luò)的一套工業(yè)標(biāo)準(zhǔn)協(xié)議。Internet網(wǎng)之所以能將廣闊范圍內(nèi)各種各樣網(wǎng)絡(luò)系統(tǒng)的計(jì)算機(jī)互聯(lián)起來,主要是因?yàn)閼?yīng)用了“統(tǒng)一天下”的TCP/IP協(xié)議。IP地址即Internet地址,網(wǎng)卡擁有地址,而不是主機(jī)擁有地址,以太網(wǎng)絡(luò)技術(shù)要求每個(gè)網(wǎng)卡擁有一個(gè)以太地址,互聯(lián)網(wǎng)要求每個(gè)網(wǎng)卡至少擁有一個(gè)IP地址。在應(yīng)用TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境中,為了唯一地確定一臺(tái)主機(jī),必須為TCP/IP協(xié)議指定三個(gè)參數(shù),即IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)地址。IP地址IP地址實(shí)際上是采用IP網(wǎng)間網(wǎng)層通過上層軟件完成“統(tǒng)一”網(wǎng)絡(luò)物理地址的方法,這種方法使用統(tǒng)一的地址格式,在統(tǒng)一管理下分配給主機(jī)。IP地址格式:Internet網(wǎng)上不同的主機(jī)有不同的IP地址。每個(gè)主機(jī)的IP地址都是由32比特,即4個(gè)字節(jié)組成的。為了便于用戶閱讀和理解,通常采用“點(diǎn)分十進(jìn)制表示方法”表示,每個(gè)字節(jié)為一部分,中間用點(diǎn)號(hào)分隔開來。如就是沈陽廣播電視大學(xué)網(wǎng)絡(luò)中心WEB服務(wù)器的IP地址。每個(gè)IP地址又可分為兩部分。網(wǎng)絡(luò)號(hào)表示網(wǎng)絡(luò)規(guī)模的大小,主機(jī)號(hào)表示網(wǎng)絡(luò)中主機(jī)的地址編號(hào)。在Ipv4中,IP地址由四個(gè)八位域(叫作octets)組成。Octets被點(diǎn)號(hào)分開代表在0到達(dá)55范圍內(nèi)的十進(jìn)制數(shù)字。用二進(jìn)制格式時(shí)共有32位組成,為了方便記憶,用點(diǎn)號(hào)每八位一分割,稱為點(diǎn)分十進(jìn)制。如:dotteddecimalnotation:00二進(jìn)制格式:11001100.10000001.00001000.11101100從理論上計(jì)算全部32位都用上可以允許有232超過四十億的地址!這幾乎可以為地球三分之二的人提供一個(gè)地址。但事實(shí)上,隨著Internet的發(fā)展,可用的IP地址已經(jīng)快要用完了。在將來的Ipv6中,IP地址由十六個(gè)八位域組成,共128位二進(jìn)制形式的IP地址組成,還是用點(diǎn)號(hào)每八位一分割,在現(xiàn)在看來是足夠了,但不知道還會(huì)有什么意想不到的事情令I(lǐng)P地址又不夠用了。二進(jìn)制轉(zhuǎn)換為十進(jìn)制2726252423222120765432101286432168421例:11001010.01100000.01001101.00100000202.96.77.32十進(jìn)制表示為2因?yàn)門CP/IP網(wǎng)絡(luò)是為大規(guī)模的互連網(wǎng)絡(luò)設(shè)計(jì)的,所以我們不能用全部的32位來表示網(wǎng)絡(luò)上主機(jī)的地址。如果這樣做了,我們將得到一個(gè)擁有數(shù)以億計(jì)網(wǎng)絡(luò)設(shè)備的巨大網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)不需要包路由設(shè)備和子網(wǎng)。這完全失去了包交換互連網(wǎng)的優(yōu)點(diǎn)。所以,我們需要使用IP地址的一部分來標(biāo)識(shí)網(wǎng)絡(luò),剩下的部分標(biāo)識(shí)其中的網(wǎng)絡(luò)設(shè)備。IP地址中用來標(biāo)識(shí)設(shè)備所在網(wǎng)絡(luò)的部分叫做網(wǎng)絡(luò)ID,標(biāo)識(shí)網(wǎng)絡(luò)設(shè)備的部分叫做主機(jī)ID。這些ID包含在同一個(gè)IP地址之中。IP地址可以分成兩部分:網(wǎng)絡(luò)ID和主機(jī)ID,網(wǎng)絡(luò)ID用于標(biāo)志一個(gè)子網(wǎng),以判斷通信的兩臺(tái)主機(jī)是否在一個(gè)子網(wǎng)上,即是否兩臺(tái)主機(jī)可以直接通信;主機(jī)ID用于標(biāo)志一臺(tái)主機(jī)。標(biāo)準(zhǔn)中把IP地址分為5類:按照網(wǎng)絡(luò)規(guī)模的大小,IP地址可以分為A、B、C、D、E五類,以容納不同大小的網(wǎng)絡(luò)。其中A、B、C類是三種主要的類型地址,D類專供多目傳送用的多目地址,E類用于擴(kuò)展備用地址。地址類定義了哪些位于用于網(wǎng)絡(luò)ID,哪些位用于主機(jī)ID,它同時(shí)也定義了可能的網(wǎng)絡(luò)數(shù)目及每個(gè)網(wǎng)絡(luò)中的主機(jī)數(shù)。A、B、C三類IP地址有效范圍如下表:地址類別高位網(wǎng)絡(luò)ID所用字節(jié)數(shù)主機(jī)ID所用字節(jié)數(shù)A類地址0xxxxxxx13B類地址10xxxxxx22C類地址110xxxxx31D類地址1110xxxx(用于多路廣播)E類地址11110xxx(用于將來擴(kuò)展)0123478162431A類:0NetIDHostIDB類:10NetIDHostIDC類:110NetIDHostIDD類:1110多目地址(multicastaddress)E類:11110留待后用1.A類1.x.x.x--126.x.x.x0bbbbbbbNetworkIDHostIDA類地址用于主機(jī)數(shù)目非常多的網(wǎng)絡(luò)。A類地址的最高位為0,接下來的7位完成網(wǎng)絡(luò)ID,剩余的24位二進(jìn)制位代表主機(jī)ID。A類地址允許126個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約一千七百萬臺(tái)主機(jī);第一個(gè)八位體是1~126。127是一個(gè)特殊的網(wǎng)絡(luò)ID,是用來檢查,TCP/IP協(xié)議工作狀態(tài)。2.B類128.x.x.x—191.x.x.x10bbbbbbNetworkIDHostIDB類地址用于中型到大型的網(wǎng)絡(luò)。B類地址的最高位為10,與接下來的14位完成網(wǎng)絡(luò)ID,剩余的16位二進(jìn)制位代表主機(jī)ID。B類地址允許16384個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約65000臺(tái)主機(jī);第一個(gè)八位體是128~191。3.C類192.x.x.x—223.x.x.x110bbbbbNetworkIDHostIDC類地址用于小型本地網(wǎng)絡(luò)。C類地址的最高位為110,與接下來的21位完成網(wǎng)絡(luò)ID,剩余的8位二進(jìn)制位代表主機(jī)ID。C類地址允許大約二百萬個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)有254臺(tái)主機(jī);第一個(gè)八位體是192~223。4.D類1110bbbbD類地址用于多重廣播組。一個(gè)多重廣播組可能包括1臺(tái)或更多主機(jī),或根本沒有。D類地址的最高位為1110;第一個(gè)八位體是224~239。剩余的位設(shè)計(jì)客戶機(jī)參加的特定組。在多重廣播操作中沒有網(wǎng)絡(luò)ID或主機(jī)ID,數(shù)據(jù)包將傳送到網(wǎng)絡(luò)中選定的主機(jī)子集中。只有注冊(cè)了多重廣播地址的主機(jī)才能接收到數(shù)據(jù)包。Microsoft支持D類地址,用于應(yīng)用程序?qū)⒍嘀貜V播數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)間的主機(jī)上,包括WINS和MicrosoftNetShow。E類11110bbbE類是一個(gè)通常不用的實(shí)驗(yàn)性地址:它保留作為以后使用。E類地址的最高四位通常為11110;第一個(gè)八位體是240~247。248~254無規(guī)定6.主機(jī)ID與網(wǎng)絡(luò)ID的規(guī)則:不能為全“0“或全“1“NID不能為“127“

唯一性特殊的IP地址廣播(直接廣播)地址:主機(jī)號(hào)各位全為“1”的IP地址用于廣播之用。所謂廣播是指同時(shí)向網(wǎng)上的所有主機(jī)發(fā)送報(bào)文。TCP/IP協(xié)議規(guī)定,主機(jī)號(hào)部分各位全為1的IP地址用于廣播。所謂廣播地址指同時(shí)向網(wǎng)上所有的主機(jī)發(fā)送報(bào)文,也就是說,不管物理網(wǎng)絡(luò)特性如何,Internet網(wǎng)支持廣播傳輸。如55就是B類地址中的一個(gè)廣播地址,你將信息送到此地址,就是將信息送給網(wǎng)絡(luò)號(hào)為136.78的所有主機(jī)。有限廣播地址:32比特全為“1”的IP地址用于本網(wǎng)廣播。有時(shí)需要在本網(wǎng)內(nèi)廣播,但又不知道本網(wǎng)的網(wǎng)絡(luò)號(hào)時(shí),TCP/IP協(xié)議規(guī)定32比特全為1的IP地址用于本網(wǎng)廣播,即55?!?”地址:全位位“0”的網(wǎng)絡(luò)號(hào)被解釋成“本”網(wǎng)絡(luò)。TCP/IP協(xié)議規(guī)定,各位全為0的網(wǎng)絡(luò)號(hào)被解釋成“本網(wǎng)絡(luò)”。若主機(jī)試圖在本網(wǎng)內(nèi)通信,但又不知道本網(wǎng)的網(wǎng)絡(luò)號(hào),那么,可以利用“0”地址?;厮偷刂罚篈類地址的127是一個(gè)保留地址,用于網(wǎng)絡(luò)軟件測(cè)試以及本地進(jìn)程間通信,叫作回送地址。含網(wǎng)絡(luò)號(hào)127的分組不能出現(xiàn)在任何網(wǎng)絡(luò)上。A類網(wǎng)絡(luò)地址的第一段十進(jìn)制數(shù)值為127是一個(gè)保留地址,如用于網(wǎng)絡(luò)軟件測(cè)試以及本地機(jī)進(jìn)程間通信。未知主機(jī)(只作源地址) 任何主機(jī)(只作目的地址)有限廣播A.255.255.255 A類地址的直接廣播(directedbroadcast)B.B.255.255 B類地址的直接廣播(directedbroadcast)C.C.C.255 C類地址的直接廣播(directedbroadcast) C類網(wǎng)絡(luò)193.1.1中的任何主機(jī)的直接廣播 C類網(wǎng)絡(luò)193.1.1中編號(hào)為3的主機(jī) C類網(wǎng)絡(luò)號(hào)為193.1.1的網(wǎng)絡(luò)ID “本網(wǎng)絡(luò)”中編號(hào)為3的主機(jī)(只作源地址)網(wǎng)絡(luò)ID主機(jī)ID代表意義全0全0無效.未知主機(jī)非全0全0具體的網(wǎng)絡(luò)全0非全0.全1本地網(wǎng)的具體主機(jī)全1非全0.全1無效非全0.非全1全1直接廣播全1全1有限廣播子網(wǎng)與子網(wǎng)掩碼網(wǎng)段是一個(gè)物理概念,是指在物理上獨(dú)立的一段網(wǎng)絡(luò)。子網(wǎng)是一個(gè)邏輯概念,子網(wǎng)中的各主機(jī)的NetID是相同的。子網(wǎng)與網(wǎng)段之間,可以是多對(duì)多的關(guān)系。劃分子網(wǎng)(subnetworking)有如下好處:混合使用多種技術(shù),如以太網(wǎng)和令牌網(wǎng)克服已有技術(shù)的缺陷,如超過每段中最大主機(jī)數(shù)目通過對(duì)交通重定向和減少廣播來減少網(wǎng)絡(luò)阻塞產(chǎn)生IP地址復(fù)用技術(shù)的動(dòng)因并不是IP地址的長(zhǎng)度不夠,而是為了避免主機(jī)號(hào)部分的浪費(fèi),將IP地址的主機(jī)號(hào)部分進(jìn)一步劃分為子網(wǎng)號(hào)和主機(jī)號(hào)兩部分。為了快速確定IP地址的哪部分代表網(wǎng)絡(luò)號(hào),哪部分代表主機(jī)號(hào),以及判斷兩個(gè)IP地址是否屬于同一網(wǎng)絡(luò),就產(chǎn)生了子網(wǎng)掩碼的概念。又叫子網(wǎng)尋徑,是使用最廣泛的IP網(wǎng)絡(luò)地址復(fù)用方式,目前已經(jīng)標(biāo)準(zhǔn)化,并成為IP地址模式的一部分。子網(wǎng)掩碼給出了整個(gè)IP地址的位模式,其中的1代表網(wǎng)絡(luò)部分,0代表IP主機(jī)號(hào)部分,應(yīng)用中也采用點(diǎn)式十進(jìn)制表示。用它來幫助確定IP地址網(wǎng)絡(luò)號(hào)在哪結(jié)束,主機(jī)號(hào)在哪開始。A、B、C三類網(wǎng)絡(luò)的標(biāo)準(zhǔn)缺省掩碼如下:類別 子網(wǎng)掩碼二進(jìn)制模式 子網(wǎng)掩碼點(diǎn)分十進(jìn)制A類 11111111.00000000.00000000.00000000 B類 11111111.11111111.00000000.00000000 C類 11111111.11111111.11111111.00000000 *高位全為1,低位全為0。網(wǎng)間網(wǎng)部分(網(wǎng)絡(luò)號(hào))本地部分(主機(jī)號(hào))網(wǎng)間網(wǎng)部分物理網(wǎng)絡(luò)主機(jī)如何劃分IP地址的本地部分:IP協(xié)議規(guī)定不同的網(wǎng)點(diǎn)可以采用不用的子網(wǎng)地址模式,它是一個(gè)32比特的位模式,叫子網(wǎng)掩碼。規(guī)定:若子網(wǎng)掩碼中的某些位為1,則IP地址中對(duì)應(yīng)位是網(wǎng)絡(luò)地址中的一位;若子網(wǎng)掩碼中的某位置0,則IP地址中對(duì)應(yīng)位是主機(jī)地址中的一位。網(wǎng)絡(luò)ID號(hào)主要用于判斷兩個(gè)主機(jī)是否在一個(gè)子網(wǎng)上,網(wǎng)絡(luò)ID號(hào)相同的兩個(gè)主機(jī)是在一個(gè)子網(wǎng)上,可以直接通信。網(wǎng)絡(luò)ID號(hào)與主機(jī)ID號(hào)計(jì)算方法如下:網(wǎng)絡(luò)ID號(hào)=IP地址&&子網(wǎng)掩碼主機(jī)ID號(hào)=IP地址&&子網(wǎng)掩碼的反碼也可以用非標(biāo)準(zhǔn)子網(wǎng)掩碼來劃分子網(wǎng),參見后面的例子。非標(biāo)準(zhǔn)子網(wǎng)掩碼常用值速查表:二進(jìn)制 十進(jìn)制 簡(jiǎn)便算法 00000000 0 256-256 10000000 128 256-128 11000000 192 256-64 11100000 224 256-32 11110000 240 256-16 11111000 248 256-8 11111100 252 256-4 11111110 254 256-2 11111111 255 256-1IP地址和子網(wǎng)掩碼的使用一般直觀地采用“點(diǎn)分十進(jìn)制表示”,如:回送地址→;子網(wǎng)?!?。還有一種不常用的三維組表示法:{<NetID>,<SubnetID>,<HostID>},如:IP地址(或子網(wǎng)模)→{128.10,-1,0}。如果在Internet網(wǎng)上進(jìn)行通信的兩臺(tái)主機(jī)的IP地址分別為0和2,那么子網(wǎng)掩碼分別對(duì)兩個(gè)IP地址進(jìn)行與(and)運(yùn)算后,得出網(wǎng)絡(luò)號(hào)和主機(jī)號(hào),并且結(jié)果一致,可以判斷這兩個(gè)IP地址屬于同一個(gè)網(wǎng)絡(luò)。為了在網(wǎng)絡(luò)分段情況下有效地利用IP地址,可以攫取主機(jī)號(hào)的高位部分作為子網(wǎng)號(hào),從通常的八位界限中擴(kuò)展子網(wǎng)掩碼,用來創(chuàng)建某類地址的更多子網(wǎng)。但創(chuàng)建更多的子網(wǎng)時(shí),在每個(gè)子網(wǎng)上的可用主機(jī)地址數(shù)目會(huì)減少。要確定更多子網(wǎng)的子網(wǎng)掩碼,首先應(yīng)確定傳輸IP信息流的網(wǎng)段的數(shù)目,然后再確定能夠容納網(wǎng)段數(shù)的最低子網(wǎng)掩碼數(shù)目,記住千萬不要使用包含全0或全1的網(wǎng)絡(luò)地址。網(wǎng)關(guān)若要使兩個(gè)完全不同的網(wǎng)絡(luò)(異構(gòu)網(wǎng))連接在一起,一般使用網(wǎng)關(guān),在Internet中兩個(gè)網(wǎng)絡(luò)也要通過一臺(tái)稱為網(wǎng)關(guān)的計(jì)算機(jī)實(shí)現(xiàn)互聯(lián)。這臺(tái)計(jì)算機(jī)能根據(jù)用戶通信目標(biāo)計(jì)算機(jī)的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡(luò),同時(shí),它還將外界發(fā)送給屬于本地網(wǎng)絡(luò)計(jì)算機(jī)的信息接收過來,它是一個(gè)網(wǎng)絡(luò)與另一個(gè)網(wǎng)絡(luò)相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ?,該通道被賦予一個(gè)IP地址,這個(gè)IP地址稱為網(wǎng)關(guān)地址。5.IP地址和子網(wǎng)掩碼舉例C類地址-255共256個(gè)地址如子網(wǎng)掩碼為,所有地址都在一個(gè)子網(wǎng)上,可用254個(gè)地址。如子網(wǎng)掩碼為24,則地址分布在8個(gè)子網(wǎng)上。每個(gè)子網(wǎng)有32個(gè)地址,其中30個(gè)可用。 總的地址范圍 可用地址范圍 0段 -31 -301段 2-63 3-622段 4-95 5-943段 6-127 7-1264段 28-159 29-1585段 60-191 61-1906段 92-223 93-2217段 24-255 25-254各子網(wǎng)的子網(wǎng)掩碼可以不同,如2,3段可以合并為一個(gè)段,將此段的子網(wǎng)掩碼設(shè)為92;也可以將4,5,6,7段可以合并為一個(gè)段,將此段的子網(wǎng)掩碼設(shè)為28;但必須保證各子網(wǎng)的IP地址不重復(fù)。在同一個(gè)子網(wǎng)上的各個(gè)主機(jī)之間可以直接通信,不在同一個(gè)子網(wǎng)上的主機(jī)之間不可以直接通信,即使都連在一個(gè)集線器上也不可以直接通信,必須通過路由器才能互相通信。1段 3 5 2段4 2 60路由器設(shè)兩個(gè)IP地址,與1段相連的端,設(shè)一個(gè)1段IP地址,如3;與2段相連的端,設(shè)一個(gè)2段IP地址,如5;這時(shí)1段主機(jī)的網(wǎng)關(guān)IP地址設(shè)為3;2段主機(jī)的網(wǎng)關(guān)IP地址設(shè)為5,這樣1段主機(jī)就可以和2段主機(jī)通信了。TCP/IP協(xié)議的格式IP數(shù)據(jù)報(bào)格式048162031版本頭標(biāo)長(zhǎng)服務(wù)類型報(bào)文總長(zhǎng)標(biāo)識(shí)標(biāo)志片偏移生存時(shí)間協(xié)議頭標(biāo)校驗(yàn)和信源IP地址信宿IP地址IP選項(xiàng)數(shù)據(jù)區(qū)填充域數(shù)據(jù)區(qū)說明:版本:長(zhǎng)度為4比特。不同IP協(xié)議版本,其數(shù)據(jù)報(bào)格式有所差別。IP軟件首先檢查版本號(hào),以確保版本正確。IP軟件拒絕處理協(xié)議版本不同的數(shù)據(jù)報(bào)。頭標(biāo)長(zhǎng):4比特長(zhǎng)。指出以32比特字長(zhǎng)計(jì)的報(bào)頭長(zhǎng)度?!?。長(zhǎng)度不足部分由填充域添“0”湊齊。(即實(shí)際字節(jié)數(shù)為頭標(biāo)長(zhǎng)*5)服務(wù)類型:長(zhǎng)度為1字節(jié)。分為兩部分:優(yōu)先權(quán)(012)和傳輸類型(345)。優(yōu)先權(quán):從0到7,“0”表示一般優(yōu)先權(quán),“7”表示網(wǎng)絡(luò)控制優(yōu)先權(quán)。大多數(shù)網(wǎng)絡(luò)軟件對(duì)此不予理睬。傳輸類型:從低位到高位依次排列:“D”代表低延遲;“T”代表高吞吐率;“R”代表高可靠性。上述3位請(qǐng)求,僅供IP軟件參考,不具有強(qiáng)制性,甚至可以完全忽略這些請(qǐng)求。報(bào)文總長(zhǎng):以字節(jié)為單位指示整個(gè)IP數(shù)據(jù)報(bào)的長(zhǎng)度,包括頭標(biāo)長(zhǎng)和數(shù)據(jù)區(qū)長(zhǎng)。寬度為16比特,所以IP數(shù)據(jù)報(bào)最長(zhǎng)可達(dá)65535字節(jié)。標(biāo)識(shí)、標(biāo)志、片偏移:用于數(shù)據(jù)報(bào)封裝時(shí)的分片和片的重組?!皹?biāo)識(shí)”域由信源機(jī)付與,分片時(shí)要不加修改地復(fù)制;“標(biāo)志”域只有低兩位有效,分別表示:片未完、不分片;“片偏移”域以8字節(jié)為單位指出本片數(shù)據(jù)在初始數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)中的偏移量。生存時(shí)間:用于避免隨機(jī)尋徑時(shí),無休止的IP報(bào)文流動(dòng)。以秒為單位,一旦時(shí)間小于0,就從網(wǎng)中刪除,并向信源機(jī)發(fā)回出錯(cuò)信息(見ICMP)。協(xié)議:創(chuàng)建該數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)數(shù)據(jù)的高級(jí)協(xié)議類型,如:TCP、UDP。頭標(biāo)校驗(yàn)和:對(duì)頭標(biāo)的其它部分按16為求異或,結(jié)果取反。信源IP地址、信宿IP地址:在傳輸過程中保持不變(分片、重組時(shí))。格式見IP地址說明部分。IP選項(xiàng)數(shù)據(jù)區(qū):主要用于控制和測(cè)試用。作為IP協(xié)議的組成部分,該域是任選的。各選項(xiàng)由3部分構(gòu)成:選項(xiàng)碼、長(zhǎng)度和選項(xiàng)數(shù)據(jù),其中前兩部分各占1各字節(jié)。數(shù)據(jù)區(qū):IP協(xié)議不保證該域數(shù)據(jù)傳輸?shù)目煽啃?。傳輸層協(xié)議:TCP和UDP傳輸層端口TCP/UDP提出協(xié)議端口的概念,用于標(biāo)識(shí)通信的進(jìn)程。每個(gè)端口擁有一個(gè)叫端口號(hào)(portnumber)整數(shù)標(biāo)識(shí)符,用于區(qū)分不同端口。由于TCP和UDP是兩個(gè)完全獨(dú)立的軟件模塊,因此各自的端口號(hào)也相互獨(dú)立。二者均允許16比特的端口值。TCP/IP將端口分為2部分:保留端口、自由端口。保留端口用于系統(tǒng)的公用服務(wù)進(jìn)程,TCP和UDP均規(guī)定小于256的端口號(hào)才能作為保留端口。例如:協(xié)議端口號(hào)網(wǎng)絡(luò)關(guān)鍵字UNIX關(guān)鍵字說明UDP42NAMESERVERname主機(jī)名字服務(wù)器53DOMAINnameserver域名服務(wù)器67BOOTPSbootps啟動(dòng)協(xié)議服務(wù)器69TFTPtftp簡(jiǎn)單文件傳輸111SUNRPCsunrpc微系統(tǒng)公司RPCTCP20FTP-DATAftp-data文件傳輸服務(wù)器(數(shù)據(jù)連接)21FTPftp文件傳輸服務(wù)器(控制連接)23TELNETTelnet遠(yuǎn)程終端服務(wù)器42NAMESERVERname主機(jī)名字服務(wù)器53DOMAINnameserver域名服務(wù)器用戶數(shù)據(jù)報(bào)協(xié)議UDP報(bào)文格式UDP的報(bào)頭格式如下:08162431UDP信源端口UDP信宿端口UDP報(bào)文總長(zhǎng)UDP校驗(yàn)和數(shù)據(jù)區(qū)說明:報(bào)頭字段名位數(shù)說明源端口號(hào)目的端口號(hào)消息長(zhǎng)度校驗(yàn)和數(shù)據(jù)區(qū)16161616XX發(fā)送端的UDP端口,當(dāng)不需要返回?cái)?shù)據(jù)時(shí),該域置0接收端的UDP端口UDP報(bào)文的長(zhǎng)度(以字節(jié)計(jì),≥8)用于驗(yàn)證報(bào)頭是否損壞發(fā)送的數(shù)據(jù)說明UDP信源端口:發(fā)送端UDP端口,當(dāng)不需要返回?cái)?shù)據(jù)時(shí),該域置0。UDP信宿端口:接收端UDP端口。UDP報(bào)文總長(zhǎng):以字節(jié)計(jì)的整個(gè)報(bào)文長(zhǎng)度,≥8。UDP校驗(yàn)和:可選域。置0時(shí)表明未選。數(shù)據(jù)區(qū):長(zhǎng)度不定。傳輸控制協(xié)議TCP報(bào)文格式048162431 TCP源端口TCP目的端口32位序列號(hào)32位確認(rèn)號(hào)數(shù)據(jù)偏移4位保留6位URGACKPSHRSTSYNFIN16位窗口大小16位TCP校驗(yàn)和16位緊急指針選項(xiàng)(如果有)填充項(xiàng)數(shù)據(jù)區(qū)TCP的報(bào)頭格式說明如下:報(bào)頭字段名位數(shù)說明源端口號(hào)目的端口號(hào)序號(hào)(SEQ)確認(rèn)號(hào)(ACK)數(shù)據(jù)偏移控制字段URGACKPSHRSTSYNFIN窗口大小校驗(yàn)和緊急指針選項(xiàng)填充1616323246111111161616可變可變本地通信端口,支持TCP的多路復(fù)用機(jī)制遠(yuǎn)地通信端口,支持TCP的多路復(fù)用機(jī)制數(shù)據(jù)段第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)SYN段的SYN序號(hào)表示本地希望接收的下一個(gè)數(shù)據(jù)字節(jié)的序號(hào)指出該段中數(shù)據(jù)的超始位置(以32位為單位)URG,ACK,PSH,RST,SYN,FIN緊急指針字段有效標(biāo)志,即該段中攜帶緊急數(shù)據(jù)確認(rèn)號(hào)字段有效標(biāo)志PUSH操作的標(biāo)志要求異常終止通信連接的標(biāo)志建立同步連接的標(biāo)志本地?cái)?shù)據(jù)發(fā)送已結(jié)束,終止連接的標(biāo)志本地接收窗口尺寸,即本地接收緩沖區(qū)大小包括TCP報(bào)頭和數(shù)據(jù)在內(nèi)的校驗(yàn)和從段序號(hào)開始的正向位移,指向緊急數(shù)據(jù)的最后一個(gè)字節(jié)提供任選的服務(wù)保證TCP報(bào)頭以32位為邊界對(duì)齊其中兩個(gè)端口域、校驗(yàn)和域、數(shù)據(jù)區(qū)等跟UDP報(bào)文相同。TCP段其余各域的含義說明如下:序號(hào):指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置。確認(rèn)號(hào):指出本機(jī)希望下一個(gè)接收的字節(jié)的序號(hào)。HLEN(頭標(biāo)長(zhǎng)度):以32比特為單位的段頭標(biāo)長(zhǎng)度。該域是針對(duì)變長(zhǎng)的“選項(xiàng)”域設(shè)計(jì)的。控制字段碼位:指出段的目的與內(nèi)容。窗口:用于通告接收端接收緩沖區(qū)的大小。* 以太幀在數(shù)據(jù)鏈路層的格式目的地址 源地址 幀類型 幀數(shù)據(jù) 48b 48b 16b 368-12000b * 以太幀在物理層的格式:即在傳輸介質(zhì)上的形式前導(dǎo) 目的地址 源地址 幀類型 幀數(shù)據(jù) 校驗(yàn)碼64b 48b 48b 16b 368-12000b 32b數(shù)據(jù)封裝及協(xié)議格式示例數(shù)據(jù)封裝:應(yīng)用程序在發(fā)送數(shù)據(jù)時(shí),將數(shù)據(jù)按協(xié)議層次逐層打包,然后將數(shù)據(jù)發(fā)送到傳輸介質(zhì)上。接收方在接收數(shù)據(jù)時(shí),將數(shù)據(jù)按協(xié)議層次逐層解釋,最后將數(shù)據(jù)傳給應(yīng)用程序。應(yīng)用報(bào)文->TCP段或UDP數(shù)據(jù)報(bào)->IP包通過傳輸數(shù)據(jù)的封裝也可以更好地理解協(xié)議棧的含義:發(fā)送數(shù)據(jù)時(shí)由高層向低層傳遞數(shù)據(jù),一層一層地加入?yún)f(xié)議頭,先加入高層協(xié)議頭,后加入低層協(xié)議頭,高層協(xié)議頭在里,低層協(xié)議頭在外。接收數(shù)據(jù)時(shí)由低層向高層傳遞數(shù)據(jù),一層一層地去掉協(xié)議頭,低層協(xié)議頭在外,高層協(xié)議頭在里,先去掉低層協(xié)議頭,后去掉高層協(xié)議頭。先加入的高層協(xié)議頭后去掉,后加入的低層協(xié)議頭先去----符合棧的先進(jìn)后出,后進(jìn)先出原則。TCP數(shù)據(jù)的封裝:用戶數(shù)據(jù)應(yīng)用頭用戶數(shù)據(jù)TCP頭應(yīng)用頭用戶數(shù)據(jù)IP頭TCP頭應(yīng)用頭用戶數(shù)據(jù)以太幀頭IP頭TCP頭應(yīng)用頭用戶數(shù)據(jù)以太幀尾UDP數(shù)據(jù)的封裝:用戶數(shù)據(jù)應(yīng)用頭用戶數(shù)據(jù)UDP頭應(yīng)用頭用戶數(shù)據(jù)IP頭UDP頭應(yīng)用頭用戶數(shù)據(jù)以太幀頭IP頭UDP頭應(yīng)用頭用戶數(shù)據(jù)以太幀尾UDP格式示例(含IP)FRAME:BaseframepropertiesETHERNET:ETYPE=0x0800:Protocol=IP:DODInternetProtocolETHERNET:Destinationaddress:0080C847DF38ETHERNET:.......0=IndividualaddressETHERNET:......0.=UniversallyadministeredaddressETHERNET:Sourceaddress:00107B3A4401ETHERNET:.......0=NoroutinginformationpresentETHERNET:......0.=UniversallyadministeredaddressETHERNET:FrameLength:90(0x005A)ETHERNET:EthernetType:0x0800(IP:DODInternetProtocol)ETHERNET:EthernetData:Numberofdatabytesremaining=76(0x004C)IP:ID=0xE798;Proto=UDP;Len:76IP:Version=4(0x4)IP:HeaderLength=20(0x14)IP:ServiceType=0(0x0)IP:Precedence=RoutineIP:...0....=NormalDelayIP:....0...=NormalThroughputIP:.....0..=NormalReliabilityIP:TotalLength=76(0x4C)IP:Identification=59288(0xE798)IP:FlagsSummary=2(0x2)IP:.......0=LastfragmentindatagramIP:......1.=CannotfragmentdatagramIP:FragmentOffset=0(0x0)bytesIP:TimetoLive=244(0xF4)IP:Protocol=UDP-UserDatagramIP:Checksum=0xA4F0IP:SourceAddress=3IP:DestinationAddress=IP:Data:Numberofdatabytesremaining=56(0x0038)UDP:SrcPort:Unknown,(7699);DstUDP:SourceUDP:DestinationUDP:Totallength=56(0x38)bytesUDP:UDPChecksum=0xE649UDP:Data:Numberofdatabytesremaining=48(0x0030)00000:0080C847DF3800107B3A440108004500...G.8..{:D...E.00010:004CE7984000F411A4F0CA661849CA60.L..@......f.I.`00020:4D071E131E130038E649000000010082M......8.I......00030:C0F90000000000000000000000000000................00040:09C50000020000000004000015AF0000................00030:C0F90000000000000000000000000000................00040:09C50000020000000004000015AF0000................00050:00010000000000000001..........說明:00-0D 以太幀(14B)00-05 0080C847DF38 目標(biāo)機(jī)MAC地址(6B)06-0B 00107B3A4401 源機(jī)MAC地址(6B)0C-0D 0800 類型(2B) 0E-21 IP頭格式(20B)0E 45 高4位:版本4;低4位:5,IP頭長(zhǎng)4*5=20B0F 00 服務(wù)類型0028 IP總長(zhǎng)0028H=40B12-13 9225 標(biāo)識(shí)9225H=3741314 40 高4位4,標(biāo)志14-15 4000 14B低4位和15B:偏移016 80 生存期17 06 協(xié)議UDP18-19 A4F0 IP頭校驗(yàn)和A4F01A-1D CA661849 信源IP地址(3)1E-21 CA604D07 信宿IP地址() *IP頭到此結(jié)束22-29 UDP頭格式(8B)1E13 信源端口 *UDP從此開始24-25 1E13 信宿端口26-27 0038 UDP消息的長(zhǎng)度(38H=56B)28-29 E649 UDP校驗(yàn)和2A- UDP數(shù)據(jù)TCP格式示例(含IP)FRAME:BaseframepropertiesETHERNET:ETYPE=0x0800:Protocol=IP:DODInternetProtocolETHERNET:Destinationaddress:009027869819ETHERNET:.......0=IndividualaddressETHERNET:......0.=UniversallyadministeredaddressETHERNET:Sourceaddress:0080C8483249ETHERNET:.......0=NoroutinginformationpresentETHERNET:......0.=UniversallyadministeredaddressETHERNET:FrameLength:54(0x0036)ETHERNET:EthernetType:0x0800(IP:DODInternetProtocol)ETHERNET:EthernetData:Numberofdatabytesremaining=40(0x0028)IP:ID=0x9225;Proto=TCP;Len:40IP:Version=4(0x4)IP:HeaderLength=20(0x14)IP:ServiceType=0(0x0)IP:Precedence=RoutineIP:...0....=NormalDelayIP:....0...=NormalThroughputIP:.....0..=NormalReliabilityIP:TotalLength=40(0x28)IP:Identification=37413(0x9225)IP:FlagsSummary=2(0x2)IP:.......0=LastfragmentindatagramIP:......1.=CannotfragmentdatagramIP:FragmentOffset=0(0x0)bytesIP:TimetoLive=128(0x80)IP:Protocol=TCP-TransmissionControlIP:Checksum=0x38F5IP:SourceAddress=40IP:DestinationAddress=IP:Data:Numberofdatabytesremaining=20(0x0014)TCP:.A....,len:0,seq:138137-138137,ack:1323022643,win:8760,src:1026dst:139(NBTSession)TCP:SourceTCP:DestinationTCP:SequenceNumber=138137(0x21B99)TCP:AcknowledgementNumber=1323022643(0x4EDBB933)TCP:DataOffset=20(0x14)TCP:Reserved=0(0x0000)TCP:Flags=0x10:.A....TCP:..0.....=NourgentdataTCP:...1....=AcknowledgementfieldsignificantTCP:....0...=NoPushfunctionTCP:.....0..=NoResetTCP:......0.=NoSynchronizeTCP:.......0=NoFinTCP:Window=8760(0x2238)TCP:Checksum=0x35B0TCP:UrgentPointer=0(0x0)00000:0090278698190080C848324908004500..'......H2I..E.00010:002892254000800638F5CA604DF0CA60.(.%@...8..`M..`00020:4D040402008B00021B994EDBB9335010M.........N..3P.00030:223835B00000"85...說明:00-0D 以太幀(14B)00-05 009027869819 目標(biāo)機(jī)MAC地址(6B)06-0B 0080C8483249 源機(jī)MAC地址(6B)0C-0D 0800 類型(2B) 0E-21 IP頭格式(20B)0E 45 高4位:版本4;低4位:5,IP頭長(zhǎng)4*5=20B0F 00 服務(wù)類型0028 IP總長(zhǎng)0028H=40B12-13 9225 標(biāo)識(shí)9225H=3741314 40 高4位4,標(biāo)志14-15 4000 14低4位和15:偏移016 80 生存期17 06 協(xié)議TCP18-19 38F5 IP頭校驗(yàn)和1A-1D CA604DF0 信源IP地址(40)1E-21 CA604D04 信宿IP地址() *IP頭到此結(jié)束22-35 TCP頭格式(20B)0402 信源端口 *TCP從此開始24-25 008B 信宿端口26-29 00021B99 TCP序列號(hào)00021B99H=1381372A-2D 4EDBB933 TCP應(yīng)答 50 高4位(5)TCP頭長(zhǎng),4*5=20;低4位保留2F 10 高2位保留,低6位標(biāo)志(ACK=1)30-31 2238 窗口大?。?238H=8760)32-33 35B0 TCP校驗(yàn)和(35B0H)34-35 0000 16位緊急指針(0000H)數(shù)據(jù)(略)

WinSock基礎(chǔ)什么是套接字套接字(socket)是一種網(wǎng)絡(luò)編程接口,它是對(duì)通信端點(diǎn)的一種抽象,提供了一種發(fā)送和接收數(shù)據(jù)的機(jī)制。套接字是通訊的基礎(chǔ),一個(gè)套接字是通訊的一端。在這一端上你可以找到與其對(duì)應(yīng)的一個(gè)名字。一個(gè)正在被使用的套接字都有它的類型和與其相關(guān)的進(jìn)程。套接字存在于通訊域中。通訊域是為了處理一般的線程通過套接字通訊而引進(jìn)的一種抽象概念。套接字通常和同一個(gè)域中的套接字交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時(shí)一定要執(zhí)行某種解釋程序)。Bekerly套接字規(guī)范Socket(套接字)最初是由加利福尼亞大學(xué)Berkeley分校為UNIX操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口,這個(gè)規(guī)范是針對(duì)UNIX操作系統(tǒng)下TCP/IP協(xié)議實(shí)現(xiàn)的,為UNIX操作系統(tǒng)下不同的計(jì)算機(jī)之間使用TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信編程提供了一個(gè)API。隨著UNIX操作系統(tǒng)的流行而逐步成為最普遍使用的網(wǎng)絡(luò)通信接口。由于Berkeley大學(xué)最先在Sockets接口開發(fā)中工作,因此,這個(gè)套接字規(guī)范一般稱為BerkeleySockets規(guī)范。WinSock介紹:后來,SunMicrosystem,JSBCorporation,F(xiàn)TPsoftware,Microdyne和Microsoft等幾家公司共同制定了一套標(biāo)準(zhǔn),即WindowsSockets規(guī)范,簡(jiǎn)稱WinSock。WindowsSockets規(guī)范本意在于提供給應(yīng)用程序開發(fā)者一套簡(jiǎn)單的API,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。此外,在一個(gè)特定版本W(wǎng)indows的基礎(chǔ)上,WindowsSockets也定義了一個(gè)二進(jìn)制接口(ABI),以此來保證應(yīng)用WindowsSocketsAPI的應(yīng)用程序能夠在任何網(wǎng)絡(luò)軟件供應(yīng)商的符合WindowsSockets協(xié)議的實(shí)現(xiàn)上工作。因此這份規(guī)范定義了應(yīng)用程序開發(fā)者能夠使用,并且網(wǎng)絡(luò)軟件供應(yīng)商能夠?qū)崿F(xiàn)的一套庫函數(shù)調(diào)用和相關(guān)語義。WindowsSockets規(guī)范支持單一的通訊域,即Internet域。各種進(jìn)程使用這個(gè)域互相之間用Internet協(xié)議族來進(jìn)行通訊(WindowsSockets1.1以上的版本支持其他的域,例如WindowsSockets2)。WindowsSockets規(guī)范定義了應(yīng)用程序開發(fā)人員能夠使用,并且網(wǎng)絡(luò)軟件供應(yīng)商能夠?qū)崿F(xiàn)的一套庫函數(shù)調(diào)用和相關(guān)語義。遵守這套WindowsSockets規(guī)范的網(wǎng)絡(luò)軟件,我們稱為WindowsSockets兼容的網(wǎng)絡(luò)軟件。一個(gè)軟件供應(yīng)商必須百分之百地實(shí)現(xiàn)WindowsSockets規(guī)范才能做到與WindowsSockets兼容。任何能夠與WindowsSockets兼容實(shí)現(xiàn)協(xié)同工作的應(yīng)用程序就被認(rèn)為是具有WindowsSockets接口。我們稱這種應(yīng)用程序?yàn)閃indowsSockets應(yīng)用程序。此外該規(guī)范還定義了如何使用API與Internet協(xié)議族(TCP/IP)的連接,尤其要指出的是所有的WindowsSockets都實(shí)現(xiàn)了對(duì)流Socket(TCP)和數(shù)據(jù)報(bào)Socket(UDP)的支持。流Socket提供了雙向的、有序的、無重復(fù)且可靠的數(shù)據(jù)流服務(wù)。數(shù)據(jù)報(bào)Socket提供了雙向的、無序的、不可靠的服務(wù)。Socket實(shí)際上代表的是網(wǎng)絡(luò)通信的一個(gè)端點(diǎn),利用它,用戶所開發(fā)的Socket應(yīng)用程序就可以與網(wǎng)絡(luò)中其它的Socket應(yīng)用程序進(jìn)行通信,也就實(shí)現(xiàn)了網(wǎng)絡(luò)中端到端的通信。WindowsSocketsAPI是MicrosoftWindows為網(wǎng)絡(luò)通信程序設(shè)計(jì)接口,它在繼承了前面介紹的BerkeleySockets主要特征的基礎(chǔ)上,對(duì)其進(jìn)行了重要擴(kuò)充。這些擴(kuò)充主要體現(xiàn)在它提供了一些異步函數(shù),并增加了符合Windows消息驅(qū)動(dòng)機(jī)制的網(wǎng)絡(luò)事件異步選擇方式,這些擴(kuò)充有利于程序員開發(fā)符合Windows工作模式的軟件,WinSock使得在Windows環(huán)境下開發(fā)高性能網(wǎng)絡(luò)通信程序成為可能。應(yīng)用程序調(diào)用WindowsSockets的API實(shí)現(xiàn)相互之間的通訊。WindowsSockets又利用下層的網(wǎng)絡(luò)通訊協(xié)議功能和操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通訊工作。由于套接字廣泛應(yīng)用于網(wǎng)絡(luò)編程,因此一個(gè)公眾可以接受的套接字規(guī)范就十分必要了。套接字規(guī)范其實(shí)就是一套網(wǎng)絡(luò)編程接口,它包含了一系列的與套接字使用有關(guān)的庫函數(shù),是一個(gè)面向網(wǎng)絡(luò)通信編程的API。套接字可以根據(jù)通訊性質(zhì)分類;這種性質(zhì)對(duì)于用戶是可見的。應(yīng)用程序一般僅在同一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論