每個cpu有乙個單獨的softnet_data例項,用來儲存與網路中斷處理相關的報文輸出和輸出佇列。在輸出過程中會用到softnet_data中的output_queue和completion_queue佇列。
/*
* incoming packets are placed on per-cpu queues so that
* no locking is needed.
*/struct softnet_data
;
struct qdisc
;
softnet與介面層和網路層的關係
如果支援流量控制,則將待輸出的資料報根據規則加入到輸出網路裝置佇列中排隊,並在合適的實際啟用網路輸出軟中斷,依次將報文從佇列中取出通過網路裝置輸出。若不支援流量控制,則直接將資料報通過網路裝置輸出呼叫dev_queue_xmit()函式輸出資料報,前提是必須啟用中斷,只有啟用中斷之後才能啟用下半部分
e100_xmit_frame()為e100網路裝置的ndo_start_xmit介面實現,最終將資料報輸出到硬體。
網路輸出軟中斷
啟用資料報輸出軟中斷有多個介面,__netif_schedule()是最常用的幾個
如果輸出網路裝置沒有處於流量控制的排程中,則將該網路裝置鏈結到softnet_data中的output_queue佇列上,然後啟用網路輸出軟中斷對該佇列進行處理
net_tx_action()
net_tx_action()是資料報輸出軟中斷例程,一旦被啟用便會遍歷output_queue佇列待處理的輸出網路裝置,然後呼叫qdisc_run()在合適的時機傳送資料報。
網路介面層
網路介面層對應osi的資料鏈路層,物理層。資料鏈路層分為 mac子層 介質訪問控制層。完成幀的封裝與拆封,物理介質傳輸差錯的檢測 定址,實現介質訪問控制協議。llc子層 邏輯鏈路層。連線管理 建立和釋放連線 是與高層的介面,保證幀的可靠性,按序傳輸激流量控制。邏輯上的資料傳輸控制,作為一種資料傳輸思...
網路介面層
本文參考 計算機網路 第七版 謝希仁編著,博文僅供學習使用,用來記錄筆記 網路介面層包括資料鏈路層和物理層。物理層考慮的是怎樣才能在連線各種計算機的傳輸 上傳輸資料位元流,而不是指具體的傳輸 物理層的作用正是要盡可能地遮蔽掉這些傳輸 和通訊手段的差異,使物理層上面的資料鏈路層感覺不到這些差異。物理層...
資料介面層 IDAL
一 idal主要功能 1 這完全是 工廠模式 的一部分實現而已 2 這是一組介面類,其中包括了每個要公開的資料訪問方法。為每個資料庫產品單獨編寫的 dal 資料訪問層 都要實現這組介面所定義的方法 3 也就是規定了在 dal中編寫的 對使用者賬號進行操作的類 所必須執行的方法!4 idal 要達到的...