TCP/IP協議

TCP/IP協議

Internet最基本的協議
Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的标準。
    中文名:傳輸控制協議/因特網互聯協議 外文名: 适用領域: 所屬學科: 英文名:Transmission Control Protocol/Internet Protocol 又名:網絡通訊協議 簡稱:TCP/IP協議 層級結構:4層

曆史

為了減少網絡設計的複雜性,大多數網絡都采用分層結構。對于不同的網絡,層的數量、名字、内容和功能都不盡相同。在相同的網絡中,一台機器上的第N層與另一台機器上的第N層可利用第N層協議進行通信,協議基本上是雙方關于如何進行通信所達成的一緻。該系統在基于TCP/IP協議的基礎上,通過比較幾種網絡數據獲取的方法後,提出采用第三方提供的虛拟設備驅動作為和WIN32應用的通訊接口,實現實時的數據挖掘。然後對原始數據進行整理分析,并對外發布實時信息。

不同機器中包含的對應層的實體叫做對等進程。在對等進程利用協議進行通信時,實際上并不是直接将數據從一台機器的第N層傳送到另一台機器的第N層,而是每一層都把數據連同該層的控制信息打包交給它的下一層,它的下一層把這些内容看做數據,再加上它這一層的控制信息一起交給更下一層,依此類推,直到最下層。最下層是物理介質,它進行實際的通信。相鄰層之間有接口,接口定義下層向上層提供的原語操作和服務。相鄰層之間要交換信息,對等接口必須有一緻同意的規則。層和協議的集合被稱為網絡體系結構。

每一層中的活動元素通常稱為實體,實體既可以是軟件實體,也可以是硬件實體。第N層實體實現的服務被第N+1層所使用。在這種情況下,第N層稱為服務提供者,第N+1層稱為服務用戶。

服務是在服務接入點提供給上層使用的。服務可分為面向連接的服務和面向無連接的服務,它在形式上是由一組原語來描述的。這些原語可供訪問該服務的用戶及其他實體使用。

名詞定義

IP

IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP并沒有做任何事情來确認數據包是否按順序發送的或者有沒有被破壞,IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。

高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP确認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最後一個系統傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那麼,許多依靠IP源地址做确認的服務将産生問題并且會被非法入侵。

TCP

TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以隻能用于端到端的通訊。

TCP提供的是一種可靠的數據流服務,采用“帶重傳的肯定确認”技術來實現傳輸的可靠性。TCP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。

如果IP數據包中有已經封好的TCP數據包,那麼IP将把它們向‘上’傳送到TCP層。TCP将包排序并進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序号和确認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

TCP将它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流将信息送回TCP層,TCP層便将它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。

面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名數據庫),但使用UDP傳送有關單個主機的信息。

UDP

UDP是面向無連接的通訊協議,UDP數據包括目的端口号和源端口号信息,由于通訊不需要連接,所以可以實現廣播發送。

UDP通訊時不需要接收方确認,屬于不可靠的傳輸,可能會出現丢包現象,實際應用中要求程序員編程驗證。

UDP與TCP位于同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網絡時間協議)和DNS(DNS也使用TCP)。

欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨着更大的危險。

ICMP

ICMP與IP位于同一層,它被用來傳送IP的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統的更準确的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務。

通訊端口

TCP和UDP服務通常有一個客戶/服務器的關系,例如,一個Telnet服務進程開始在系統上處于空閑狀态,等待着連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息并發出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。

兩個系統間的多重Telnet連接是如何相互确認并協調一緻呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行确認:

源IP地址 發送包的IP地址。

目的IP地址 接收包的IP地址。

源端口 源系統上的連接的端口。

目的端口 目的系統上的連接的端口。

端口是一個軟件結構,被客戶程序或服務進程用來發送和接收信息。一個端口對應一個16比特的數。服務進程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口号是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。

數據格式

數據幀:幀頭+IP數據包+幀尾 (幀頭包括源和目标主機MAC初步地址及類型,幀尾是校驗字)

IP數據包:IP頭部+TCP數據信息(IP頭包括源和目标主機IP地址、類型、生存期等)

TCP數據信息:TCP頭部+實際數據 (TCP頭包括源和目标主機端口号、順序号、确認号、校驗字等)

IP地址

在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現,我們稱它為主機。為了實現各主機間的通信,每台主機都必須有一個唯一的網絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現混亂。

Internet的網絡地址是指連入Internet網絡的計算機的地址編号。所以,在Internet網絡中,網絡地址唯一地标識一台計算機。

我們都已經知道,Internet是由幾千萬台計算機互相連接而成的。而我們要确認網絡上的每一台計算機,靠的就是能唯一标識該計算機的網絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協議語言表示的地址。

在Internet裡,IP地址是一個32位的二進制地址,為了便于記憶,将它們分為4組,每組8位,由小數點分開,用四個字節來表示,而且,用點分開的每個字節的數值範圍是0~255,如202.116.0.1,這種書寫方法叫做點數表示法。

相關詞條

相關搜索

其它詞條