from http://blog.csdn.net/northcan/article/details/7272622
《TCP/IP Illustrated, Vol. 1: The Protocols》讀書(shū)筆記 by斜風(fēng)細雨QQ:253786989 2012-02-19
TCP/IP協(xié)議起源于60年代末美政府的一個(gè)分組交換網(wǎng)絡(luò )研究項目,現如今已成為計算機之間最常用的組網(wǎng)方式。
(1) 分層
TCP/IP協(xié)議簇分為4個(gè)不同的抽象層,每一層完成不同的功能。

應用層:應用層可能包括各種通用的網(wǎng)絡(luò )應用程序,如Telnet(遠程登錄)、FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳輸協(xié)議)、SNMP(簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議),或者是和公司業(yè)務(wù)相關(guān)的網(wǎng)絡(luò )服務(wù)程序。
運輸層:以前習慣叫傳輸層,為兩臺主機上的應用程序提供端對端的數據通信。傳輸層主要有兩種協(xié)議:TCP(傳輸控制協(xié)議),UDP(用戶(hù)數據報協(xié)議)。其中TCP把應用層交給它的數據分成合適大小的數據塊交給下面的網(wǎng)絡(luò )層,采用超時(shí)重發(fā),發(fā)送和接收確認機制保證數據的高可靠性通信。與之相比,UDP則為應用層提供一種簡(jiǎn)單的數據傳輸,它把數據報從一臺主機發(fā)送到另一臺主機,但不保證該數據報肯定能送到另一端。傳輸層使用UDP協(xié)議時(shí),任何必須的可靠性必須由應用層自己提供。
網(wǎng)絡(luò )層:處理數據包分組在網(wǎng)絡(luò )中的活動(dòng)。這一層的協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議),及IGMP協(xié)議(Internet組管理協(xié)議)。
鏈路層:有的書(shū)里面叫做網(wǎng)絡(luò )接口層??傊@一層負責的是數據的真真正正的物理傳輸,包括網(wǎng)卡驅動(dòng)程序,以及以太網(wǎng)協(xié)議等等。
對應用于操作系統OS,一般應用層是一個(gè)用戶(hù)進(jìn)程,傳輸層、網(wǎng)絡(luò )層、鏈路層是在內核進(jìn)中執行。應用層是具體的網(wǎng)絡(luò )應用程序的細節,其它三層負責數據在網(wǎng)絡(luò )中的傳輸。如上圖也可以看到TCP/IP協(xié)議簇不只包含TCP和IP兩種協(xié)議,在傳輸層還有UDP協(xié)議,所以TCP/IP只是一個(gè)命名,它們只是這個(gè)協(xié)議簇中的其中兩個(gè)。
(2) 簡(jiǎn)單通信圖示

圖示右邊的主機應用層運行FTP服務(wù)器程序,左邊的主機應用層運行FTP客戶(hù)程序。絕大多數網(wǎng)絡(luò )應用程序都設計為c/s(客戶(hù)/服務(wù)器)模式,服務(wù)器為客戶(hù)提供某種服務(wù)。
(3) 路由器
也成IP路由器(IP Router),它是一種特殊的用于網(wǎng)絡(luò )互連的硬件設備,可以為不同類(lèi)型的物理網(wǎng)絡(luò )提供鏈接。

從上圖可以看出路由器是在網(wǎng)絡(luò )層上對網(wǎng)絡(luò )進(jìn)行互連,還有一種網(wǎng)絡(luò )互連的途徑稱(chēng)為網(wǎng)橋,網(wǎng)橋是在鏈路層上對網(wǎng)絡(luò )進(jìn)行互連。網(wǎng)橋既可能是一個(gè)硬件設備,也可以是在計算機中安裝的網(wǎng)橋軟件。不過(guò)TCP/IP協(xié)議傾向于使用路由器而不是網(wǎng)橋來(lái)連接網(wǎng)絡(luò )。
(4)IP地址
互聯(lián)網(wǎng)中的每個(gè)網(wǎng)絡(luò )接口都必須有一個(gè)全球唯一的IP地址,長(cháng)32位,通常采用點(diǎn)分十進(jìn)制的形式表示,如:110.96.170.209。IP地址分為A、B、C、D、E五類(lèi),它們的格式和區別如下:

各類(lèi)IP地址的范圍:

看來(lái)我的機器的IP地址:110.96.170.209,屬于一個(gè)A類(lèi)的IP地址。
IP地址還可以分三類(lèi):?jiǎn)尾サ刂罚康臑閱蝹€(gè)主機)、廣播地址(目的端為給定網(wǎng)絡(luò )上的所有主機)以及多播地址(目的端為同一組內的所有主機)。
另外每個(gè)IP地址都是全球唯一的,所以必須有一個(gè)機構來(lái)管理。IP地址的注冊由InterNIC機構負責。
(5) DNS
DNS是Domain Name System(域名系統)的縮寫(xiě)。通過(guò)IP地址可以區分互聯(lián)網(wǎng)中的每個(gè)網(wǎng)絡(luò )接口,但IP地址本身不好記,所以人們喜歡使用主機名(如上網(wǎng)時(shí)使用的網(wǎng)址)。DNS就是一個(gè)分布式數據庫,提供IP地址和主機名之間的映射,使得通過(guò)主機名可以查看對應的IP地址,通過(guò)給定的IP地址可以查看其對應的主機名。
(6) 協(xié)議封裝
當進(jìn)行網(wǎng)絡(luò )通信時(shí),數據被送入協(xié)議棧中,依次通過(guò)應用層、傳輸層、網(wǎng)絡(luò )層、鏈路層,逐層加入各種協(xié)議的協(xié)議頭(有的協(xié)議也包括協(xié)議尾),最后封裝好的數據通過(guò)物理鏈路傳輸。

比如IP頭中有一個(gè)8bit的協(xié)議域,為1時(shí)表示ICMP協(xié)議向IP傳送數據,為2時(shí)表示IGMP協(xié)議向IP傳送數據,為6時(shí)表示TCP協(xié)議向IP傳送數據,為17時(shí)表示UDP協(xié)議向IP傳送數據。而TCP和UDP協(xié)議頭中都有一個(gè)16bit的端口號來(lái)表示不同的應用程序。
(7)c/s模型
絕大部分網(wǎng)絡(luò )應用程序采用c/s(客戶(hù)端-服務(wù)器)模型,這種模型的網(wǎng)絡(luò )程序分為重復型和并發(fā)型。
a) 重復型
1 服務(wù)器等待一個(gè)客戶(hù)請求
2 處理客戶(hù)請求
3 發(fā)送響應給請求客戶(hù)
4 返回第1步
重復型服務(wù)器在處理一個(gè)客戶(hù)請求時(shí),不能為其它客戶(hù)機提供服務(wù),弊端很大。
b) 并發(fā)型
1服務(wù)器等待一個(gè)客戶(hù)請求
2 啟動(dòng)一個(gè)新的進(jìn)程、任務(wù)或者線(xiàn)程來(lái)處理客戶(hù)請求,并在處理結束后終止。
3 返回第1步
并發(fā)型服務(wù)器的優(yōu)點(diǎn)就是可以同時(shí)處理多個(gè)客戶(hù)請求。
(8) 端口號
在同一臺主機上,會(huì )運行很多不同的網(wǎng)絡(luò )應用程序。那么傳輸層的TCP或者UDP協(xié)議是怎么區分應用層的不同應用程序呢?這就是端口號的作用。
很多通用的服務(wù)器端應用程序的端口號是固定的,比如FTP服務(wù)器的TCP端口號是21,Telnet服務(wù)器的TCP端口號是23,TFTP服務(wù)器的UDP端口號是69。這些知名端口號由IANA機構管理。
對于客戶(hù)端程序,通常使用臨時(shí)端口號。這些臨時(shí)端口號通常在1024-5000之間。
(9) RFC
所有的Internet標準都已RFC(Request for Comment)文檔的形式發(fā)布??梢垣@取RFC文檔的一個(gè)網(wǎng)站:http://www.rfc-editor.org/index.html
TCP/IP協(xié)議初步認識 ——《TCP/IP Illustrated, Vol. 1: The Protocols》讀書(shū)筆記 by斜風(fēng)細雨QQ:253786989 2012-02-19聯(lián)系客服