幾日前從同事那里偶得《TCP/IP詳解》的三卷電子書,如獲至寶,正好可以解我一直以來對網(wǎng)絡(luò)的諸多困惑。
感謝同事bonix的共享。嘿嘿
說明:本文為《TCP/IP詳解,卷1:協(xié)議》的第一章“概述”的學(xué)習(xí)筆記。
一.分層
1.鏈路層
有時也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。
2. 網(wǎng)絡(luò)層
有時也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。在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)控制報文協(xié)議),以及I G M P協(xié)議(I n t e r n e t組管理協(xié)議)。
3. 運輸層
主要為兩臺主機上的應(yīng)用程序提供端到端的通信。在T C P / I P協(xié)議族中,有兩個互不相同的傳輸協(xié)議: T C P(傳輸控制協(xié)議)和U D P(用戶數(shù)據(jù)報協(xié)議)。
T C P為兩臺主機提供高可靠性的數(shù)據(jù)通信。U D P則為應(yīng)用層提供一種非常簡單的服務(wù)它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達(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ò)中的傳輸活動。通用的應(yīng)用程序如:
• Telnet:遠(yuǎn)程登錄。
• FTP:文件傳輸協(xié)議。
• SMTP:簡單郵件傳送協(xié)議。
• SNMP:簡單網(wǎng)絡(luò)管理協(xié)議。
二.TCP/IP協(xié)議族的四個層次圖

三.各層的主要協(xié)議說明
1.TCP協(xié)議
T C P和U D P是兩種最為著名的運輸層協(xié)議,二者都使用I P作為網(wǎng)絡(luò)層協(xié)議。雖然T C P使用不可靠的I P服務(wù),但它卻提供一種可靠的運輸層服務(wù)。
2.UDP協(xié)議
U D P為應(yīng)用程序發(fā)送和接收數(shù)據(jù)報。一個數(shù)據(jù)報是指從發(fā)送方傳輸?shù)浇邮辗降囊粋€信息
單元,U D P是不可靠的,它不能保證數(shù)據(jù)報能安全無誤地到達(dá)最終目的。
3.IP
3.IP協(xié)議
I P是網(wǎng)絡(luò)層上的主要協(xié)議,同時被T C P和U D P使用。T C P和U D P的每組數(shù)據(jù)都通過端系統(tǒng)和每個中間路由器中的I P層在互聯(lián)網(wǎng)中進行傳輸。
4.ICMP協(xié)議
I C M P是I P協(xié)議的附屬協(xié)議。I P層用它來與其他主機或路由器交換錯誤報文和其他重要信息。P i n g和Tr a c e r o u t e都使用了I C M P。
5.IGMP協(xié)議
I G M P是I n t e r n e t組管理協(xié)議。它用來把一個U D P數(shù)據(jù)報多播到多個主機。
6.ARP和RARP協(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地址分類
有3類IP地址,分別為:
• 單播地址:目標(biāo)是單個主機;
• 廣播地址:目的端為給定網(wǎng)絡(luò)上的所有主機;
• 多播地址:目的端為同一組內(nèi)的所有主機。
五.域名系統(tǒng)
在T C P / I P領(lǐng)域中,域名系統(tǒng)( D N S)是一個分布的數(shù)據(jù)庫,由它來提供I P地址和
主機名之間的映射信息。
域名系統(tǒng)( D N S)是一個分布的數(shù)據(jù)庫,由它來提供I P地址和主機名之間的映射信息。大多數(shù)使用主機名作為參數(shù)的應(yīng)用程序也可以把I P地址作為參數(shù)。、當(dāng)我們用Te l n e t進行遠(yuǎn)程登錄時,既可以指定一個主機名,也可以指定一個I P地址。
六.封裝
當(dāng)應(yīng)用程序用T C P傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當(dāng)作
一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(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)絡(luò)接口層的數(shù)據(jù)單元稱作I P數(shù)據(jù)報(IP datagram)。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Fr a m e )。
以太網(wǎng)數(shù)據(jù)幀的物理特性是其長度必須在4 6~1 5 0 0字節(jié)之間。
I P和網(wǎng)絡(luò)接口層之間傳送的數(shù)據(jù)單元應(yīng)該是分組( p a c k e t)。分組既可以是一個I P數(shù)據(jù)報,也可以是I P數(shù)據(jù)報的一個片(f r a g m e n t)。
由于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在首部中存入一個長度為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)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時去掉各
層協(xié)議加上的報文首部。每層協(xié)議盒都要去檢查報文首部中的協(xié)議標(biāo)識,以確定接收數(shù)據(jù)的
上層協(xié)議。這個過程稱作分用( D e m u l t i p l e x i n g)。
八.客戶-服務(wù)器模型
大部分網(wǎng)絡(luò)應(yīng)用程序在編寫時都假設(shè)一端是客戶,另一端是服務(wù)器,其目的是為了讓服
務(wù)器為客戶提供一些特定的服務(wù)。
可以將這種服務(wù)分為兩種類型:重復(fù)型或并發(fā)型。
重復(fù)型的交互方式如下:
等待一個客戶請求的到來-〉處理客戶請求-〉發(fā)送響應(yīng)給發(fā)送請求的客戶-〉進入第一步
并發(fā)型的交互方式如下:
C1. 等待一個客戶請求的到來。
C2. 啟動一個新的服務(wù)器來處理這個客戶的請求。在這期間可能生成一個新的進程、任務(wù)
或線程,并依賴底層操作系統(tǒng)的支持。這個步驟如何進行取決于操作系統(tǒng)。生成的新服務(wù)器
對客戶的全部請求進行處理。處理結(jié)束后,終止這個新服務(wù)器。
C3. 返回C 1步。
并發(fā)服務(wù)器的優(yōu)點在于它是利用生成其他服務(wù)器的方法來處理客戶的請求。也就是說,每個客戶都有它自己對應(yīng)的服務(wù)器。如果操作系統(tǒng)允許多任務(wù),那么就可以同時為多個客戶服務(wù)。
九. 端口號
T C P和U D P采用16 bit的端口號來識別應(yīng)用程序。
1. 知名端口號
服務(wù)器一般都是通過知名端口號來識別的。例如,對于每個T C P / I P實現(xiàn)來說, F T P服務(wù)器的T C P端口號都是2 1,每個Te l n e t服務(wù)器的T C P端口號都是2 3,每個T F T P (簡單文件傳送協(xié)議)服務(wù)器的U D P端口號都是6 9。任何T C P / I P實現(xiàn)所提供的服務(wù)都用知名的1~1 0 2 3之間的端口號。這些知名端口號由I n t e r n e t號分配機構(gòu)( Internet Assigned Numbers Authority, IANA)來管理。
到1 9 9 2年為止,知名端口號介于1~2 5 5之間。2 5 6~1 0 2 3之間的端口號通常都是由U n i x系統(tǒng)占用,以提供一些特定的U n i x服務(wù)。
2. 客戶端口號
客戶端通常對它所使用的端口號并不關(guān)心,只需保證該端口號在本機上是唯一的就可以
了??蛻舳丝谔栍址Q作臨時端口號(即存在時間很短暫)。
大多數(shù)T C P / I P實現(xiàn)給臨時端口分配1 0 2 4~5 0 0 0之間的端口號。大于5 0 0 0的端口號是為其他服務(wù)器預(yù)留的( I n t e r n e t上并不常用的服務(wù))。
十.標(biāo)準(zhǔn)化過程
負(fù)責(zé)Internet技術(shù)的四個小組如下:
1. Internet協(xié)會(I S O C,Internet Society)
它是一個推動、支持和促進I n t e r n e t不斷增長和發(fā)展的專業(yè)組織,它把I n t e r n e t作為全球研究通信的基礎(chǔ)設(shè)施。
2. Internet體系結(jié)構(gòu)委員會(I A B,Internet Architecture Board)
它是一個技術(shù)監(jiān)督和協(xié)調(diào)的機構(gòu)。它由國際上來自不同專業(yè)的1 5個志愿者組成,其職能是負(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 F,Internet Engineering Task Force)
它是一個面向近期標(biāo)準(zhǔn)的組織,它分為9個領(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 F,Internet Research Task Force)
主要對長遠(yuǎn)的項目進行研究。
I RT F和I E T F都隸屬于I A B。
十一. RFC
所有關(guān)于I n t e r n e t的正式標(biāo)準(zhǔn)都以R F C(Request for Comment)文檔出版。下面是一些重要的R F C文檔:
1. 賦值R F C(Assigned 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]。這個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)、實驗標(biāo)準(zhǔn)、信息標(biāo)準(zhǔn)和歷史標(biāo)準(zhǔn)。另外,對每種協(xié)議都有一個要求的層次、必需的、建議的、可選擇的、限制使用的或者不推薦的。
3. 主機需求R F C,11 2 2和1123[Braden 1989a, 1989b]
RFC 11 2 2針對鏈路層、網(wǎng)絡(luò)層和運輸層;RFC 11 2 3針對應(yīng)用層。這兩個R F C對早期重要的R F C文檔作了大量的糾正和解釋。
4. 路由器需求R F C
目前正式版是RFC 1009[Braden and Postel 1987],它與主機需求R F C類似,但是只單獨描述了路由器的需求。
十二. 標(biāo)準(zhǔn)的簡單服務(wù)
大多數(shù)服務(wù)都提供的簡單服務(wù)見下表:
名字
|
TCP端口號
|
UDP端口號
|
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ù)器以可讀形式返回時間和日期
|
c h a r g e n
|
19
|
19
|
864
|
當(dāng)客戶發(fā)送一個數(shù)據(jù)報時, T C P服務(wù)器發(fā)
送一串連續(xù)的字符流,直到客戶中斷連接。
U D P服務(wù)器發(fā)送一個隨機長度的數(shù)據(jù)報
|
t i m e
|
37
|
37
|
868
|
服務(wù)器返回一個二進制形式的32 bit 數(shù),
表示從U T C時間1 9 0 0年1月1日午夜至今的秒
數(shù)
|
如果仔細(xì)檢查這些標(biāo)準(zhǔn)的簡單服務(wù)以及其他標(biāo)準(zhǔn)的T C P / I P服務(wù)(如Te l n e t、F T P、
S M T P等)的端口號時,我們發(fā)現(xiàn)它們都是奇數(shù)。這是有歷史原因的,因為這些端口號
都是從N C P端口號派生出來的(N C P,即網(wǎng)絡(luò)控制協(xié)議,是A R PA N E T的運輸層協(xié)議,
是T C P的前身)。N C P是單工的,不是全雙工的,因此每個應(yīng)用程序需要兩個連接,需
預(yù)留一對奇數(shù)和偶數(shù)端口號。當(dāng)T C P和U D P成為標(biāo)準(zhǔn)的運輸層協(xié)議時,每個應(yīng)用程序
只需要一個端口號,因此就使用了NCP中的奇數(shù)。
十三. 互聯(lián)網(wǎng)
i n t e r n e t意思是用一個共同的協(xié)議族把多個網(wǎng)絡(luò)連接在一起。而I n t e r n e t指的是世界范圍內(nèi)通過T C P / I P互相通信的所有主機集合(超過1 0 0萬臺)。I n t e r n e t是一個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 t和T L I(運輸層接口:Transport Layer Interface)。
十五. 小結(jié)
T C P / I P協(xié)議族分為四層:鏈路層、網(wǎng)絡(luò)層、運輸層和應(yīng)用層,每一層各有不同的責(zé)任。
在T C P / I P中,網(wǎng)絡(luò)層和運輸層之間的區(qū)別是最為關(guān)鍵的:網(wǎng)絡(luò)層( I P)提供點到點的服務(wù),而運輸層( T C P和U D P)提供端到端的服務(wù)。
一個互聯(lián)網(wǎng)是網(wǎng)絡(luò)的網(wǎng)絡(luò)。構(gòu)造互聯(lián)網(wǎng)的共同基石是路由器,它們在I P層把網(wǎng)絡(luò)連在一
起。
在一個互聯(lián)網(wǎng)上,每個接口都用I P地址來標(biāo)識,盡管用戶習(xí)慣使用主機名而不是I P地址。
域名系統(tǒng)為主機名和I P地址之間提供動態(tài)的映射。端口號用來標(biāo)識互相通信的應(yīng)用程序服務(wù)器使用知名端口號,而客戶使用臨時設(shè)定的端口號。
posted on 2007-08-22 18:39
阿蜜果 閱讀(2715)
評論(0) 編輯 收藏 所屬分類:
網(wǎng)絡(luò)通信相關(guān)