fbpx

A 部分 – 連網專案 – 用 C 語言實現 TCP/IP 通訊協定堆疊

C/C++ Linux 專案,網路 Socket 程式設計,建立 TCP/IP 通訊協定堆疊,使用 C 語言實現 L2 和 L3

報名參加課程

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

  • 從頭開始自己實現 TCP / IP 通訊協定堆疊的第2/3層
  • 編寫自定義 CLI 命令以配置網路拓撲
  • 從頭開始建構網路拓撲
  • 實施路由和交換演算法 – 實用方法
  • 計時器、GLthreads、程式庫整合、Makefile、專案模組化技術
  • 使用版本控制系統 git 從頭開始管理和開發大型原始碼
  • 這是理論最少的 100% 編碼課程
  • 在網路領域的所有其他面試中,都將要求你解釋基本的路由概念,所以請不要錯過本課程!

要求

  • 基本的 L2 和 L3 路由知識非常重要
  • 擅長 C 語言或任何一種主流語言的編碼
  • 必須知道如何用 git 工作 – 至少有基礎知識
  • 擅長 C 語言中的指標( Pointers )和記憶體管理技巧

課程說明

學生程度:中級到高階到專業工作人員,不適合沒有程式設計經驗的初學者。
與你的教授討論:可將此用作你大學最後一年的專案
注意:如果你要購買此課程,請不要購買我的其他課程 – “將 CLI 介面整合到 C / C++ 專案中”。本課程已包含它所有影片。

這是個 100% 編寫 C 語言程式的課程,我們將開發 TCP/IP 協議棧,從頭開始,有在資料鏈結層( Data Link Layer )、網路層( Network Layer )和應用層( Application Layer )的運作。這是一個大專案,分為 6 個迷你專案。姐妹課程 – A、B部分( 本課程為 A 部分 )。

本課程將為備好你勝任核心網路開發人員的角色,在業界。如果你對包括 ARP、 L3 路由( routing )在內的 L2 路由的基礎知識瞭如指掌,那麼你可能已經掌握了進入這門基於專案的課程所需的知識。如果沒有,你應該報名參加我的課程 – “網路概念和程式設計 – 從頭開始” 和至少做其節數: 3 至 5。對於 VLANs 實施,需要第 6、7 和 8 節。現在我們將在 C 語言中實踐這個理論。如果你還有其他喜歡的語言,請隨意用那門語言來學習這門課程,我不介意,但是我將用 C 語言來解釋邏輯和展示。

在這個課程中,我們將通過 6 個網路專案實現一個 TCP/IP 協議棧演示。所有下面的專案應該按照列出的順序進行。

專案1: 建構路由器和交換機的多節點拓撲模擬( MultiNode Topology Emulation )
專案2: 實現資料鏈結層( L2 路由) ,包括 ARP
專案3: 實施 L2 交換(基於 Mac 的學習和轉發)
專案4: 實現基於 Vlan 基於 Mac 學習和轉發
專案5: 實現網路層( L3 路由)
專案6: 案例研究: 實施 IP 隧道( IP-Tunnelling )技術(可選)

在這些迷你專案中,我們將通過 TCP/IP 協議棧層(= OSI 模型)實現資料包的上下行程。我們將實現 TCP/IP 堆疊 !!本課程有最小的 Socket 程式設計。不是每個網路專案都必須基於 socket 程式設計。

一路下來,我們將討論和實施我們遇到的新挑戰的解決方案。基於學生對這門課的回饋,這門課程將增加更多的專案。

在完成這些專案後,你可以:

  1. 分辨為什麼你需要資料鏈結層和網路層
  2. 如何在 TCP/IP 協議棧上設計一個新的應用程式協議(就像 ICMP、 HTTP 等都在 TCP/IP 協議棧上工作)
  3. 學習行業等級的網路程式設計。
  4. 學習編寫、解析和讀取資訊包緩衝區
  5. 瞭解端到端架構和網路應用程式及 TCP/IP 協議棧的設計
  6. 征服面試,成為網路開發工程師
  7. 提升你的 GitHub 帳戶競爭力,新增一個強大的專案到你的 HAT,預計本課程的 LOCs 將超過10k!

本專案將填補理論知識與實施版本之間的差距。這聽起來怎麼樣 – “你親手編寫了解析 ARP、資料包轉發等程式碼” 。用這個專案提升你的履歷和 GitHub 競爭力。

本課程分為兩部分:

A 部分 – 在本課程的這一部分,我們將建立由路由器( routers )、交換機( switches )和連線它們的鏈結( links )組成的網路拓撲( Network topology )基礎設施。節點( Nodes )還可以與它們的鄰居交換資料包。基本上,我們想在這部分課程中模擬一個完全可程式設計和可配置的網路拓撲。這是1號專案。

B 部分 – 課程 A 部分中的可配置網路拓撲構建將用於實施上面列出的其餘 5 個專案 [ 2 – 6 ]。

我們將建立所有必要的基礎設施來模仿網路拓撲 – 這本身就是一個迷你專案。我們將建立節點,連線節點的鏈結( links ),在節點配置網路參數,傳送和接收串流 – 所有都在一個專案。這是一個大型專案,如果我們繼續增加 TCP/IP 協議棧的特性,預計 LOC 可能會達到數萬。你的極限是在天上。

這個專案最棒的地方在於,你會在整個過程中學到很多其他東西,包括定時器( Timers )的設定,網路拓撲( Network Topology )的構造,Glthreads – 一種鏈結列表的粘合方式,使用 Makefile 構建專案,我甚至不是在談論學習軟體設計技巧。課程的附錄部分增加了額外的內容。我們將在單獨的資料夾中模組化專案,每個資料夾包含實現特定 OSI 層功能的程式碼,是的,我們將從頭開始做這一切。

警告:

1.絕對的初學者,掙扎於基本的資料結構( data structures )和指標( pointers ),請不要考慮這門課。你沒有為這個專案做好準備。請先把你的時間投入到基礎學習上。

  1. 機器使用: Ubuntu 19.04,GCC 編譯器。因此,如果你使用其他編譯器或機器,我的程式碼可能無法在你的機器上編譯。

目標受眾

  • 在大學已修過連網課程的學生
  • 試圖進入連網開發角色的職業人士
  • 想與眾不同的人
  • 想取得卓越成就的人

講師簡介

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

你好,我是孟買理工學院( IIT Bombay )的畢業生,目前在網路跨國公司( Network MNCs )從事網路協議開發工作。

我有 8 年以上的行業經驗,從事網路程式設計和開發。

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

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

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

嗨,我是 Csepracticals 的設施經理 Ekta。我負責組織基礎結構的維護和保養,以確保它們滿足法律要求以及健全標準。 通過完成日常檢查並進行主動和被動維護,我確保該設施每天都能正常執行。

英文字幕:有

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

報名參加課程 | Get Good Deals

Sponsored by Udemy

也許你會有興趣

 歡迎使用 App / Email | Telegram 訂閱 網站更新

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

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: