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