tcp/ip的通訊協議
這部分簡要介紹一下tcp/ip的內部結構,為討論與網際網路有關的安全問題打下基礎。tcp/ip協議組之所以流行,部分原因是因為它可以用在各種各樣的通道和底層協議(例如t1和x.25、乙太網以及rs-232序列介面)之上。確切地說,tcp/ip協議是一組包括tcp協議和ip協議,udp(user datagram protocol)協議、icmp(internet control message protocol)協議和其他一些協議的協議組。
tcp/ip整體構架概述
應用層:應用程式間溝通的層,如簡單電子郵件傳輸(smtp)、檔案傳輸協議(ftp)、網路遠端訪問協議(telnet)等。
傳輸層:在此層中,它提供了節點間的資料傳送服務,如傳輸控制協議(tcp)、使用者資料報協議(udp)等,tcp和udp給資料報加入傳輸資料並把它傳輸到下一層中,這一層負責傳送資料,並且確定資料已被送達並接收。
互連網路層:負責提供基本的資料封包傳送功能,讓每一塊資料報都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(ip)。
網路介面層:對實際的網路**的管理,定義如何使用實際網路(如ethernet、serial line等)來傳送資料。
tcp/ip中的協議
以下簡單介紹tcp/ip中的協議都具備什麼樣的功能,都是如何工作的:
1. ip
網際協議ip是tcp/ip的心臟,也是網路層中最重要的協議。
ip層接收由更低層(網路介面層例如乙太網裝置驅動程式)發來的資料報,並把該資料報傳送到更高層---tcp或udp層;相反,ip層也把從tcp或udp層接收來的資料報傳送到更低層。ip資料報是不可靠的,因為ip並沒有做任何事情來確認資料報是按順序傳送的或者沒有被破壞。ip資料報中含有傳送它的主機的位址(源位址)和接收它的主機的位址(目的位址)。
高層的tcp和udp服務在接收資料報時,通常假設包中的源位址是有效的。也可以這樣說,ip位址形成了許多服務的認證基礎,這些服務相信資料報是從乙個有效的主機傳送來的。ip確認包含乙個選項,叫作ip source routing,可以用來指定一條源位址和目的位址之間的直接路徑。對於一些tcp和udp的服務來說,使用了該選項的ip包好象是從路徑上的最後乙個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連線。那麼,許多依靠ip源位址做確認的服務將產生問題並且會被非法入侵。
2. tcp
如果ip資料報中有已經封好的tcp資料報,那麼ip將把它們向『上』傳送到tcp層。tcp將包排序並進行錯誤檢查,同時實現虛電路間的連線。tcp資料報中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
tcp將它的資訊送到更高層的應用程式,例如telnet的服務程式和客戶程式。應用程式輪流將資訊送回tcp層,tcp層便將它們向下傳送到ip層,裝置驅動程式和物理介質,最後到接收方。
面向連線的服務(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(傳送和接收網域名稱資料庫),但使用udp傳送有關單個主機的資訊。
3.udp
udp與tcp位於同一層,但對於資料報的順序錯誤或重發。因此,udp不被應用於那些使用虛電路的面向連線的服務,udp主要用於那些面向查詢---應答的服務,例如nfs。相對於ftp或telnet,這些服務需要交換的資訊量較小。使用udp的服務包括ntp(網落時間協議)和dns(dns也使用tcp)。
欺騙udp包比欺騙tcp包更容易,因為udp沒有建立初始化連線(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與udp相關的服務面臨著更大的危險。
4.icmp
icmp與ip位於同一層,它被用來傳送ip的的控制資訊。它主要是用來提供有關通向目的位址的路徑資訊。icmp的『redirect』資訊通知主機通向其他系統的更準確的路徑,而『unreachable』資訊則指出路徑有問題。另外,如果路徑不可用了,icmp可以使tcp連線『體面地』終止。ping是最常用的基於icmp的服務。
5. tcp和udp的埠結構
tcp和udp服務通常有乙個客戶/伺服器的關係,例如,乙個telnet服務程序開始在系統上處於空閒狀態,等待著連線。使用者使用telnet客戶程式與服務程序建立乙個連線。客戶程式向服務程序寫入資訊,服務程序讀出資訊並發出響應,客戶程式讀出響應並向使用者報告。因而,這個連線是雙工的,可以用來進行讀寫。
兩個系統間的多重telnet連線是如何相互確認並協調一致呢?tcp或udp連線唯一地使用每個資訊中的如下四項進行確認:
源ip位址---傳送包的ip位址。
目的ip位址---接收包的ip位址。
源埠---源系統上的連線的埠。
目的埠---目的系統上的連線的埠。
埠是乙個軟體結構,被客戶程式或服務程序用來傳送和接收資訊。乙個埠對應乙個16位元的數。服務程序通常使用乙個固定的埠,例如,smtp使用25、xwindows使用6000。這些埠號是『廣為人知』的,因為在建立與特定的主機或服務的連線時,需要這些位址和目的位址進行通訊。
TCP IP協議原理
tcp協議原理 tcp每傳送乙個報文段,就啟動乙個定時器,如果在定時器超時之後還沒有收到ack確認,就重傳該報文。如圖所示,資料報由a的緩衝區發往b,b在收到資料報以後,回發乙個ack確認包給a,之後a將該資料報從緩衝區釋放。因此,該資料報會一直快取在a的緩衝區,直到乙個ack確認為止。在tcp i...
TCP IP協議原理
tcp每傳送乙個報文段,就啟動乙個定時器,如果在定時器超時之後還沒有收到ack確認,就重傳該報文。如圖所示,資料報由a的緩衝區發往b,b在收到資料報以後,回發乙個ack確認包給a,之後a將該資料報從緩衝區釋放。因此,該資料報會一直快取在a的緩衝區,直到乙個ack確認為止。在tcp ip協議中,tcp...
tcp ip工作原理
tcp ip 的工作原理 下面以採用tcp ip協議傳送檔案為例,說明tcp ip的工作原理,其中應用層傳輸檔案採用檔案傳輸協議 ftp tcp ip協議的工作流程如下 在源主機上,應用層將一串應用資料流傳送給傳輸層。傳輸層將應用層的資料流截成分組,並加上tcp報頭形成tcp段,送交網路層。在網路層...