基于SX單片機實現WebServer和網絡協議棧
網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議族,比如TCP/IP,是一組不同層次上的多個協議的組合。TCP/IP通常被認為是一個四層協議系統,如圖3所示。每一層負責不同的功能。
(1)數據鏈路層,有時也稱為網絡接口層。通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。
(2)網絡層,有時也稱作互聯網層。處理分組在網絡中的活動,例如分組的選路。在TCP/IP協議族中,網絡層協議包括IP協議(網際協議)、ICMP 協議(Internet互聯網控制報文協議)以及IGMP 協議(Internet組管理協議)。這里主要討論IP協議。
(3)傳輸層主要為兩臺主機上的應用程序提供端到端的通信。TCP為兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節。
(4)應用層負責處理特定的應用程序細節。幾乎各種不同的TCP/IP實現都會提供下面這些應用:
① HTTP超文本傳輸控制協議;
② TELNET遠程登錄;
③ FTP文件傳輸協議;
④ SMTP簡單郵件傳送協議;
⑤ SNMP簡單網絡管理協議。
因為數據鏈路層主要是網絡接口卡及驅動,由RTL8019AS來實現,所以下面討論網絡層、傳輸層和應用層協議棧的實現。
1. 網絡層
(1) IP協議
IP是TCP/IP 協議族中最為核心的協議。Internet所有的數據都以IP 數據報格式傳輸。IP協議最大的特點是提供不可靠的和無連接的數據包傳送服務。
不可靠(unreliable)的意思是它不能保證IP數據報能成功地到達目的地。IP僅提供最好的傳輸服務。若發生某種錯誤時,如某個路由器暫時用完了緩沖區,IP有一個簡單的錯誤處理算法:丟棄該數據報,然后發送ICMP(Internet控制報文協議)消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。
無連接(connectionless)的意思是IP并不維護任何關于后續數據報的狀態信息。每個數據報的處理是相互獨立的。這也說明,IP數據報可以不按發送順序接收。如果一信源向相同的信宿發送兩個連續的數據報(先是A,然后是B),每個數據報都是獨立地進行路由選擇,可能選擇不同的路線,因此, B可能在A到達之前先到達。
IP數據包的格式如圖4所示。
版本是指IP協議的版本號。目前的協議版本號是4, 因此IP也稱作IPV4。
評論