當前位置:趣味科普網>經驗>

電腦怎樣接收網路資料

經驗 閱讀(5.82K)

電腦怎樣接收網路資料

電腦接收網路資料依次經過網絡卡驅動和協議棧程式,以DM9000A網絡卡為例進行介紹接收資料的過程。

網絡卡在一個數據包到來時,會產生一個硬中斷,網路驅動程式會執行中斷處理過程:首先申請一個skb結構及pktlen加5大小的記憶體用於儲存資料,然後便將接收到的資料從網絡卡複製到這個skb的資料部分中。當資料從網絡卡中成功接收後,呼叫netifrx進一步處理資料,將skb加入到相應的inputpktqueue佇列中,並呼叫netifrxschedule,會產生一個軟中斷來執行網路協議棧的例程。這樣,中斷的上半部已完成,以下的工作則交由中斷的下半部來實現。

下半部的核心守護執行緒dosoftirq,將執行netrxaction,對資料進行處理。IP層輸入處理程式輪詢處理輸入佇列中的每個IP資料,在整個佇列處理完畢後返回。處理IP選項,驗證IP主機地址和正確性等,並呼叫相應協議處理程式。