網絡七層協議由上到下分為:應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。
主要介紹以下4層:
1) 鏈路層, 有時也稱作數據鏈路層或網絡接口層,通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。
鏈路層的主要目的有三個:為IP模塊發送和接收IP數據報;為ARP模塊發送ARP請求和ARP應答;為RARP發送RARP請求和RARP應答
2) 網絡層,有時也稱作互聯網層,處理分組在網絡中的活動,例如分組的選路。在T C P / I P協議族中,網絡層協議包括 I P協議(網際協議), I C M P協議( I n t e r n e t互聯網控制報文協議),以及I G M P協議( I n t e r n e t組管理協議)。
經常使用的ping程序就是向對方服務器或者主機發送一條ICMP報文,並等待TCMP的回顯報文應答。
3) 運輸層,主要為兩台主機上的應用程序提供端到端的通信。在 T C P / I P協議族中,有兩個互不相同的傳輸協議: T C P(傳輸控制協議)和 U D P(用戶數據報協議)。T C P為兩台主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鍾等。由於運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節。而另一方面, U D P則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一台主機發送到另一台主機,但並不保證該數據報能到達另一端。任何必需的可靠性必須由應用層來提供。這兩種運輸層協議分別在不同的應用程序中有不同的用途,這一點將在后面看到。
4) 應用層,負責處理特定的應用程序細節,也是與用戶打交道最多的協議層,幾乎各種不同的 T C P / I P實現都會提供下面這些通用的應用程序:
• Telnet 遠程登錄。(ssh是建立在應用層和傳輸層上的)
• FTP 文件傳輸協議。(現在依然很常用的文件傳輸協議)
• SMTP 簡單郵件傳送協議。
• SNMP 簡單網絡管理協議。

一個應用想要通過網絡進行通信,有一些協議層是必不可少的。從最開始的地址解析、選擇協議、三次握手建立連接(tcp),再到大報文分片分段、廣播多播、環回接口處理、失序報文重組、超時重發等等,是一個龐大且復雜的工作。不過,目前為止,涉及到編程的網絡部分都已經被封裝的簡單易用,只要申請了專用的結構體(像sockaddr_in等),建立起鏈接,接下來的大部分事情只需要通過write和read便可完成,內部所做的大部分晦澀難懂的操作都被隱藏。就像一段簡單的字符串‘hello world!’,一般需要添加傳輸協議頭部、IP頭部、以太網頭部進行打包,然后通過插口對對應的物理層傳輸到目的地。
示例:
此為在虛擬機中ping百度時所發生的經過。
開始為本地主機向根名字服務器查詢www.baidu.com,根名字服務器返回CNAME,指示這是一個域名,並附帶返回此域名指向的真實的ip,於是,本地主機向Baidu所在的ip發送ICMP報文並回顯應答。同時,服務器需要向本地主機對應的名字服務器詢問本地主機的域名信息,交互完成后,正常回顯本地主機的ICMP請求。
