這個tcp/ip的教程時主要是考慮到現在的網際網路幾乎全都是基於tcp/ip協議的,所以我們應該明白的一點就是這個tcp/ip的架構究竟是什麼?它怎樣為我們服務。它成為被稱作“全球互聯網”或“因特網(Internet)”的基礎,能夠將絕大部分的計算機連接起來,不管你用什麼操作系統,可見tcp/ip體系是本世紀互聯網發展的根本基石。對於網絡程序員來說;了解tcp/ip的機理,可以有構造任何網絡應用程序的基本要素,什麼winsocket,串口通訊等等甚至木馬,你都會迎刃而解。
一
首先說說網絡協議的層次,網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議族,比如T C P / I P,是一組不同層次上的多個協議的組合。
(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則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一台主機發送到另一台主機,但並不保證該數據報能到達另一端。任何必需的可靠性必須由應用層來提供。
應用層 Telnet、FTP和e-mail等
運輸層 TCP和UDP
網絡層 IP、ICMP和IGMP
鏈路層 設備驅動程序及接口卡
(4)應用層,負責處理特定的應用程序細節。幾乎各種不同的T C P / I P實現都會提供下面這些通用的應用程序:?Telnet 遠程登錄,FTP 文件傳輸協議,SMTP 簡單郵件傳送協議,SNMP 簡單網絡管理協議,現在想要給大家說的是大多數的網絡應用程序都被設計成客戶—服務器模式在同一層上,雙方都有對應的一個或多個協議進行通信。例如,某個協議允許T C P層進行通信,而另一個協議則允許兩個I P層進行通信。
這裡實際上就是說應用層本身本不注意數據的傳遞和交換,它一般只是一個用戶進程,而上面我提到的運輸層及其以下的三層的目的就是處理通信的過程,他們不管你應用程序的事,分工明確。
二
還有一個概念問題,我們平時所聽到的諸如tcp,ip,ftp等等,實際上協議本身是獨立的,tcp是運輸層協議,ip是網絡層協議T C P / I P協議族是一組不同的協議組合在一起構成的協議族。盡管通常稱該協議族為T C P / I P,但T C P和I P只是其中的兩種協議而已(該協議族的另一個名字是I n t e r n e t協議族(Internet Protocol Suite))網絡接口層和應用層的目的是很顯然的—前者處理有關通信媒介的細節(以太網、令牌環網等),而後者處理某個特定的用戶應用程序( F T P、Te l n e t等)。但是,從表面上看,網絡層和運輸層之間的區別不那麼明顯。
構造互連網最簡單的方法是把兩個或多個網絡通過路由器進行連接。它是一種特殊的用於網絡互連的硬件盒。路由器的好處是為不同類型的物理網絡提供連接:以太網、令牌環網、點對點的鏈接和F D D I(光纖分布式數據接口)等等。這些盒子也稱作I P路由器(IP Router),但我們這裡使用路由器( R o u t e r )這個術語。