基于嵌入式TCP/IP軟件體系結構的優化設計與實現(06-100)
另外,TCP/IP一般采用C語言或者混合匯編,而使用可重入函數和一般指針(generic pointer)使得程序代碼增大,運行速度變慢。所以使用函數指針時,應手動重建調用樹(Call tree),或將函數指針調用的函數設置為可重入函數,同時使用“指定存儲類型”的指針(memory-specific pointer),防止數據包的不必要的拷貝以及優化計算校驗和和內存拷貝函數。另外,Reentrant類型的函數比一般函數速度要慢很多,但是某些時候為了程序結構的需要必須使用Reentrant,這就需要在速度和結構之間作一個選擇。
本文引用地址:http://www.104case.com/article/81179.htm嵌入式TCP/IP的實現
TCP/IP的嵌入式實現一般通過以軟件方式嵌入到ROM中,然后通過輕網絡通訊技術與專用嵌入式網關連接,在嵌入式處理器中運行TCP/IP協議,提供TCP/IP到用戶的輕型網絡的連接和路由功能。
內存管理方法和無多余數據包拷貝的實現
嵌入式TCP/IP的內存管理可以用鏈表方法,即根據數據包大小分配相應大小的內存塊。如圖4所示,鏈表將內存塊鏈接起來,used字段表示該內存塊是否正在使用,pSstart和pEend則表示數據部分有效數據的開始地址和結束地址。
分配時,搜索內存鏈表找到一個沒有分配的比所需空間大的內存塊,截取所需的大小。該內存塊被截取以后可能還有較多剩余,這時將剩余部分從原內存塊中分離出來,成為一個新的內存塊,并插入鏈表。釋放時,將used值置為假,如果pNext或者pPre指向的鏈表單元也是空閑的,則將其和自己合并,以防止內存分片。在協議層之間傳送數據包只需傳送內存塊的起始地址。這種內存管理方法空間浪費小但是運算量相對較大。
tcp/ip相關文章:tcp/ip是什么
評論