萬盛學電腦網

 萬盛學電腦網 >> 網絡基礎知識 >> 計算機網絡協議基本知識

計算機網絡協議基本知識

  計算機網絡協議

  網絡協議為計算機網絡中進行數據交換而建立的規則、標准或約定的集合。例如,網絡中一個微機用戶和一個大型主機的操作員進行通信,由於這兩個數據終端所用字符集不同,因此操作員所輸入的命令彼此不認識。為了能進行通信,規定每個終端都要將各自字符集中的字符先變換為標准字符集的字符後,才進入網絡傳送,到達目的終端之後,再變換為該終端字符集的字符。當然,對於不相容終端,除了需變換字符集字符外還需轉換其他特性,如顯示格式、行長、行數、屏幕滾動方式等也需作相應的變換。

  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,這種書寫方法叫做點數表示法。

copyright © 萬盛學電腦網 all rights reserved