2018的任务总结
2018年已經是過去式了,來到公司差不多滿一年。這一年里時間過的蠻快的,總體感覺忙忙匆匆,很有必要記錄一下。
一月&二月&三月 :
主要忙著開發內核抓包功能,功能雖然比較簡單但是對Linux內核網絡協議棧的知識要求很高。
遇到的主要問題是抓包的報文沒有mac地址,這個主要是因為在netfilter的鏈上捕獲報文,這個時候出去的報文是沒有mac地址的,
這個問題困擾了好久,大概在八月份在閱讀內核網絡協議棧源碼的時候才想到了一個解決方法,mac緩存,就是在系統收到報文的時候保存其mac地址,相當于arp緩存,這樣出去的報文就可以有mac了。
四月&五月&六月
這段時間在開發BFD(雙向循環檢測),主要用于雙機設備的時候主備檢測使用。主要的開發問題在于不知道怎么著手。第一次進行一個協議的開發沒有什么方向,后來在上司的建議下參考了一個開源實現kbfd。這份代碼是在內核實現的,并且內核版本比較老,無法直接拿來使用。但是參考價值還是有的,包括基本的BFD協議棧處理流程等。最終的實現與kbfd完全不一樣,完全在用戶層開發,有因為我們產品平臺運行的是Go代碼,因為對Golang不熟,只好使用CGO開發,這個項目學到了很多關于Linux網絡編程的知識以及認識到開源平臺的力量。bfd是支持加密的,目前僅僅支持非加密,后續學習后再補上這個功能。
七月&八月&九月
第三季度主要的工作包括前兩個季度工作的維護以及現有功能的維護。現有功能的維護包括內核轉發模塊以及相關模塊的IPv6支持。這部分工作難度不大,工作量足夠多。
十月&十一月&十二月
第四季度主要工作是SNMP功能開發以及IPv6的支持。SNMP開發主要任務是將net-snmp開源軟件移植到我們產品平臺上去,這一階段根據工作需求閱讀了net-snmp源碼,對其基本流程有了一個基本了解,然后結合Golang語言適配了自己的產品平臺。
2018年的主要項目就是這些,還有一些小事情沒有述及。總的來說,學習到很多知識,包括Linux網絡開發、Linux內核模塊開發、Linux網絡協議棧基本原理以及Golang開發等,雖說是學習了但是也僅僅是了解的程度,像是Linux網絡協議棧這一塊的內容,不花點時間閱讀內核源碼的話還真不敢說自己了解。哈哈。
2019年展望:
1. Linux網絡協議棧基本原理。
2. Linux網絡安全ipsec基本原理。
3. SIP處理。
またね
?
總結
- 上一篇: skb_shinfo(skb)-data
- 下一篇: 发动机扭矩怎么算?