感謝同事bonix的共享。嘿嘿
說明:本文為《TCP/IP詳解,卷1:協議》的第一章“概述”的學習筆記。
一.分層
1.鏈路層
有時也稱作數據鏈路層或網絡接口層,通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。
2. 網絡層
有時也稱作互聯網層,處理分組在網絡中的活動,例如分組的選路。在T C P / I P協議族中,網絡層協議包括I P協議(網際協議),I C M P協議(I n t e r n e t互聯網控制報文協議),以及I G M P協議(I n t e r n e t組管理協議)。
3. 運輸層
主要為兩臺主機上的應用程序提供端到端的通信。在T C P / I P協議族中,有兩個互不相同的傳輸協議: T C P(傳輸控制協議)和U D P(用戶數據報協議)。
T C P為兩臺主機提供高可靠性的數據通信。U D P則為應用層提供一種非常簡單的服務它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端。任何必需的可靠性必須由應用層來提供。
4.應用層
負責處理特定的應用程序細節。應用層關心的是應用程序的細節,而不是數據在網絡中的傳輸活動。通用的應用程序如:
• Telnet:遠程登錄。
• FTP:文件傳輸協議。
• SMTP:簡單郵件傳送協議。
• SNMP:簡單網絡管理協議。
二.TCP/IP協議族的四個層次圖
三.各層的主要協議說明
1.TCP協議
T C P和U D P是兩種最為著名的運輸層協議,二者都使用I P作為網絡層協議。雖然T C P使用不可靠的I P服務,但它卻提供一種可靠的運輸層服務。
2.UDP協議
U D P為應用程序發送和接收數據報。一個數據報是指從發送方傳輸到接收方的一個信息
單元,U D P是不可靠的,它不能保證數據報能安全無誤地到達最終目的。
3.IP
3.IP協議
I P是網絡層上的主要協議,同時被T C P和U D P使用。T C P和U D P的每組數據都通過端系統和每個中間路由器中的I P層在互聯網中進行傳輸。
4.ICMP協議
I C M P是I P協議的附屬協議。I P層用它來與其他主機或路由器交換錯誤報文和其他重要信息。P i n g和Tr a c e r o u t e都使用了I C M P。
5.IGMP協議
I G M P是I n t e r n e t組管理協議。它用來把一個U D P數據報多播到多個主機。
6.ARP和RARP協議
A R P(地址解析協議)和R A R P(逆地址解析協議)是某些網絡接口(如以太網和令牌環網)使用的特殊協議,用來轉換I P層和網絡接口層使用的地址。
四.互聯網的地址
1.五類互聯網地址圖示
2. IP地址分類
有3類IP地址,分別為:
• 單播地址:目標是單個主機;
• 廣播地址:目的端為給定網絡上的所有主機;
• 多播地址:目的端為同一組內的所有主機。
五.域名系統
在T C P / I P領域中,域名系統( D N S)是一個分布的數據庫,由它來提供I P地址和
主機名之間的映射信息。
域名系統( D N S)是一個分布的數據庫,由它來提供I P地址和主機名之間的映射信息。大多數使用主機名作為參數的應用程序也可以把I P地址作為參數。、當我們用Te l n e t進行遠程登錄時,既可以指定一個主機名,也可以指定一個I P地址。
六.封裝
當應用程序用T C P傳送數據時,數據被送入協議棧中,然后逐個通過每一層直到被當作
一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部
信息)。T C P傳給I P的數據單元稱作T C P報文段或簡稱為T C P段(T C Ps e g m e n t)。I P傳給網絡接口層的數據單元稱作I P數據報(IP datagram)。通過以太網傳輸的比特流稱作幀(Fr a m e )。
以太網數據幀的物理特性是其長度必須在4 6~1 5 0 0字節之間。
I P和網絡接口層之間傳送的數據單元應該是分組( p a c k e t)。分組既可以是一個I P數據報,也可以是I P數據報的一個片(f r a g m e n t)。
由于T C P、U D P、I C M P和I G M P都要向I P傳送數據,因此I P必須在生成的I P首部中加入某種標識,以表明數據屬于哪一層。為此, I P在首部中存入一個長度為8 b i t的數值,稱作協議域。1表示為I C M P協議, 2表示為I G M P協議, 6表示為T C P協議, 1 7表示為U D P協議。
七.分用
當目的主機收到一個以太網數據幀時,數據就開始從協議棧中由底向上升,同時去掉各
層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收數據的
上層協議。這個過程稱作分用( D e m u l t i p l e x i n g)。
八.客戶-服務器模型
大部分網絡應用程序在編寫時都假設一端是客戶,另一端是服務器,其目的是為了讓服
務器為客戶提供一些特定的服務。
可以將這種服務分為兩種類型:重復型或并發型。
重復型的交互方式如下:
等待一個客戶請求的到來-〉處理客戶請求-〉發送響應給發送請求的客戶-〉進入第一步
并發型的交互方式如下:
C1. 等待一個客戶請求的到來。
C2. 啟動一個新的服務器來處理這個客戶的請求。在這期間可能生成一個新的進程、任務
或線程,并依賴底層操作系統的支持。這個步驟如何進行取決于操作系統。生成的新服務器
對客戶的全部請求進行處理。處理結束后,終止這個新服務器。
C3. 返回C 1步。
并發服務器的優點在于它是利用生成其他服務器的方法來處理客戶的請求。也就是說,每個客戶都有它自己對應的服務器。如果操作系統允許多任務,那么就可以同時為多個客戶服務。
九. 端口號
T C P和U D P采用16 bit的端口號來識別應用程序。
1. 知名端口號
服務器一般都是通過知名端口號來識別的。例如,對于每個T C P / I P實現來說, F T P服務器的T C P端口號都是2 1,每個Te l n e t服務器的T C P端口號都是2 3,每個T F T P (簡單文件傳送協議)服務器的U D P端口號都是6 9。任何T C P / I P實現所提供的服務都用知名的1~1 0 2 3之間的端口號。這些知名端口號由I n t e r n e t號分配機構( Internet Assigned Numbers Authority, IANA)來管理。
到1 9 9 2年為止,知名端口號介于1~2 5 5之間。2 5 6~1 0 2 3之間的端口號通常都是由U n i x系統占用,以提供一些特定的U n i x服務。
2. 客戶端口號
客戶端通常對它所使用的端口號并不關心,只需保證該端口號在本機上是唯一的就可以
了。客戶端口號又稱作臨時端口號(即存在時間很短暫)。
大多數T C P / I P實現給臨時端口分配1 0 2 4~5 0 0 0之間的端口號。大于5 0 0 0的端口號是為其他服務器預留的( I n t e r n e t上并不常用的服務)。
十.標準化過程
負責Internet技術的四個小組如下:
1. Internet協會(I S O C,Internet Society)
它是一個推動、支持和促進I n t e r n e t不斷增長和發展的專業組織,它把I n t e r n e t作為全球研究通信的基礎設施。
2. Internet體系結構委員會(I A B,Internet Architecture Board)
它是一個技術監督和協調的機構。它由國際上來自不同專業的1 5個志愿者組成,其職能是負責I n t e r n e t標準的最后編輯和技術審核。I A B隸屬于I S O C。
3. Internet工程專門小組(I E T F,Internet Engineering Task Force)
它是一個面向近期標準的組織,它分為9個領域(應用、尋徑和尋址、安全等等)。I E T F開發成為I n t e r n e t標準的規范。為幫助IETF主席,又成立了Internet工程指導小組(IESG, Internet Engineering Steering Group)。
4. Internet研究專門小組(IR I F,Internet Research Task Force)
主要對長遠的項目進行研究。
I RT F和I E T F都隸屬于I A B。
十一. RFC
所有關于I n t e r n e t的正式標準都以R F C(Request for Comment)文檔出版。下面是一些重要的R F C文檔:
1. 賦值R F C(Assigned Numbers RFC)
列出了所有I n t e r n e t協議中使用的數字和常數。
2. I n t e r n e t正式協議標準
目前是RFC 1600[Postel 1994]。這個R F C描述了各種I n t e r n e t協議的標準化現狀。每種協議都處于下面幾種標準化狀態之一:標準、草案標準、提議標準、實驗標準、信息標準和歷史標準。另外,對每種協議都有一個要求的層次、必需的、建議的、可選擇的、限制使用的或者不推薦的。
3. 主機需求R F C,11 2 2和1123[Braden
RFC 11 2 2針對鏈路層、網絡層和運輸層;RFC 11 2 3針對應用層。這兩個R F C對早期重要的R F C文檔作了大量的糾正和解釋。
4. 路由器需求R F C
目前正式版是RFC 1009[Braden and Postel 1987],它與主機需求R F C類似,但是只單獨描述了路由器的需求。
十二. 標準的簡單服務
大多數服務都提供的簡單服務見下表:
名字 |
TCP端口號 |
UDP端口號 |
RFC |
描述 |
e c h o
|
7 |
7 |
862 |
服務器返回客戶發送的所有內容 |
d i s c a r d |
9 |
9 |
863 |
服務器丟棄客戶發送的所有內容 |
d a y t i m e |
13 |
13 |
867 |
服務器以可讀形式返回時間和日期 |
c h a r g e n |
19 |
19 |
864 |
當客戶發送一個數據報時, T C P服務器發 送一串連續的字符流,直到客戶中斷連接。 U D P服務器發送一個隨機長度的數據報 |
t i m e |
37 |
37 |
868 |
服務器返回一個二進制形式的32 bit 數, 表示從U T C時間1 9 0 0年1月1日午夜至今的秒 數 |
如果仔細檢查這些標準的簡單服務以及其他標準的T C P / I P服務(如Te l n e t、F T P、
S M T P等)的端口號時,我們發現它們都是奇數。這是有歷史原因的,因為這些端口號
都是從N C P端口號派生出來的(N C P,即網絡控制協議,是A R PA N E T的運輸層協議,
是T C P的前身)。N C P是單工的,不是全雙工的,因此每個應用程序需要兩個連接,需
預留一對奇數和偶數端口號。當T C P和U D P成為標準的運輸層協議時,每個應用程序
只需要一個端口號,因此就使用了NCP中的奇數。
十三. 互聯網
i n t e r n e t意思是用一個共同的協議族把多個網絡連接在一起。而I n t e r n e t指的是世界范圍內通過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。
十四. 應用編程接口
使用T C P / I P協議的應用程序通常采用兩種應用編程接口( A P I):s o c k e t和T L I(運輸層接口:Transport Layer Interface)。
十五. 小結
T C P / I P協議族分為四層:鏈路層、網絡層、運輸層和應用層,每一層各有不同的責任。
在T C P / I P中,網絡層和運輸層之間的區別是最為關鍵的:網絡層( I P)提供點到點的服務,而運輸層( T C P和U D P)提供端到端的服務。
一個互聯網是網絡的網絡。構造互聯網的共同基石是路由器,它們在I P層把網絡連在一
起。
在一個互聯網上,每個接口都用I P地址來標識,盡管用戶習慣使用主機名而不是I P地址。
域名系統為主機名和I P地址之間提供動態的映射。端口號用來標識互相通信的應用程序服務器使用知名端口號,而客戶使用臨時設定的端口號。