A 部分 – C 語言的網路協定開發(從頭開始)

網路核心開發人員的網路程式碼編輯專案、Linux、系統程式設計、作業系統、C/C++ 專案

從這 12.5 小時的課程,你會學到

  • 了解網路協定如何在網路設備上實現
  • 逐步實施新功能
  • 資料包處理,透過資料包處理更新協定資料結構
  • 實現複雜的協定狀態機和網路演算法
  • Debugging 和程式碼錯誤排除以解決問題
  • 此專案的目的是讓你循環體驗典型網路協定的端到端實施

要求

  • 基本的 L2 和 L3 網路知識
  • 應該擅長指針( pointers )、指針算術( pointer arithmetic )
  • 必須了解 C 程式設計中的記憶體操作
  • 耐心、鬥士、挑戰者、勝利者

課程說明

這門課程是關於什麼的?

本課程介紹了我們實施類似 OSPF(Open Shortest Path First,開放最短路徑優先)和 ISIS(Intermediate System to Intermediate System,中間系統到中間系統)的偽內部網關協定的案例研究。 ISIS 和 OSPF 都是 IGP 協議,屬於連結狀態協定類別,並實現相同的目標。 別擔心,在我們編寫專案的第一行程式碼之前,我們將涵蓋有關我們將在專案中實現的內容的所有必要理論。

本完整課程分為 3 個部分 – A 部分、B 部分和 C 部分,其中 A 部分和 B 部分已上線,C 部分截至 2023 年 11 月 26 日正在開發中。

我們將使用我們的 tcp-ip 堆疊程式庫( stack library )來實作實際 ISIS 協定的簡化版本。 目標是從頭開始了解在設備上實現典型網路協定所涉及的細微差別。 一旦加入這個行業,您將終生從事這項工作,但在這裡,本案例研究旨在為您提供有關在(模擬)設備上實現典型網路協議所需的第一手經驗。

我敢打賭,如果您正在公司面試網絡開發人員職位,入門級最多 2-3 年的經驗,或者跨域切換到網絡開發,在你的簡歷中看到上述專案會讓面試官起雞皮疙瘩。 如果你能回答交叉問題(我將在本課程中介紹),那麼你將毫無疑問地被選中。 維護 GitHub,以便在需要時向他展示你的程式碼。

專案目標

此專案的目的是讓你循環體驗典型網路協定的端到端實作。 在本案例研究中,我們選擇了路由協定作為範例,但實現典型網路協定所涉及的高階邏輯或多或少是相同的。 例如,典型的網路協定必須:

  1. 可透過 CLI 配置
  2. 透過 show CLI 顯示內部狀態和結果
  3. 回應一般配置變更(例如連結關閉、介面上的 IP 位址變更等)
  4. 計算結果並將結果安裝在表中(路由資訊庫、MAC 表、硬體表等)
  5. 響應拓撲變化(鏈路故障、設備故障等)
  6. 超時陳舊資料結構(如果有)。
  7. 定期產生或處理協定資料包
  8. 如何為現有工作協議程式碼庫新增功能。 (這就是你作為軟體工程師一生要做的事情!!)

由於該專案相當大(我預計大約有 20k LOC),您還將有機會學習如何:

  1. 組織頭檔和 src 檔中的程式碼
  2. 模組化程式碼庫:如何將不同功能的程式碼保留在不同的 src 檔案中
  3. 測試新功能,並交叉檢查它不會破壞現有功能
  4. 透過版本控制系統(本例為 Github)維護程式碼提交
  5. 錯誤修復,並練習各種調試技術(gdb、Valgrind 等)

不用說,除非你做的專案相當大,否則你無法運用以上幾點。

完成本課程的先決條件

不用說,這個專案非常具有挑戰性,你需要相當擅長 C/C++ 程式設計中的資料結構和演算法。 如果你仍在努力學習 LinkedList/Trees 或其他常見的電腦科學基礎知識,我不建議你花時間在這個專案上 – 而是先建立你的基礎知識。 在你的履歷中展示這個專案是沒有意義的,如果你無法回答其他基礎知識,例如 Heap Memory(堆記憶體)、Multithreading (多執行緒)等問題,或者在反轉鍊錶( reversing a linked list )方面。

另外,我假設你沒有網路路由協定的背景(但擁有網路基礎知識,例如 L3 路由等),因此我將從絕對的零開始,在開始編碼之前涵蓋所有必要的理論。 在實施過程中,我們將學習與網路、專案規劃、功能設計或產業層級的程式碼編寫標準相關的各種新概念。

目標受眾

  • 致力於網路/分散式系統/系統程式設計工作的核心開發人員
  • 不適合那些尋求非開發角色的人(這是純粹的以開發為導向的課程)
  • 不適合那些仍在努力學習基本資料結構、基本 C 程式設計概念的人
  • 在職專業人士、求職者、網頁開發人員、學習者、渴望知識的人

講師簡介

Abhishek CSEPracticals 我建立了網路  ( 更多講師主講課程介紹 )

我從事編碼和軟體工作已有十年了。 我是 MNC 的網路開發人員。 我從印度理工學院孟買分校畢業,成為 MTech 專家,這為我豐富的工作經驗提供了支援。 我孜孜不倦地追求更深入的知識,並且總是想辦法將我所知道的知識與實際相結合。 我總是很樂意在下一代教育平台 Udemy 上培訓和鼓勵人們。

我將以非常實用的方式幫助您加強網路概念和基礎知識。 我還擅長系統軟體開發、Linux 系統程式設計和網路軟體開發。 我喜歡創建有關獨特的非標準主題和專案的課程。 檢查我的目錄,您會發現一些基於專案的課程,您可以將它們添加到您的履歷中。

您將完成作業並進行一個項目,在該項目中您將使用所有理論。 我確保您建立正確的理解,並且所有問題和疑慮都會得到解答。 讓我有幸指導您並為您的履歷增添有用的內容!

Ekta Ekta 設備經理  ( 更多講師主講課程介紹 )

大家好,我是 Ekta,Csepracticals 的設施經理。 我負責組織基礎設施的維護和保養,確保它們符合法律要求以及健康和安全標準。

我透過完成日常檢查並進行主動和被動維護來確保設施每天正常運作。

Shiwani Nigam 數位行銷執行  ( 更多講師主講課程介紹 )

嗨,我是 Shivani Nigam,市場行銷博士。我擅長研究線上購買產品時的消費者行為。我負責在此平台上行銷線上內容(Udemy課程)。 我還確保技術講師以完美的音訊/視訊品質提供課程,並確保講師優先解決學生的疑問和疑惑。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
  • 年訂閱每月 NT350(再享特別優惠:年度訂閱首年享 25% 折扣) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading