基于SX單片機實現(xiàn)WebServer和網(wǎng)絡協(xié)議棧
網(wǎng)絡協(xié)議通常分不同層次進行開發(fā),每一層分別負責不同的通信功能。一個協(xié)議族,比如TCP/IP,是一組不同層次上的多個協(xié)議的組合。TCP/IP通常被認為是一個四層協(xié)議系統(tǒng),如圖3所示。每一層負責不同的功能。
(1)數(shù)據(jù)鏈路層,有時也稱為網(wǎng)絡接口層。通常包括操作系統(tǒng)中的設備驅(qū)動程序和計算機中對應的網(wǎng)絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節(jié)。
(2)網(wǎng)絡層,有時也稱作互聯(lián)網(wǎng)層。處理分組在網(wǎng)絡中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP 協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議)以及IGMP 協(xié)議(Internet組管理協(xié)議)。這里主要討論IP協(xié)議。
(3)傳輸層主要為兩臺主機上的應用程序提供端到端的通信。TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡層,確認接收到的分組,設置發(fā)送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節(jié)。
(4)應用層負責處理特定的應用程序細節(jié)。幾乎各種不同的TCP/IP實現(xiàn)都會提供下面這些應用:
?、?HTTP超文本傳輸控制協(xié)議;
?、?TELNET遠程登錄;
③ FTP文件傳輸協(xié)議;
?、?SMTP簡單郵件傳送協(xié)議;
?、?SNMP簡單網(wǎng)絡管理協(xié)議。
因為數(shù)據(jù)鏈路層主要是網(wǎng)絡接口卡及驅(qū)動,由RTL8019AS來實現(xiàn),所以下面討論網(wǎng)絡層、傳輸層和應用層協(xié)議棧的實現(xiàn)。
1. 網(wǎng)絡層
(1) IP協(xié)議
IP是TCP/IP 協(xié)議族中最為核心的協(xié)議。Internet所有的數(shù)據(jù)都以IP 數(shù)據(jù)報格式傳輸。IP協(xié)議最大的特點是提供不可靠的和無連接的數(shù)據(jù)包傳送服務。

不可靠(unreliable)的意思是它不能保證IP數(shù)據(jù)報能成功地到達目的地。IP僅提供最好的傳輸服務。若發(fā)生某種錯誤時,如某個路由器暫時用完了緩沖區(qū),IP有一個簡單的錯誤處理算法:丟棄該數(shù)據(jù)報,然后發(fā)送ICMP(Internet控制報文協(xié)議)消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。
無連接(connectionless)的意思是IP并不維護任何關于后續(xù)數(shù)據(jù)報的狀態(tài)信息。每個數(shù)據(jù)報的處理是相互獨立的。這也說明,IP數(shù)據(jù)報可以不按發(fā)送順序接收。如果一信源向相同的信宿發(fā)送兩個連續(xù)的數(shù)據(jù)報(先是A,然后是B),每個數(shù)據(jù)報都是獨立地進行路由選擇,可能選擇不同的路線,因此, B可能在A到達之前先到達。
IP數(shù)據(jù)包的格式如圖4所示。
版本是指IP協(xié)議的版本號。目前的協(xié)議版本號是4, 因此IP也稱作IPV4。














評論