posts - 297,  comments - 1618,  trackbacks - 0
             幾日前從同事那里偶得《TCP/IP詳解》的三卷電子書,如獲至寶,正好可以解我一直以來對(duì)網(wǎng)絡(luò)的諸多困惑。
             感謝同事bonix的共享。嘿嘿

            說明:本文為《TCP/IP詳解,卷1:協(xié)議》的第一章“概述”的學(xué)習(xí)筆記。

          一.分層

          1.鏈路層

          有時(shí)也稱作數(shù)據(jù)鏈路層網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(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)輸層

          主要為兩臺(tái)主機(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為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信。U D P則為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù)它只是把稱作數(shù)據(jù)報(bào)的分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的可靠性必須由應(yīng)用層來提供。

          4.應(yīng)用層

          負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。應(yīng)用層關(guān)心的是應(yīng)用程序的細(xì)節(jié),而不是數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸活動(dòng)。通用的應(yīng)用程序如:

          Telnet:遠(yuǎn)程登錄。

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

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

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

          二.TCP/IP協(xié)議族的四個(gè)層次圖

           

           

          三.各層的主要協(xié)議說明

          1TCP協(xié)議

           T C PU D P是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用I P作為網(wǎng)絡(luò)層協(xié)議。雖然T C P使用不可靠的I P服務(wù),但它卻提供一種可靠的運(yùn)輸層服務(wù)。

          2UDP協(xié)議

          U D P為應(yīng)用程序發(fā)送和接收數(shù)據(jù)報(bào)。一個(gè)數(shù)據(jù)報(bào)是指從發(fā)送方傳輸?shù)浇邮辗降囊粋€(gè)信息

          單元,U D P是不可靠的,它不能保證數(shù)據(jù)報(bào)能安全無誤地到達(dá)最終目的。

          3IP

          3IP協(xié)議

          I P是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被T C PU D P使用。T C PU D P的每組數(shù)據(jù)都通過端系統(tǒng)和每個(gè)中間路由器中的I P層在互聯(lián)網(wǎng)中進(jìn)行傳輸。

          4ICMP協(xié)議

          I C M PI P協(xié)議的附屬協(xié)議。I P層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要信息。P i n gTr a c e r o u t e都使用了I C M P

          5IGMP協(xié)議

          I G M PI n t e r n e t組管理協(xié)議。它用來把一個(gè)U D P數(shù)據(jù)報(bào)多播到多個(gè)主機(jī)。

          6ARPRARP協(xié)議

          A R P(地址解析協(xié)議)和R A R P(逆地址解析協(xié)議)是某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來轉(zhuǎn)換I P層和網(wǎng)絡(luò)接口層使用的地址。

           

          四.互聯(lián)網(wǎng)的地址

          1.五類互聯(lián)網(wǎng)地址圖示

           

          2. IP地址分類

           3IP地址,分別為:

            單播地址:目標(biāo)是單個(gè)主機(jī);

            廣播地址:目的端為給定網(wǎng)絡(luò)上的所有主機(jī);

            多播地址:目的端為同一組內(nèi)的所有主機(jī)。

           

          五.域名系統(tǒng)

           T C P / I P領(lǐng)域中,域名系統(tǒng)( D N S)是一個(gè)分布的數(shù)據(jù)庫,由它來提供I P地址和

          主機(jī)名之間的映射信息。

           域名系統(tǒng)( D N S是一個(gè)分布的數(shù)據(jù)庫,由它來提供I P地址和主機(jī)名之間的映射信息。大多數(shù)使用主機(jī)名作為參數(shù)的應(yīng)用程序也可以把I P地址作為參數(shù)。、當(dāng)我們用Te l n e t進(jìn)行遠(yuǎn)程登錄時(shí),既可以指定一個(gè)主機(jī)名,也可以指定一個(gè)I P地址。

           

          六.封裝

           當(dāng)應(yīng)用程序用T C P傳送數(shù)據(jù)時(shí),數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個(gè)通過每一層直到被當(dāng)作

          一串比特流送入網(wǎng)絡(luò)。其中每一層對(duì)收到的數(shù)據(jù)都要增加一些首部信息(有時(shí)還要增加尾部

          信息)。T C P傳給I P的數(shù)據(jù)單元稱作T C P報(bào)文段或簡(jiǎn)稱為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 )

           以太網(wǎng)數(shù)據(jù)幀的物理特性是其長(zhǎng)度必須在4 61 5 0 0字節(jié)之間。

           I P和網(wǎng)絡(luò)接口層之間傳送的數(shù)據(jù)單元應(yīng)該是分組( p a c k e t。分組既可以是一個(gè)I P數(shù)據(jù)報(bào),也可以是I P數(shù)據(jù)報(bào)的一個(gè)片(f r a g m e n t

           由于T C PU D PI C M PI G M P都要向I P傳送數(shù)據(jù),因此I P必須在生成的I P首部中加入某種標(biāo)識(shí),以表明數(shù)據(jù)屬于哪一層。為此, I P在首部中存入一個(gè)長(zhǎng)度為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é)議。

           

          七.分用

           當(dāng)目的主機(jī)收到一個(gè)以太網(wǎng)數(shù)據(jù)幀時(shí),數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時(shí)去掉各

          層協(xié)議加上的報(bào)文首部。每層協(xié)議盒都要去檢查報(bào)文首部中的協(xié)議標(biāo)識(shí),以確定接收數(shù)據(jù)的

          上層協(xié)議。這個(gè)過程稱作分用( D e m u l t i p l e x i n g

           

          八.客戶-服務(wù)器模型

           大部分網(wǎng)絡(luò)應(yīng)用程序在編寫時(shí)都假設(shè)一端是客戶,另一端是服務(wù)器,其目的是為了讓服

          務(wù)器為客戶提供一些特定的服務(wù)。

          可以將這種服務(wù)分為兩種類型:重復(fù)型并發(fā)型

          重復(fù)型的交互方式如下:

          等待一個(gè)客戶請(qǐng)求的到來-〉處理客戶請(qǐng)求-〉發(fā)送響應(yīng)給發(fā)送請(qǐng)求的客戶-〉進(jìn)入第一步

          并發(fā)型的交互方式如下:

          C1. 等待一個(gè)客戶請(qǐng)求的到來。

          C2. 啟動(dòng)一個(gè)新的服務(wù)器來處理這個(gè)客戶的請(qǐng)求。在這期間可能生成一個(gè)新的進(jìn)程、任務(wù)

          或線程,并依賴底層操作系統(tǒng)的支持。這個(gè)步驟如何進(jìn)行取決于操作系統(tǒng)。生成的新服務(wù)器

          對(duì)客戶的全部請(qǐng)求進(jìn)行處理。處理結(jié)束后,終止這個(gè)新服務(wù)器。

          C3. 返回C 1步。

          并發(fā)服務(wù)器的優(yōu)點(diǎn)在于它是利用生成其他服務(wù)器的方法來處理客戶的請(qǐng)求。也就是說,每個(gè)客戶都有它自己對(duì)應(yīng)的服務(wù)器。如果操作系統(tǒng)允許多任務(wù),那么就可以同時(shí)為多個(gè)客戶服務(wù)。

           

          . 端口號(hào)

           T C PU D P采用16 bit的端口號(hào)來識(shí)別應(yīng)用程序。

          1. 知名端口號(hào)

          服務(wù)器一般都是通過知名端口號(hào)來識(shí)別的。例如,對(duì)于每個(gè)T C P / I P實(shí)現(xiàn)來說, F T P服務(wù)器的T C P端口號(hào)都是2 1,每個(gè)Te l n e t服務(wù)器的T C P端口號(hào)都是2 3,每個(gè)T F T P (簡(jiǎn)單文件傳送協(xié)議)服務(wù)器的U D P端口號(hào)都是6 9。任何T C P / I P實(shí)現(xiàn)所提供的服務(wù)都用知名的11 0 2 3之間的端口號(hào)。這些知名端口號(hào)由I n t e r n e t號(hào)分配機(jī)構(gòu)( Internet Assigned Numbers Authority, IANA)來管理。

          1 9 9 2年為止,知名端口號(hào)介于12 5 5之間。2 5 61 0 2 3之間的端口號(hào)通常都是由U n i x系統(tǒng)占用,以提供一些特定的U n i x服務(wù)。

          2. 客戶端口號(hào)

          客戶端通常對(duì)它所使用的端口號(hào)并不關(guān)心,只需保證該端口號(hào)在本機(jī)上是唯一的就可以

          了。客戶端口號(hào)又稱作臨時(shí)端口號(hào)(即存在時(shí)間很短暫)。

          大多數(shù)T C P / I P實(shí)現(xiàn)給臨時(shí)端口分配1 0 2 45 0 0 0之間的端口號(hào)。大于5 0 0 0的端口號(hào)是為其他服務(wù)器預(yù)留的( I n t e r n e t上并不常用的服務(wù))

           

          十.標(biāo)準(zhǔn)化過程

          負(fù)責(zé)Internet技術(shù)的四個(gè)小組如下:

            1. Internet協(xié)會(huì)(I S O CInternet Society

          它是一個(gè)推動(dòng)、支持和促進(jìn)I n t e r n e t不斷增長(zhǎng)和發(fā)展的專業(yè)組織,它把I n t e r n e t作為全球研究通信的基礎(chǔ)設(shè)施。

            2. Internet體系結(jié)構(gòu)委員會(huì)(I A BInternet Architecture Board

          它是一個(gè)技術(shù)監(jiān)督和協(xié)調(diào)的機(jī)構(gòu)。它由國際上來自不同專業(yè)的1 5個(gè)志愿者組成,其職能是負(fù)責(zé)I n t e r n e t標(biāo)準(zhǔn)的最后編輯和技術(shù)審核。I A B隸屬于I S O C

            3. Internet工程專門小組(I E T FInternet Engineering Task Force

          它是一個(gè)面向近期標(biāo)準(zhǔn)的組織,它分為9個(gè)領(lǐng)域(應(yīng)用、尋徑和尋址、安全等等)。I E T F開發(fā)成為I n t e r n e t標(biāo)準(zhǔn)的規(guī)范。為幫助IETF主席,又成立了Internet工程指導(dǎo)小組(IESG, Internet Engineering Steering Group)。

            4. Internet研究專門小組(IR I FInternet Research Task Force

          主要對(duì)長(zhǎng)遠(yuǎn)的項(xiàng)目進(jìn)行研究。

           I RT FI E T F都隸屬于I A B

           

          十一. RFC

           所有關(guān)于I n t e r n e t的正式標(biāo)準(zhǔn)都以R F CRequest for Comment)文檔出版。下面是一些重要的R F C文檔:

          1.       賦值R F CAssigned Numbers RFC

          列出了所有I n t e r n e t協(xié)議中使用的數(shù)字和常數(shù)。

          2. I n t e r n e t正式協(xié)議標(biāo)準(zhǔn)

          目前是RFC 1600[Postel 1994]。這個(gè)R F C描述了各種I n t e r n e t協(xié)議的標(biāo)準(zhǔn)化現(xiàn)狀。每種協(xié)議都處于下面幾種標(biāo)準(zhǔn)化狀態(tài)之一:標(biāo)準(zhǔn)、草案標(biāo)準(zhǔn)、提議標(biāo)準(zhǔn)、實(shí)驗(yàn)標(biāo)準(zhǔn)、信息標(biāo)準(zhǔn)和歷史標(biāo)準(zhǔn)。另外,對(duì)每種協(xié)議都有一個(gè)要求的層次、必需的、建議的、可選擇的、限制使用的或者不推薦的。

          3. 主機(jī)需求R F C11 2 21123[Braden 1989a, 1989b]

          RFC 11 2 2針對(duì)鏈路層、網(wǎng)絡(luò)層和運(yùn)輸層;RFC 11 2 3針對(duì)應(yīng)用層。這兩個(gè)R F C對(duì)早期重要的R F C文檔作了大量的糾正和解釋。

          4. 路由器需求R F C

           目前正式版是RFC 1009[Braden and Postel 1987],它與主機(jī)需求R F C類似,但是只單獨(dú)描述了路由器的需求。

           

          十二. 標(biāo)準(zhǔn)的簡(jiǎn)單服務(wù)

            大多數(shù)服務(wù)都提供的簡(jiǎn)單服務(wù)見下表:

          名字

          TCP端口號(hào)

          UDP端口號(hào)

          RFC

          描述

          e c h o

           

          7

          7

          862

          服務(wù)器返回客戶發(fā)送的所有內(nèi)容

          d i s c a r d

          9

          9

          863

          服務(wù)器丟棄客戶發(fā)送的所有內(nèi)容

          d a y t i m e

          13

          13

          867

          服務(wù)器以可讀形式返回時(shí)間和日期

          c h a r g e n

          19

          19

          864

          當(dāng)客戶發(fā)送一個(gè)數(shù)據(jù)報(bào)時(shí), T C P服務(wù)器發(fā)

          送一串連續(xù)的字符流,直到客戶中斷連接。

          U D P服務(wù)器發(fā)送一個(gè)隨機(jī)長(zhǎng)度的數(shù)據(jù)報(bào)

          t i m e

          37

          37

          868

          服務(wù)器返回一個(gè)二進(jìn)制形式的32 bit 數(shù),

          表示從U T C時(shí)間1 9 0 011日午夜至今的秒

          數(shù)

           

          如果仔細(xì)檢查這些標(biāo)準(zhǔn)的簡(jiǎn)單服務(wù)以及其他標(biāo)準(zhǔn)的T C P / I P服務(wù)(如Te l n e tF T P

          S M T P等)的端口號(hào)時(shí),我們發(fā)現(xiàn)它們都是奇數(shù)。這是有歷史原因的,因?yàn)檫@些端口號(hào)

          都是從N C P端口號(hào)派生出來的(N C P,即網(wǎng)絡(luò)控制協(xié)議,是A R PA N E T的運(yùn)輸層協(xié)議,

          T C P的前身)。N C P是單工的,不是全雙工的,因此每個(gè)應(yīng)用程序需要兩個(gè)連接,需

          預(yù)留一對(duì)奇數(shù)和偶數(shù)端口號(hào)。當(dāng)T C PU D P成為標(biāo)準(zhǔn)的運(yùn)輸層協(xié)議時(shí),每個(gè)應(yīng)用程序

          只需要一個(gè)端口號(hào),因此就使用了NCP中的奇數(shù)。

           

          十三. 互聯(lián)網(wǎng)

           i n t e r n e t意思是用一個(gè)共同的協(xié)議族把多個(gè)網(wǎng)絡(luò)連接在一起。而I n t e r n e t指的是世界范圍內(nèi)通過T C P / I P互相通信的所有主機(jī)集合(超過1 0 0萬臺(tái))。I n t e r n e t是一個(gè)i n t e r n e t,但i n t e r n e t不等于I n t e r n e t

           

          十四. 應(yīng)用編程接口

          使用T C P / I P協(xié)議的應(yīng)用程序通常采用兩種應(yīng)用編程接口( A P I):s o c k e tT L I(運(yùn)輸層接口:Transport Layer Interface)。

           

          十五. 小結(jié)

           T C P / I P協(xié)議族分為四層:鏈路層、網(wǎng)絡(luò)層、運(yùn)輸層和應(yīng)用層,每一層各有不同的責(zé)任。

          T C P / I P中,網(wǎng)絡(luò)層和運(yùn)輸層之間的區(qū)別是最為關(guān)鍵的:網(wǎng)絡(luò)層( I P)提供點(diǎn)到點(diǎn)的服務(wù),而運(yùn)輸層( T C PU D P)提供端到端的服務(wù)。

           一個(gè)互聯(lián)網(wǎng)是網(wǎng)絡(luò)的網(wǎng)絡(luò)。構(gòu)造互聯(lián)網(wǎng)的共同基石是路由器,它們?cè)?/span>I P層把網(wǎng)絡(luò)連在一

          起。

           在一個(gè)互聯(lián)網(wǎng)上,每個(gè)接口都用I P地址來標(biāo)識(shí),盡管用戶習(xí)慣使用主機(jī)名而不是I P地址。

          域名系統(tǒng)為主機(jī)名和I P地址之間提供動(dòng)態(tài)的映射。端口號(hào)用來標(biāo)識(shí)互相通信的應(yīng)用程序服務(wù)器使用知名端口號(hào),而客戶使用臨時(shí)設(shè)定的端口號(hào)。

          posted on 2007-08-22 18:39 阿蜜果 閱讀(2721) 評(píng)論(0)  編輯  收藏 所屬分類: 網(wǎng)絡(luò)通信相關(guān)
          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊(cè)

          關(guān)注blog

          積分與排名

          • 積分 - 2296322
          • 排名 - 3

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 天台县| 平顶山市| 禄丰县| 咸宁市| 蒙阴县| 灵丘县| 阳西县| 蛟河市| 彭山县| 大姚县| 蒲城县| 建平县| 永修县| 孟州市| 武冈市| 石门县| 广汉市| 新乡县| 邹平县| 岱山县| 正蓝旗| 天气| 庆阳市| 汉源县| 随州市| 安泽县| 湄潭县| 肥西县| 托里县| 洛阳市| 肃北| 灵川县| 桓仁| 广州市| 中宁县| 肃南| 双辽市| 屏南县| 崇阳县| 沾益县| 白水县|