一、 tcp/ip 和 iso/osi
iso/osi模型,即開放式通訊系統互聯參考模型(open system interconnection reference model),是國際標準化組織(iso)提出的乙個試圖使各種計算機在世界範圍內互連為網路的標準框架,簡稱osi。
tcp/ip協議模型(transmission control protocol/internet protocol),包含了一系列構成網際網路基礎的網路協議,是internet的核心協議,通過20多年的發展已日漸成熟,並被廣泛應用於區域網和廣域網中,目前已成為事實上的國際標準。tcp/ip協議簇是一組不同層次上的多個協議的組合,通常被認為是乙個四層協議系統,與osi的七層模型相對應。
二、 tcp/ip分層模型
(1). 鏈路層
也稱作資料鏈路層或網路介面層(在第乙個圖中為網路介面層和硬體層),通常包括作業系統中的裝置驅動程式和計算機中對應的網路介面卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理介面細節。arp(位址解析協議)和rarp(逆位址解析協議)是某些網路介面(如乙太網和令牌環網)使用的特殊協議,用來轉換ip層和網路介面層使用的位址。
(2). 網路層
也稱作網際網路層(在第乙個圖中為網際層),處理分組在網路中的活動,例如分組的選路。在tcp/ip協議族中,網路層協議包括ip協議(網際協議),icmp協議(internet網際網路控制報文協議),以及igmp協議(internet組管理協議)。
ip是一種網路層協議,提供的是一種不可靠的服務,它只是盡可能快地把分組從源結點送到目的結點,但是並不提供任何可靠性保證。同時被tcp和udp使用。tcp和udp的每組資料都通過端系統和每個中間路由器中的ip層在網際網路中進行傳輸。
icmp是ip協議的附屬協議。ip層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。
igmp是internet組管理協議。它用來把乙個udp資料報多播到多個主機。
(3). 傳輸層
主要為兩台主機上的應用程式提供端到端的通訊。在tcp/ip協議族中,有兩個互不相同的傳輸協議:tcp(傳輸控制協議)和udp(使用者資料報協議)。
tcp為兩台主機提供高可靠性的資料通訊。它所做的工作包括把應用程式交給它的資料分成合適的小塊交給下面的網路層,確認接收到的分組,設定傳送最後確認分組的超時時鐘等。由於運輸層提供了高可靠性的端到端的通訊,因此應用層可以忽略所有這些細節。為了提供可靠的服務,tcp採用了超時重傳、傳送和接收端到端的確認分組等機制。
udp則為應用層提供一種非常簡單的服務。它只是把稱作資料報的分組從一台主機傳送到另一台主機,但並不保證該資料報能到達另一端。乙個資料報是指從傳送方傳輸到接收方的乙個資訊單元(例如,傳送方指定的一定位元組數的資訊)。udp協議任何必需的可靠性必須由應用層來提供。
(4). 應用層
應用層負責處理特定的應用程式細節。
三、 資料的封裝與分用
當應用程式用tcp傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊),該過程如圖所示。
tcp傳給ip的資料單元稱作tcp報文段或簡稱為tcp段(tcp segment);udp資料與tcp資料基本一致。唯一的不同是udp傳給ip的資訊單元稱作u d p資料報(udp datagram),而且udp的首部長為8位元組。ip傳給網路介面層的資料單元稱作ip資料報(ip datagram)。通過乙太網傳輸的位元流稱作幀(frame )。
當目的主機收到乙個乙太網資料幀時,資料就開始從協議棧中由底向上公升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收資料的上層協議。這個過程稱作分用(demultiplexing)。協議是通過目的埠號、源i p位址和源埠號進行解包的。
四、 其他相關概念
(1) ip位址
網際網路上的每個介面必須有乙個唯一的internet位址(也稱作ip位址)。ip位址長32 bit。internet位址並不採用平面形式的位址空間,如1、2、3等。ip位址具有一定的結構,五類不同的網際網路位址格式如下:
(2). 埠號
伺服器一般都是通過知名埠號來識別的。例如,對於每個tcp/ip實現來說,ftp伺服器的tcp埠號都是21,每個telnet伺服器的tcp埠號都是23,每個tftp (簡單檔案傳送協議)伺服器的udp埠號都是69。任何tcp/ip實現所提供的服務都用知名的1~1023之間的埠號。這些知名埠號由internet號分配機構(internet assigned numbers authority, iana)來管理。知名埠號介於1~255之間;256~1023之間的埠號通常都是由unix系統占用,以提供一些特定的unix服務;1024~5000埠號用於客戶端分配臨時埠號;大於5000的埠號是為其他伺服器預留的。
(3). dns
dns 是計算機網域名稱系統 (domain name system 或domain name service) 的縮寫,它是由解析器以及網域名稱伺服器組成的。網域名稱伺服器是指儲存有該網路中所有主機的網域名稱和對應ip位址,並具有將網域名稱轉換為ip位址功能的伺服器。
TCP IP協議詳解
tcp ip協議是乙個比較複雜的協議集,有很多專業書籍介紹。在此,我僅介紹其與程式設計密切相關的部分 乙太網上tcp ip協議的分層結構及其報文格式。我們知道tcp ip協議採用分層結構,其分層模型及協議如下表 傳 輸 層 transport tcp udp 網 間 網層 internet ip a...
TCP IP協議詳解
tcp ip協議並不是我們通常所認為的tcp協議和ip協議,而是基於tcp和ip這兩個最初的協議之上的不同的通訊協議的大集合。用於從應用程式到網路的資料傳輸控制。我們通常稱他們為tcp ip協議族,它是70年代中期美國國防部為其arpanet廣域網開發的網路體系結構和協議標準,其中大致包含了下面這些...
TCP IP協議分層詳解
一 tcp ip 和 iso osi模型區別 tcp ip 和 iso osi iso osi模型,即開放式通訊系統互聯參考模型 open system interconnection reference model 是國際標準化組織 iso 提出的乙個試圖使各種計算機在世界範圍內互連為網路的標準框...