關(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頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論