2 項進行中

115-1 選課時程

進行中

  • 初選第一階段 6/15 – 6/18
  • 初選第二階段 6/22 – 6/25
  • 校際選修 進行中 8/24 – 9/18
  • 初選第三階段 8/31 – 9/3
  • 開學後加退選 進行中 9/7 – 9/21
  • 逾期加退選 9/21 – 9/24
選課資源

加入行事曆

選擇訂閱 Google Calendar,或下載通用的 ICS 檔案。

使用 Google Calendar 時,Google 會收到這份課表的公開連結。

開源核心網路設計與實作

Open-Source Core Network Design and Implementation

學期
114-1
學分
0 學分
當期課號
535607
永久課號
CSIC30195
開課單位
網路工程研究所
授課教師
陳志成、陳毅
校區
光復
類別
選修
上課時間表
週一
5
13:20–14:10
開源核心網路設計與實作
ED201(光復)
3 節連堂
6
14:20–15:10
7
15:30–16:20

* 根據陽明交大上課時間表所列

概述

本課程以培養通訊網路程式設計人才為目標。核心網路在通訊網路中扮演著不可或缺的角色,開發網路元件需要具備豐富的領域知識(軟體定義網路、容器、網路程式設計)。本課程涵蓋前面提到的多種技術,以深入淺出的方式帶著學生體驗核心網路的開發與應用。 本課程將以 free5GC 開源軟體為核心,並輔以其他開源工具,如Kubernetes、Docker、UERAMSIM、ONF Aether、Nephio、LoxiLB等。free5GC為陳志成教授領導開發的核心網路開源軟體,於2024年9月16日加入全球開源軟體領導組織—Linux基金會。 期末專案說明: 期末專案將會以分組的方式進行,專案的目標包括但不限於核心網路與雲原生的整合、核心網路的測試方法、網路元件的實作改進、利用 Linux 核心機制改善或增加現有專案的功能。 在課程的第 12-14 周間,每次上課會保留一小時與學生一同討論專案進度、交流開發與除錯之技巧。 This course is designed to train professionals in communications network programming. The core network plays an indispensable role in communications networks, and developing network components demands ex-tensive domain knowledge (software-defined networking, containerization, network programming). This course covers the aforementioned technologies in a clear, approachable manner, guiding students through the development and application of core networks. The course centers on the open-source software free5GC and is supplemented by other open-source tools such as Kubernetes, Docker, UERAMSIM, ONF Aether, Nephio, and LoxiLB. free5GC is a core-network open-source project led by Professor Jyh-Cheng Chen and, as of September 16, 2024, is part of the Linux Foundation’s global open-source leadership organization. Final Project Details: The final project will be conducted in teams. Project objectives may include, but are not limited to: integrat-ing the core network with cloud-native technologies; devising testing methodologies for the core network; implementing and improving network components; and enhancing or extending existing projects’ func-tionality using Linux kernel mechanisms. During Weeks 12–14, each class session will reserve one hour for project-progress discussions with the instructor, as well as the exchange of development and debugging techniques.

先修科目

必備:計算機網路概論、網路程式設計、C 語言 Required: Introduction to Computer Networks, Network Programming, C Language; 建議:Go 語言、容器化技術 Recommended: Go Language, Containerization

備註

無備註

教學方式

https://github.com/free5gc/free5GLabs https://free5gc.org/doc/ https://ensreg.github.io/CNDI2025 助教(TA):杜峯 (dufengpro.ii13@nycu.edu.tw)

評分方式

Project 1 (15%) + Project 2 (15%) + Project 3 (15%) + Project 4 (15%) + Final Project (40%)

課程大綱
  • Syllabus + Introduction

    講授:
    3
  • Network Functions

    5G Network Functions

    講授:
    3
  • Protocol Stack

    1. NGAP 2. NAS 3. PFCP 4. SBI

    講授:
    2
    示範:
    1
  • 5G Procedures

    1. Registration 2. PDU Session Establishment

    講授:
    2
    示範:
    1
  • 5GC Deployments

    1. Bare metal 2. Docker 3. Kubernetes

    講授:
    4
    示範:
    2
  • 5GC Development

    1. Golang programming 2. How to collaborate 3. NF software architecture 4. Tips for Development and Testing 5. Kernel module 6. Debugging

    講授:
    15
  • Use Cases sharing

    1. Towards5gs 2. ONF Aether 3. Nephio 4. LoxiLB 5. 5G Evolution towards 6G

    講授:
    3
  • Final Project

    Announcement + Discussion + DEMO Code Review

    講授:
    12
週次計畫
週次主題
第 1 週

Syllabus + Introduction

第 2 週

5G Network Functions

第 3 週

5G Protocol Stack

第 4 週

5G Procedures

第 5 週

5GC Deployments 1. Install the free5GC on VM 2. Use RAN simulation tools to test the 5GC 3. Use docker (compose) to deploy the free5GC

第 6 週

5GC Deployments 1. K8s introduction 2. Use helm to deploy the free5GC

第 7 週

5GC Development 1. How to trace the source code 2. Project dependencies 3. Common tools

第 8 週

Final Project announcement

第 9 週

5GC Development – debugging - Log - Debugger - Dmesg - tcpdump

第 10 週

5GC Development - How to contribute (collaborate) to community - How to read 3GPP Spec(s) - Implement the new features, which follow the 3GPP Spec(s) - Submit your PATCH

第 11 週

5GC Development - How to write unit test - How to write integration test - Our existed testing tools in CI/CD pipline

第 12 週

5GC Development + Project development/review (1 hr) - OAM system development

第 13 週

5GC Development + Project development/review (1 hr) - Kernel module development

第 14 週

Use Cases sharing + Project development/review (1 hr)

第 15 週

Final Project DEMO

第 16 週

Final Project DEMO

教科書

無,授課教師準備投影片 None. Lecture slides will be prepared by the instructor.

Office Hours
地點
EC 415 or online
時間
TBD
聯絡方式
jcc@nycu.edu.tw ychen.cs10@nycu.edu.tw