TCP/IP是一個真正的開放式系統。它可以使運行著完全不同的作業系統,由不同廠家生產的各種型號的電腦互相進行通訊。TCP/IP協議簇是Internet的基礎,也是當今最流行的組網形式。
TCP/IP
的分層網路通訊協定通常分不同層次進行開發,每一層分別負責不同的通訊功能。TCP/IP模型分為:網路接入層,網路層,傳輸層(主機-主機層),應用程式層。
網路接入層:處理與電纜(或其他任何傳輸媒介)的物理介面細節(編碼的方式,成幀的規範等)。現今在網路接入層上較流行的技術有IEEE802.3乙太網路,無線,框架轉送,ATM,X.35,PPP等。
網路層:處理分組在網路中的活動,為經過邏輯網路路徑的資料進行路由選擇。網路層上的協議主要有IP,ICMP,IGMP等。網路層上的載體是IP協議,同時被TCP和UDP使用。基於IP的附屬協議有ICMP,IGMP。(ICMP和IGMP的定位比較模糊,位於網路層和傳輸層之間。而RARP和ARP則位於接入層和網路層之間)。ICMP:IP層使用ICMP與其他主機或路由器交換錯誤判文和其他重要訊息。使用ICMP的應用程式主要有:Ping和traceroute。IGMP:internet組管理協議。它用來把一個UDP資料報多播到多個主機。ARP和RARP是某些網路介面使用的特殊協議,用來轉換IP層和網路介面層使用的地址。
傳輸層:為兩台主機上的應用程式提供端到端的通訊。傳輸層協議有傳輸控制通訊協定(TCP)和使用者資料包通訊協定(UDP)。TCP使用不可靠的IP服務,並提供一種可靠的傳輸層服務。TCP所做的工作包括把應用程式交給它的資料分成合適的小塊交給下面的網路層,確認接收到的分組,設定發送最後確認分組的逾時時鐘等。基於TCP的應用程式層程式有telnet,Rlogin,FTP ,SMTP。UDP為應用程式發送和接收資料報,和TCP不同,UDP是不可靠的。UDP只是把稱作資料報的分組從一台主機傳送到另一台主機,但不保證該資料報能到達另一端。任何必須的可靠性由應用程式層來提供。基於UDP的應用程式層程式有TFTP,DNS,BOOTP,SNMP。傳輸層和資料連結層都定義了流控和差錯控制機制,不同之處在資料連結層強調控制資料鏈路上的流量,即串連兩台裝置的物理介質的流量。而傳輸層控制邏輯鏈路上的流量,即兩台裝置的端到端串連。這種串連可能跨越多個資料鏈路。
應用程式層
:負責處理特定的應用程式細節。如Telnet,FTP,SNMP,SMTP,TFTP等。應用程式層上的使用者進程有直接調用ICMP的,比如PING,Traceroute。應用程式層上的路由協議有RIP和BGP。BGP使用TCP連接埠179傳送它的路由資訊。而RIP使用UDP介面傳遞它的資訊。其他路由協議是IP層協議,因為它們直接在IP資料包中封裝了它們的資訊。
互連網地址IP地址的分類:(A,B,C,D,E)有三類IP地址:單播地址,廣播位址,多播地址。單播地址目的為單個主機;廣播位址目的為給定網路上的所有主機;多播地址目的為同一組內的所有主機。網域名稱系統:是一個分布式的資料庫,提供IP地址和主機名稱之間的映射資訊。由成千上萬台DNS伺服器組成。分配全球IP地址的管理機構:InterNIC ( internet network information centre)interNIC http://rs.internic.net(分配面向全球的IP地址)中國:http://www.cnnic.net.cn (中國境內的互連網地址和AS號申請)
封裝與分用當應用程式用TCP傳送資料時,資料被送入協議棧中,然後逐層通過直到物理層以位元流形式送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊),這個過程叫做封裝。乙太網路資料幀結構的物理特性是其長度必須在
46-1500位元組之間。網路介面分別要發送和接收IP,ARP和RARP的資料,因此也必須在乙太網路的幀首部加入某種形式的標識,以指明產生資料的網路層協議。乙太網路幀首部有一個16bit的框架類型域(ip,arp,rarp)。由於TCP,UDP,ICMP,IGMP都要向IP傳送資料,因此IP必須在產生的IP首部中加入某種標識,以表明資料屬於哪一層。IP在首部中存入一個長度為8bit的數值,稱作協議域(icmp,igmp,tcp,udp,esp,gre),1表示ICMP,2表示IGMP,6表示TCP,17表示UDP。TCP和UDP都用一個16bit的連接埠號碼來表示不同的應用程式(ftp,telnet,http)TCP和UDP把源連接埠號碼和目的連接埠號碼分別存入報文首部中。 分用:當目的主機收到一個乙太網路資料幀時,資料就開始從協議棧中由下層升往上層,同時去掉之前各層協議加上的報文首部。每層協議都要去檢查報文首部中的協議標識,以確定接收資料的上層協議。
客戶服務器模型C/S模型主要分為重複型或並髮型。並髮型伺服器的優點在於它是利用產生其他伺服器的方法來處理客戶的請求。TCP伺服器是並發的,而UDP伺服器是重複的(重複型的應用已經很少了)。
連接埠號碼伺服器一般都是通過知名連接埠號碼來識別的。用戶端口號又稱作臨時連接埠號碼(即存在時間很短)。大多數TCP/IP實現給臨時連接埠分配1024-5000之間的連接埠號碼。(常從1024往上選)Solaris2.2是一個例外,通常TCP和UDP的預設連接埠號碼從32768開始。大於5000的連接埠號碼是給其他伺服器預留的。(internet上並不常見的服務)知名連接埠號碼是由Internet號分配機構(Internet Assigned Number Authority,IANA)來管理。
大多知名連接埠為奇數的由來:由於連接埠號碼都是從TCP的前身NCP派生而來。NCP是單工的,所以預留了一對奇偶連接埠號碼。而TCP/IP協議中的TCP和UDP是全雙工系統的,所以只引用了其中的奇數連接埠。
Internet
和
internet
的區別internet:用一個共同的協議簇把多個網路連接在一起。Internet:通過TCP/IP互相通訊的所有主機的集合。Internet是一個internet,但internet不等於Internet。
RFCIETF網站:www.ietf.org 擷取一份RFC文檔:www.ietf.org/rfc.html當前最實用的RFC文檔目錄:ftp://ftp.rfc-editor.org/innotes/std/stdl.txt 參考書籍:Stevens,W.R.TCP/IP Illustrated,Vol.1.ReadingComer,D.E.Internetworking with TCP/IP,Vol.1Jeff Doyle.Routing TCP/IP Vol.1 Second Edition