Home - ianchen0119/Introduce-to-5GC GitHub Wiki

[INFO]

本系列文為 IThome 鐵人賽第十三屆參賽作品:5G 核心網路與雲原生開發之亂彈阿翔 系列文的初稿。

本系列文介紹 5G 核心網路的概念與實作:

  • 從認識 5G 系統概觀到原始程式碼探討
    • 讀規格書讓人想睡覺?沒關係,這邊有懶人包讓你看!
    • 使用世界第一套開源核心網路專案 free5GC 探討實作細節
  • 學習網路基礎、認識林姓商人的作業系統如何處理網路封包
    • Kernel & User space 上分別有什麼作法?效能瓶頸在哪裡?
    • 除了使用 Container,還有什麼方法可以隔絕 Process 之間的網路資源
  • 了解為什麼各大 CSP(Cloud Service Provider)都想參與核心網路專案的開發/整合
    • 學習使用 docker 將核心網路專案容器化
    • 使用 docker-compose 管理 Network Functions
    • 容器化之後:認識 CNCF 產出的優秀專案(Kubernetes、Prometheus、Helm),將核心網路專案轉型為 Cloud-Native 應用
    • DevOps 與 GitOps 是什麼?怎麼做?

寫在開始之前

為什麼選擇 5G 核心網路作為主題?

微服務架構雲原生應用持續整合與持續交付這幾個名詞在這幾年充滿了整個軟體開發領域,對於像我這樣沒有經驗的軟體開發者來說,要從頭:

  • 規劃一個具規模性的網路服務
  • 以微服務架構的精神進行系統架構的設計
  • 實作它並且保證服務的可靠性、可維護性、可觀察性與可用性
  • 設計與實作可靠的持續整合與交付方案
  • 將服務部署至公有雲/私有雲

...並非不可能! 但是一個人要做到這麼多事需要耗費非常多的時間。對於我來說,快速掌握這些技術的方式是:

  • 站在巨人的角度看世界
  • 模仿
  • 發想與實踐

於是我決定結合自己本身的研究領域(核心網路)與想要學習的技術(DevOps),大量的閱讀前輩的文章與嘗試,最後就意外的產生這個系列文了。

特別感謝

在去年寫完兩個系列的挑戰賽後,我以為就讀碩士期間是不可能再參與 IT 邦幫忙鐵人賽了,這次還能順利參賽需要感謝兩個人:

  • 一個是我的指導老師陳志成教授,非常感謝老師同意我使用實驗室的開放原始碼專案參賽,相信藉由這次參賽,我能夠讓自己以及讀者群更了解核心網路的運作原理。
  • 同樣感謝我的女朋友支持我再度參賽,因為寫稿、內容編排調整花費的都是原本可以用來約會相處的時間,感恩女朋友、讚嘆女朋友!

相關資源

  • 3GPP 會議報告
    • 工研院資訊與通訊研究所參與 3GPP 會議的會議紀錄,如果想關注最新的發展,可以閱讀這些會議報告。
  • ONF - SD Core
    • ONF 的核心網路,文件整合的很清楚。
  • Awesome5G
    • 一個包含 5G 專案、學習資源連結的列表
  • TelecomHall Forum

目錄

Basics

繁體中文社群幾乎沒有介紹核心網路的文章(即使有也很破碎),導致對核網有興趣的人很難入門(會不知道該怎麼看規格書、該看哪一本規格書),本系列文的基礎章節會以 TS 23.501 與 TS 23.502 這兩份規格書為主軸,介紹 5G 核心網路的核心概念。

Protocols

介紹完核網的基本概念後,會探討除了 SBI 以外的幾個 Interface 分別使用哪些網路協定溝通,從 high layer 到 low layer 介紹每一層的工作與特性。

Procedures

在核心網路的世界中,每秒都會有大量的流程觸發,如果你嘗試閱讀 3GPP TS 23.502 也會發現它提到了許多讓人頭昏眼花的流程。考慮到系列文的可讀性,筆者會挑選幾個最常見的流程來介紹整個系統的運作,並且選擇最基本的註冊流程詳細說明,幫助大家理解規格書上的內容。

Advanced Topics

結束前兩章後,讀者們應該對核心網路有了基礎的認知,接下來就會進入進階篇章,分析專案原始碼與嘗試其他 DevOps tool 的整合。

關於作者

文章相關問題或勘誤歡迎留言或是發信到我的信箱: [email protected]

⚠️ **GitHub.com Fallback** ⚠️