tcp/ip協議實際上指的是乙個具有四層結構的協議簇。計算機網路中還有另乙個體繫結構,就是osi/rm(open system interconnection reference model,開放系統互聯參考模型),其具有七層結構,與tcp/ip的層次對應關係如圖1-1
這裡主要講的是tcp/ip協議,
osi/rm
就不再介紹了。
1)tcp/ip層次:應用層
主要協議:http,telnet,ftp,smtp等
主要功能:按照不同應用的特定要求和方式負責把資料傳
輸到傳輸層或者接收來自傳輸層的資料。
2)tcp/ip層次:傳輸層
主要協議:tcp,udp
主要功能:tcp為兩台主機提供高可靠性的資料通訊, 其工作包括把應用程式交換來的資料分成合適的小塊交給 下 面的網路層,確認接收的分組,設定傳送最後確認分組的超時 時鐘等。
udp則為應用層提供一種非常簡單的服務,它只是 把資料報的分組從一台主機傳送到另一台主機,但並不保證該 資料報能到達另一端。
3)tcp/ip層次:網路層
主要協議:ip,icmp,igmp
主要功能:主要為資料報選擇路由。其中,ip是
tcp/ip
協議簇中最為核心的協議。所有的
tcp,udp,icmp,igmp
資料 都以
ip資料報格式傳輸。
4)tcp/ip層次:鏈路層
主要協議:arp,rarp和裝置驅動程式及介面
主要功能:傳送時將ip包作為幀傳送,接收時把接收的位元組裝成幀;提供鏈路管理錯誤檢測等。
ipv4採用的是
32為位址,其5類
ipa類:
0 +
網路號(7位)
+ 主機號(
24位)
b類:10+
網路號(
14位)
+ 主機號(
16位)
c類:110+
網路號(
21位)
+ 主機號(8位)
d類:1110+
多播組號(
28位)
e類:11110+
保留(27
位)按目的端主機的範圍可將ip位址分為以下3類:
tcp和
udp採用
16位的埠號來識別應用程式,這意味著相同的埠號對於不同的傳輸層協議,表示的是不同的程序。例如,
tcp埠號23和
udp埠號
23是不同的。
伺服器一般都是通過熟知埠號(又稱保留埠號)來識別的,由iana(
internet assigned numbers authority, internet
號碼分配機構)管理,目前應該為
1~1023
。客戶端口號又稱為臨時埠號,即客戶程式執行時才存在,通常為
1024~5000
。從32768
開始的埠號通常作為
tcp和
udp的預設臨時埠號。也把
1024~65535
的埠號統稱為動態埠號。
注意:對於unix類系統來說,檔案
/etc/services
中包含了熟知埠號。就有超級使用者(
root
)許可權的程序,允許分配
1~1023
之間的埠號
。通訊過程中,當應用程式用tcp 傳輸資料時,資料被送入協議棧中,然後逐個通過每一層,直到被當作一串位元流送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊),這種「加頭加尾」的過程稱為封裝。該過程如圖
1-2所示:
當目的主機收到乙個乙太網資料幀時,資料就開始從協議棧中有底向上公升,同時去掉各層協議新增的報文首部。每層協議都要檢查報文首部中的協議標識,以確定接收資料的上層協議。這個過程稱為分用(demultiplexing),如圖
1-3所示:
要特別注意圖1-3中
arp, rarp,
和icmp, igmp
的位置,這幾個協議分別放在網路介面層與網路層,網路層與傳輸層之間的位置。目的是表明:這幾個協議不能簡單地歸併於某一層,但在分用過程中,下層的協議依據首部協議型別仍然採用了往上層協議提交資料的相同方式來處理協議資料單元。
rfc(
request for comment
)文件是一系列關於
internet
的技術資料彙編,這些文件詳細討論了計算機網路技術的各種資訊,重點是網路協議,程序,程式,概念,以及一些會議紀要,意見,各種觀點等。每乙個
rfc文件都用乙個數字來標識,數字越大,說明其中內容越新。
絕大多數網際網路技術標準出自ietf(
internet engineering task force, internet
工程任務組)。
ietf
成立於1985
年底,是全球網際網路最具權威的技術標準化組織,主要任務是負責網際網路相關技術規範的研發和制定。
可以通過ietf**查閱
rfc文件,其**是
。另外,也可以通過專門維護
rfc的
rfc)來查閱。
學會查閱rfc文件對學習
tcp/ip
協議具有重要意義。在學習中遇到不清楚的問題,往往都是對基礎的網路協議工作過程不清楚造成的。解決問題的有效途徑就是閱讀
rfc文件對協議工作原理或過程的描述。
查閱rfc文件時,一是需要確定它是最新的文件,二是需要注意
rfc文件的類別。
網路協議棧的實現一般都由作業系統來完成,在網路介面層還需要借助網路介面的驅動程式,即網絡卡驅動程式。程式設計介面有兩個層次:
1)傳輸層和網路層主要使用套接字程式設計;
2)網路介面層的訪問方法有bsd的
bpf,
linux
系統下的
sock_packet
介面,libpcap
函式庫等
socket也稱為
berkeley socket
,表明它是從伯克利版套接字發展而來的。
socket
介面是應用程式與
tcp/ip
協議棧的介面,它定義了一組函式或例程來支援
tcp/ip
網路應用程式開發。
unix
系列系統提供
socket
介面,windows
系列系統提供
winsock
介面基本socket api有若干常用函式,包括
socket(), close(), bind(), listen(), accept(), connect(), send(), recv()
等。socket api 可以方便地實現基於
tcp和
udp的程式設計,也可以通過原始套接字完成基於
ip的程式設計,如構建自己的資料報。
libpcap(
packet capture library
)是乙個提供針對網路資料報捕獲系統的高層介面的開源函式庫。
libpcap應用程式介面被設計用於
c語言或
c++,通過將網絡卡設定為混合模式,可以捕獲所有經過該網路介面的資料報。
libpcap的主要功能有資料報捕獲,自定義資料報傳送,流量採集與統計,以及規則過濾。
tcp ip協議概述
計算機網路分層 osi七層模型 由下到上 物理層,資料鏈路層,網路層,傳輸層,會話層,表示層,應用層 tcp ip四層模型 由下到上 鏈路層 網路層 傳輸層 應用層 為什麼會有兩種不同的模型呢?按照一般的說法,osi七層模型是直接提出理論的,而tcp ip模型是實際應用形成的規範,可以說乙個是學院派...
TCP IP協議概述
1.tcp ip協議的四個層次 a 鏈路層 資料鏈路層 網路介面層 通常包括作業系統中的裝置驅動程式和計算機中對應的網路介面卡。它們一起處理與電纜 或其他任何傳輸媒介 的物理介面細節。幀 frame i.arp 位址解析協議 rarp 逆位址解析協議 是某些網路介面使用的特殊協議,用來轉換ip層和網...
TCP IP協議簇概述
tcp ip是乙個真正的開放式系統。它可以使執行著完全不同的作業系統,由不同廠家生產的各種型號的計算機互相進行通訊。tcp ip協議簇是internet的基礎,也是當今最流行的組網形式。tcp ip的分層 網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。tcp ip模型分為 網路接入層...