關(guān)于Tcp及Ip協(xié)議.doc_第1頁
關(guān)于Tcp及Ip協(xié)議.doc_第2頁
關(guān)于Tcp及Ip協(xié)議.doc_第3頁
關(guān)于Tcp及Ip協(xié)議.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

這個(gè)tcp/ip的教程時(shí)主要是考慮到現(xiàn)在的網(wǎng)際網(wǎng)路幾乎全都是基于tcp/ip協(xié)議的,所以我們應(yīng)該明白的一點(diǎn)就是這個(gè)tcp/ip的架構(gòu)究竟是什么?它怎樣為我們服務(wù)。它成為被稱作“全球互聯(lián)網(wǎng)”或“因特網(wǎng)(Internet)”的基礎(chǔ),能夠?qū)⒔^大部分的計(jì)算機(jī)連接起來,不管你用什么操作系統(tǒng),可見tcp/ip體系是本世紀(jì)互聯(lián)網(wǎng)發(fā)展的根本基石。對于網(wǎng)絡(luò)程序員來說;了解tcp/ip的機(jī)理,可以有構(gòu)造任何網(wǎng)絡(luò)應(yīng)用程序的基本要素,什么winsocket,串口通訊等等甚至木馬,你都會迎刃而解。 一 首先說說網(wǎng)絡(luò)協(xié)議的層次,網(wǎng)絡(luò)協(xié)議通常分不同層次進(jìn)行開發(fā),每一層分別負(fù)責(zé)不同的通信功能。一個(gè)協(xié)議族,比如T C P / I P,是一組不同層次上的多個(gè)協(xié)議的組合。 (1) 鏈路層,有時(shí)也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。 (2) 網(wǎng)絡(luò)層,有時(shí)也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的選路。在T C P / I P協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括I P協(xié)議(網(wǎng)際協(xié)議),I C M P協(xié)議(I n t e r n e t互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及I G M P協(xié)議(I n t e r n e t組管理協(xié)議)。 (3)運(yùn)輸層,主要為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。在T C P / I P協(xié)議族中,有兩個(gè)互不相同的傳輸協(xié)議: T C P(傳輸控制協(xié)議)和U D P(用戶數(shù)據(jù)報(bào)協(xié)議)。T C P為兩臺主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時(shí)時(shí)鐘等。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。而另一方面, U D P則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報(bào)的分組從一臺主機(jī)發(fā)送到另一臺主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的可靠性必須由應(yīng)用層來提供。 應(yīng)用層 Telnet、FTP和e-mail等 運(yùn)輸層 TCP和UDP 網(wǎng)絡(luò)層 IP、ICMP和IGMP 鏈路層 設(shè)備驅(qū)動(dòng)程序及接口卡 (4)應(yīng)用層,負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的T C P / I P實(shí)現(xiàn)都會提供下面這些通用的應(yīng)用程序:?Telnet 遠(yuǎn)程登錄,F(xiàn)TP 文件傳輸協(xié)議,SMTP 簡單郵件傳送協(xié)議,SNMP 簡單網(wǎng)絡(luò)管理協(xié)議,現(xiàn)在想要給大家說的是大多數(shù)的網(wǎng)絡(luò)應(yīng)用程序都被設(shè)計(jì)成客戶服務(wù)器模式在同一層上,雙方都有對應(yīng)的一個(gè)或多個(gè)協(xié)議進(jìn)行通信。例如,某個(gè)協(xié)議允許T C P層進(jìn)行通信,而另一個(gè)協(xié)議則允許兩個(gè)I P層進(jìn)行通信。 這里實(shí)際上就是說應(yīng)用層本身本不注意數(shù)據(jù)的傳遞和交換,它一般只是一個(gè)用戶進(jìn)程,而上面我提到的運(yùn)輸層及其以下的三層的目的就是處理通信的過程,他們不管你應(yīng)用程序的事,分工明確。二 還有一個(gè)概念問題,我們平時(shí)所聽到的諸如tcp,ip,ftp等等,實(shí)際上協(xié)議本身是獨(dú)立的,tcp是運(yùn)輸層協(xié)議,ip是網(wǎng)絡(luò)層協(xié)議T C P / I P協(xié)議族是一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議族。盡管通常稱該協(xié)議族為T C P / I P,但T C P和I P只是其中的兩種協(xié)議而已(該協(xié)議族的另一個(gè)名字是I n t e r n e t協(xié)議族(Internet Protocol Suite))網(wǎng)絡(luò)接口層和應(yīng)用層的目的是很顯然的前者處理有關(guān)通信媒介的細(xì)節(jié)(以太網(wǎng)、令牌環(huán)網(wǎng)等),而后者處理某個(gè)特定的用戶應(yīng)用程序( F T P、Te l n e t等)。但是,從表面上看,網(wǎng)絡(luò)層和運(yùn)輸層之間的區(qū)別不那么明顯。 構(gòu)造互連網(wǎng)最簡單的方法是把兩個(gè)或多個(gè)網(wǎng)絡(luò)通過路由器進(jìn)行連接。它是一種特殊的用于網(wǎng)絡(luò)互連的硬件盒。路由器的好處是為不同類型的物理網(wǎng)絡(luò)提供連接:以太網(wǎng)、令牌環(huán)網(wǎng)、點(diǎn)對點(diǎn)的鏈接和F D D I(光纖分布式數(shù)據(jù)接口)等等。這些盒子也稱作I P路由器(IP Router),但我們這里使用路由器( R o u t e r )這個(gè)術(shù)語。 從歷史上說,這些盒子稱作網(wǎng)關(guān)( g a t e w a y),在很多T C P / I P文獻(xiàn)中都使用這個(gè)術(shù)語。 現(xiàn)在網(wǎng)關(guān)這個(gè)術(shù)語只用來表示應(yīng)用層網(wǎng)關(guān):一個(gè)連接兩種不同協(xié)議族的進(jìn)程(例如,TCP/IP和IBM的SNA),它為某個(gè)特定的應(yīng)用程序服務(wù)(常常是電子郵件或文件傳輸)。在T C P / I P協(xié)議族中,網(wǎng)絡(luò)層I P提供的是一種不可靠的服務(wù)。也就是說,它只是盡可能快地把分組從源結(jié)點(diǎn)送到目的結(jié)點(diǎn),但是并不提供任何可靠性保證。而另一方面, T C P在不可靠的I P層上提供了一個(gè)可靠的運(yùn)輸層。為了提供這種可靠的服務(wù), T C P采用了超時(shí)重傳、發(fā)送和接收端到端的確認(rèn)分組等機(jī)制。由此可見,運(yùn)輸層和網(wǎng)絡(luò)層分別負(fù)責(zé)不同的功能。至于那些機(jī)制是如何工作的,我也是肯定不知道的,呵呵,有電信學(xué)方面愛好的朋友可以深入研究一下。 三 這里又有一個(gè)新概念:multihomed,任何具有多個(gè)接口的系統(tǒng),英文都稱作是多接口的。你也許和我一樣會問:我們的主機(jī)也是多接口的,可以作router嗎?我們一個(gè)主機(jī)也可以有多個(gè)接口,但一般不稱作路由器, 除非它的功能只是單純地把分組從一個(gè)接口傳送到另一個(gè)接口。同樣,路由器并不一定指那種在互聯(lián)網(wǎng)中用來轉(zhuǎn)發(fā)分組的特殊硬件盒。大多數(shù)的T C P / I P實(shí)現(xiàn)也允許一個(gè)多接口主機(jī)來擔(dān)當(dāng)路由器的功能,但是主機(jī)為此必須進(jìn)行特殊的配置。在這種情況下,我們既可以稱該系統(tǒng)為主機(jī)(當(dāng)它運(yùn)行某一應(yīng)用程序時(shí),如F T P或Te l n e t),也可以稱之為路由器(當(dāng)它把分組從一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)時(shí)),在不同的場合下使用不同的術(shù)語。 然后我說說網(wǎng)橋,連接網(wǎng)絡(luò)的另一個(gè)途徑是使用網(wǎng)橋。網(wǎng)橋是在鏈路層上對網(wǎng)絡(luò)進(jìn)行互連,而路由器則是在網(wǎng)絡(luò)層上對網(wǎng)絡(luò)進(jìn)行互連。網(wǎng)橋使得多個(gè)局域網(wǎng)( L A N)組合在一起,這樣對上層來說就好像是一個(gè)局域網(wǎng)。四 TCP /IP傾向于使用路由器而不是網(wǎng)橋來連接網(wǎng)絡(luò),因此我們將著重介紹路由器,其實(shí)主要是資料一般比較注重講這個(gè),我也不能省啊,了解的朋友不要打瞌睡。T C P和U D P是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用I P作為網(wǎng)絡(luò)層協(xié)議。雖然T C P使用不可靠的I P服務(wù),但它卻提供一種可靠的運(yùn)輸層服務(wù)。I P是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被T C P和U D P使用。T C P和U D P的每組數(shù)據(jù)都通過端系統(tǒng)和每個(gè)中間路由器中的I P層在互聯(lián)網(wǎng)中進(jìn)行傳輸。I C M P是I P協(xié)議的附屬協(xié)議。I P層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要信息。I C M P是I P協(xié)議的附屬協(xié)議。I P層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要信息。大家先對這些協(xié)議有一個(gè)印象,以后我們再繼續(xù)探討。 關(guān)于ip地址,我想不應(yīng)該多說了吧,I P地址長32 bit,我們平時(shí)說ip有三類地址格式,實(shí)際上一共有五類:前三類我就不說了,最基本的,現(xiàn)在說說d類和e類。 d:1 1 1 0 然后是28位的多播組號 e:1 1 1 1 0 后面27位留待后用 這些3 2位的地址通常寫成四個(gè)十進(jìn)制的數(shù),其中每個(gè)整數(shù)對應(yīng)一個(gè)字節(jié)。這種表示方法稱作“點(diǎn)分十進(jìn)制表示法( Dotted decimal notation)”。需要再次指出的是,多接口主機(jī)具有多個(gè)I P地址,其中每個(gè)接口都對應(yīng)一個(gè)I P地址。 由于互聯(lián)網(wǎng)上的每個(gè)接口必須有一個(gè)唯一的I P地址,因此必須要有一個(gè)管理機(jī)構(gòu)為接入互聯(lián)網(wǎng)的網(wǎng)絡(luò)分配I P地址。這個(gè)管理機(jī)構(gòu)就是互聯(lián)網(wǎng)絡(luò)信息中心( Internet Network InformationC e n t r e),稱作I n t e r N I C。I n t e r N I C只分配網(wǎng)絡(luò)號。主機(jī)號的分配由系統(tǒng)管理員來負(fù)責(zé)。有三類I P地址:單播地址(目的為單個(gè)主機(jī))、廣播地址(目的端為給定網(wǎng)絡(luò)上的所有主機(jī))以及多播地址(目的端為同一組內(nèi)的所有主機(jī)),不同于上面的分類方法了。 五 域名解析系統(tǒng)(dns):盡管通過I P地址可以識別主機(jī)上的網(wǎng)絡(luò)接口,進(jìn)而訪問主機(jī),但是人們最喜歡使用的還是主機(jī)名。在T C P / I P領(lǐng)域中,域名系統(tǒng)( D N S)是一個(gè)分布的數(shù)據(jù)庫,由它來提供I P地址和機(jī)名之間的映射信息。六 現(xiàn)在說說tcp/ip的封裝:當(dāng)應(yīng)用程序用T C P傳送數(shù)據(jù)時(shí),數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個(gè)通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時(shí)還要增加尾部信息),T C P傳給I P的數(shù)據(jù)單元稱作T C P報(bào)文段或簡稱為T C P段(T C Ps e g m e n t)。I P傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作I P數(shù)據(jù)報(bào)(IP datagram)。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Fr a m e )。 更準(zhǔn)確地說,I P和網(wǎng)絡(luò)接口層之間傳送的數(shù)據(jù)單元應(yīng)該是分組( p a c k e t)。我覺得也可以認(rèn)為是數(shù)據(jù)包。分組既可以是一個(gè)I P數(shù)據(jù)報(bào),也可以是I P數(shù)據(jù)報(bào)的一個(gè)片(f r a g m e n t),我認(rèn)為這是最合理而仔細(xì)的解釋了,而有些國內(nèi)的資料在這里是籠統(tǒng)的。 U D P數(shù)據(jù)與T C P數(shù)據(jù)基本一致。唯一的不同是U D P傳給I P的信息單元稱作U D P數(shù)據(jù)報(bào)(UDP datagram),而且U D P的首部長為8字節(jié)。由于T C P、U D P、I C M P和I G M P都要向I P傳送數(shù)據(jù),因此I P必須在生成的I P首部中加入某種標(biāo)識,以表明數(shù)據(jù)屬于哪一層。為此, I P在首部中存入一個(gè)長度為8 b i t的數(shù)值,稱作協(xié)議域。1表示為I C M P協(xié)議, 2表示為I G M P協(xié)議, 6表示為T C P協(xié)議, 1 7表示為U D P協(xié)議。類似地,許多應(yīng)用程序都可以使用T C P或U D P來傳送數(shù)據(jù)。運(yùn)輸層協(xié)議在生成報(bào)文首部時(shí)要存入一個(gè)應(yīng)用程序的標(biāo)識符。T C P和U D P都用一個(gè)1 6 b i t的端口號來表示不同的應(yīng)用程序。T C P和U D P把源端口號和目的端口號分別存入報(bào)文首部中。網(wǎng)絡(luò)接口分別要發(fā)送和接收I P、A R P和R A R P數(shù)據(jù),因此也必須在以太網(wǎng)的幀首部中加入某種形式的標(biāo)識,以指明生成數(shù)據(jù)的網(wǎng)絡(luò)層協(xié)議。為此,以太網(wǎng)的幀首部也有一個(gè)16 bit的幀類型域。 七 現(xiàn)在我們講一下什么叫做分用,分用其實(shí)就是一個(gè)數(shù)據(jù)傳遞的過程。這樣的一個(gè)數(shù)據(jù)傳遞是逆過程的,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時(shí)去掉各層協(xié)議加上的報(bào)文首部。每層協(xié)議盒都要去檢查報(bào)文首部中的協(xié)議標(biāo)識,以確定接收數(shù)據(jù)的上層協(xié)議。這個(gè)過程稱作分用( D e m u l t i p l e x i n g)。 這樣大家也好看得更明白一些。不知細(xì)心的朋友看到?jīng)]有,在這里的igmp和icmp定位,實(shí)際上他們都是被封裝在數(shù)據(jù)包中的,與ip位于同一層,是ip的從屬協(xié)議,這里不要混淆了。 我在開始就講過:大部分的網(wǎng)絡(luò)應(yīng)用程序都是被設(shè)計(jì)成客戶端和服務(wù)器端的這種模型。具體為什么我也不知道,有點(diǎn)抽象:為了適應(yīng)某些特定的服務(wù)??梢詫⑦@種服務(wù)分為兩種類型:重復(fù)型或并發(fā)型。重復(fù)型服務(wù)器通過以下步驟進(jìn)行交互:重復(fù)型服務(wù)器通過以下步驟進(jìn)行交互: I1. 等待一個(gè)客戶請求的到來。 I2. 處理客戶請求。 I3. 發(fā)送響應(yīng)給發(fā)送請求的客戶。 并發(fā)型服務(wù)器采用以下步驟: C1. 等待一個(gè)客戶請求的到來。 C2. 啟動(dòng)一個(gè)新的服務(wù)器來處理這個(gè)客戶的請求。在這期間可能生成一個(gè)新的進(jìn)程、任務(wù)或線程,并依賴底層操作系統(tǒng)的支持。這個(gè)步驟如何進(jìn)行

溫馨提示

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

最新文檔

評論

0/150

提交評論