標(biāo)題:
TCP/IP協(xié)議棧移植的時(shí)候三個(gè)關(guān)鍵點(diǎn)
[打印本頁]
作者:
xuwei
時(shí)間:
2015-6-13 15:58
標(biāo)題:
TCP/IP協(xié)議棧移植的時(shí)候三個(gè)關(guān)鍵點(diǎn)
日照
上午看了看棧底層接口,主要有這樣幾個(gè)功能:
1:eth_input(struct pbuf *p, struct netif *inp);
2:ethernetif_output(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr)
3:rt_err_t eth_device_init(struct eth_device* dev, const char* name)
第一個(gè)是用來把網(wǎng)絡(luò)上的數(shù)據(jù)預(yù)分揀,分成IP包和ARP包,大體的步驟流程是:首先取出以太網(wǎng)層的類型數(shù)據(jù),然后判斷是IP還是ARP,然后對(duì)應(yīng)著各自的處理程序,
第二個(gè)是用來把TCP/IP的上層封裝數(shù)據(jù)加入ARP頭之后放入BUFF中,然后分揀是IP包還是ARP包然后加入各自的頭,最后通過PHY上傳到以太網(wǎng),基本上是輸入的逆運(yùn)算,
第三個(gè)是 初始化, 加載結(jié)構(gòu)類的幾個(gè)方法地址,比如說底層的收發(fā),標(biāo)志,MAC長度等一堆,最后:Set a network interface as the default network interface。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1