實驗四 多媒體影音串流 使用OAI-LTE與WiFi網路整合的卸載與負載分享

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

课程名称 培训目标 学完本课程后,您应该能: 区分AP技术 描述CAPWAP隧道协议 华为技术有限公司 版权所有 未经许可不得扩散.
第十四章 無線通訊安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
EPC系统基础培训 廊坊移动 屈文杰 2014 年 12 月.
MIE-311 Mobile Network Security
快速換手FMIPv6之擷取路由預測機制 指 導 教 授:童 曉 儒 博 士 學 生:宋 仁 誠.
教育部補助「行動寬頻尖端技術跨校教學聯盟計畫-行動寬頻網路與應用-小細胞基站聯盟中心計畫」 Small Cell創新應用與服務專題 課程單元: LTE開源軟體 - OpenAirInterface之簡介與安裝流程 計畫主持人:許蒼嶺 授課教師:李宗南、簡銘伸、李名峰 教材編撰:張為捷、陳柏宇 國立中山大學.
企業升級 IPv6 注意事項與 雲端 IPv6 實務演練
网络协议及架构安全 培训机构名称 讲师名字.
高清数字电视直播在 校园网中的应用 姜开达
基于ARM和linux的开发 华中科技大学 武汉创维特 2017/3/20.
UClinux在3000平台上的移植.
資訊安全與系統管理 2013/3/13 Chien wei lin.
Netman Linux 的防火牆設計與應用 Netman
TCP Session Hijack 郭军权
Subversion (SVN) Presented by 李明璋 R /2/21
第16章 編譯與升級Kernel系統核心 課前指引
Socket.
计算机网络实验介绍 信息网络实验室 2017/9/13 04:55:22.
Linux Further.
單元4 OAI-LTE與WiFi網路實驗平台的建置
EPC核心网网络规划与开通配置 V1.0 1.
主讲:邓 志 龙 Linux网络技术 主讲:邓 志 龙
Speaker: Kai-Wei Ping Advisor: Prof Dr. Ho-Ting Wu 2014/06/23
Computer Network Lab 資碩一 黃麒瑋
第 13 章 DNS 著作權所有 © 旗標出版股份有限公司.
教育部補助「行動寬頻尖端技術跨校教學聯盟計畫-行動寬頻網路與應用-小細胞基站聯盟中心計畫」 Small Cell創新應用與服務專題 實驗單元: Small Cell實驗-觀察Management Report 計畫主持人:許蒼嶺 授課教師:李宗南 國立中山大學 資訊工程系.
臺東縣中小學資訊教育校園網路管理暨資訊安全防護計畫研習
配置编译内核.
CURELAN TECHNOLOGY Co., LTD Flowviewer FM-800A
網路伺服器應用 Linux Server Andres, Wen-Yuan Liao
教育部補助「行動寬頻尖端技術跨校教學聯盟計畫-行動寬頻網路與應用-小細胞基站聯盟中心計畫」 Small Cell創新應用與服務專題 課程單元: LTE/SAE網路架構與元件 計畫主持人:許蒼嶺 授課教師:李宗南、簡銘伸、李名峰 教材編撰:李名峰 國立中山大學 資訊工程系.
Small Cell創新應用與服務專題 實驗單元:建立Small Cell執行環境
教育部補助「行動寬頻尖端技術跨校教學聯盟計畫-行動寬頻網路與應用-小細胞基站聯盟中心計畫」 Small Cell創新應用與服務專題 課程單元: LTE之安全需求、安全特性 與安全機制簡介 計畫主持人:許蒼嶺 授課教師:李宗南、簡銘伸、李名峰 教材編撰:李名峰 國立中山大學 資訊工程系.
附錄 通訊協定堆疊.
Linux环境高级编程实验.
访问控制列表(ACL) Version 1.0.
Access Networks.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
An introduction to Subversion
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
CURELAN TECHNOLOGY Co., LTD Flowviewer FM-800A
Windows 2003 server 進階介紹 麋鹿.
江西财经大学信息管理学院 《组网技术》课程组
第七讲 网际协议IP.
Waz the 3G? 目前電視廣告全力播放「3G時代來了!」有人開玩笑說3G就是“game、girl、gamble”,3G到底是什麼?究竟3G和2G有什麼不同? 「先生,請問這是你家的狗嗎?」一群玩棒球的孩子,透過3G手機的即時影音服務,為心急如焚的老先生找回愛犬。 利用3G手機的動態影音電話,可以馬上看到心愛的女朋友,並且對她高唱“you.
第十三章 TCP/IP 與 Internet 網路連結技術
Linux核心編譯與模組管理 2013/01/19.
Git & github By 宋正倫 (修訂by jmchen).
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab3.
TANet PROTOCOL ANALYSIS - WIRESHARK - 350.
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
LWA (LTE-WiFi Aggregation)
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab3.
Source: Journal of Network and Computer Applications, Vol. 125, No
NAT技术讲座 主讲:周旭 大唐电信科技股份有限公司光通信分公司 数据通信部.
Speaker : Chang Kai-Jia Date : 2010/04/26
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
实验一:编译运行Linux内核并使用gdb进行调试
Mobile IPv4.
实验二:添加Linux系统调用及熟悉常见系统调用
行動寬頻介接網路與IoT實務應用-實驗課程
實驗一 OAI-LTE與WiFi網路整合的實驗平台建置
作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五
行動寬頻介接網路與IoT實務應用-實驗課程
教育部補助「行動寬頻尖端技術跨校教學聯盟第二期計畫 -- 行動寬頻網路與應用 -- 小細胞基站聯盟中心」 課程模組: 「LTE-Small Cell 核心網路架構及服務」 實驗二: QoS網路效能指標 (Delay, PLR, Throughput) 的量測 計畫主持人:許蒼嶺 (國立中山大學.
獨孤派作業系統 main memory 中正大學 作業系統實驗室 指導教授:羅習五.
Linux网络配置管理.
Presentation transcript:

實驗四 多媒體影音串流 使用OAI-LTE與WiFi網路整合的卸載與負載分享 教育部行動寬頻尖端技術人才培育計畫-小細胞基站聯盟中心 「小基站與WiFi之異質性網路存取」課程模組 實驗四 多媒體影音串流 使用OAI-LTE與WiFi網路整合的卸載與負載分享 助理教授:吳俊興 助教:王瑞元 國立高雄大學 資訊工程學系

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

實驗目的 理解LTE基本架構,並且學習LWIP實作方法 透過實驗理解LWIP技術之效能改進 學生得以了解各種網路效能指標之意義 使用現有工具軟體量測網路效能、培養解讀量測 數據之能力 培養學生在OAI與WiFi網路的實驗平台上實作影 音串流的卸載與負載分享等相關的程式實作技術

實驗項目 利用網路層Tunneling的LWIP技術來進行LTE /WLAN整合實驗 LWIP協定觀察、傳輸效能分析量測暨操作改進 使用串流Server與VLC播放進行影音測試

實驗架構 USRP OAI eNB OAI EPC Switch Internet UE Mobile UE Tablet UE Android x86

實驗環境

實驗硬體設備需求 名稱 規格 數量 目的 EPC 電腦型號: ASUS VivoPC UN65H 1 啟動MME, S-GW, P-GW功能 Ethernet Network Card (PCIE : Realtek RTL8111/8168、USB : TP-LINK UE300) 2 一張連內部網路, 一張連接外部網路 eNB 電腦規格: CPU:i7-6700 RAM : 32G 啟動OAISim功能 USRP B210 對UE接收及發送訊號 LTE基地台用來連接EPC UE Huawei E3372h-607(dongle) 連接eNB

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

LWIP介紹 將eNB和UE之間的連線使用IPsec Tunnel來傳送 安全性:SeGW輔助保護eNB的IP位址 再包裝一層IP header重送給UE eNB透過Ipsec Tunnel包上UE對應wifi網路目標位址 傳送封包 安全性:SeGW輔助保護eNB的IP位址 可處理上行和下行 GRE封裝,傳到目標節點 尚未支援同一IP連線同時透過LTE和Wi-Fi兩種介 面傳送

LWIP架構

3GPP-LWIP協定架構

IPsec 網際網路安全協定(Internet Protocol Security, 縮寫為IPsec) IPsec由兩大部分組成 是一個協定組合,透過對IP協定的分組進行加密和認 證來保護IP協定的網路傳輸協定族 一些相互關聯的協定的集合 IPsec由兩大部分組成 建立安全分組流的金鑰交換協定 網際網路金鑰交換(IKE)協定 保護分組流的協定 加密分組流的封裝安全載荷協定(ESP協定)或認證頭協 定(AH協定)協定,用於保證資料的機密性、來源可靠性 (認證)、無連線的完整性並提供抗重播服務

IP ESP 安全參數索引:與IP位址一同用來標識安全參數 序列號:單調遞增的數值,用來防止重放攻擊 載荷資料:實際要傳輸的資料 填充:某些塊加密演算法用此將資料填充至塊的 長度 填充長度:以位為單位的填充資料的長度 下一個頭:標識被傳送資料所屬的協定 認證資料:包含了認證當前包所必須的資料

IPsec Tunnel Mode 使用AH和ESP將整個欲傳送的IP Packet加密 並且再加上一個新的IP Header,才將Packet傳 送到接收端 IP Header AH ESP TCP Header Data

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

Tight Coupling of LTE WiFi Rafio Access Networks Integrating them at the radio protocol stack At IP layer Traditional way of cellular-Wi-Fi interworking A packet gateway Develop a variant of LWIP prototype@IITH and made commercial UE (Nexus 5) to readily work with the LWIP OpenAirInterface (OAI) for LTE network Cisco Access Point/Atheros as Wi-Fi interface Using UDP transmission over both LTE and Wi-Fi links The video transmission over LWIP unveils the potential of this link level aggregation Indian Institute of Technology Hyderabad

 3GPP Proposal of LWIP

 IITH Proposal for LWIP

LTE Wi-Fi Interworking at Link Level Components

LTE Wi-Fi Interworking Testbed Setup

Power Level of Wi-Fi and LTE Before Any Transmission

Simultaneously Downloaded through Wi-Fi and LTE Interfaces

Android App for Measuring Network Performance

LWIP Experimental Parameters

Throughput in iPerf Test Using UDP Downlink

A Video Streaming Over LWIP

ThomasValerrianPasca/LWIP ThomasValerrianPasca Intro, https://github.com/ThomasValerrianPasca/LWIP Hi friends, I have updated the LWIP code here. I will write the steps to done for execution of the code soon. OpenAirInterface is under OpenAirInterface Software Alliance license. ├── http://www.openairinterface.org/?page_id=101 ├── http://www.openairinterface.org/?page_id=698 It is distributed under OAI Public License V1.0. The license information is distributed under LICENSE file in the same directory. Please see NOTICE.txt for third party software that is included in the sources.

Commits

Commit LWIP PDCP_v10.1.0, https://github.com/ThomasValerrianPasca/LWIP/tree/3acece51c9682acc7 e4f6c0836b0ebe7e000700b/openair2/LAYER2/PDCP_v10.1.0 enb.band7.tm1.usrpb210.conf, https://github.com/ThomasValerrianPasca/LWIP/blob/3acece51c9682acc 7e4f6c0836b0ebe7e000700b/targets/PROJECTS/GENERIC-LTE- EPC/CONF/enb.band7.tm1.usrpb210.conf

LWIP/pdcp.c(1/3) Source : https://github.com/ThomasValerrianPasca/LWIP/blame/3acece51c9682acc7e4f6c0836b0ebe7e000700b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c LWIP/pdcp.c(1/3) #include <linux/if_packet.h> #include<netinet/ip_icmp.h> //Provides declarations for icmp header #include<netinet/udp.h> //Provides declarations for udp header #include<netinet/tcp.h> //Provides declarations for tcp header #include<netinet/ip.h> //Provides declarations for ip header #include<sys/socket.h> #include<arpa/inet.h> #include <stdlib.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <net/if.h> #include <netinet/ether.h> #include <sys/time.h> //#define MY_DEST_MAC0 0x48 //#define MY_DEST_MAC1 0xd2 //#define MY_DEST_MAC2 0x24 //#define MY_DEST_MAC3 0x28 //#define MY_DEST_MAC4 0xc1 //#define MY_DEST_MAC5 0x3e #define MY_DEST_MAC0 0xa0 #define MY_DEST_MAC1 0x39 #define MY_DEST_MAC2 0xf7 #define MY_DEST_MAC3 0x45 #define MY_DEST_MAC4 0x66 #define MY_DEST_MAC5 0x66 /* */

LWIP/pdcp.c(2/3) Source : https://github.com/ThomasValerrianPasca/LWIP/blame/3acece51c9682acc7e4f6c0836b0ebe7e000700b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c LWIP/pdcp.c(2/3) int dup_ack_count = 0; // Initialize DUP-ACK count to 0 int index_split = 0; int arr_dup_ack[5] = {0, 0, 0, 0, 0}; // Array which stores the DUPACK count for 2:1, 1:1, 1:2, 1:3, 1:4 respectively float select_ratio[5] = {1.1, 1.2, 1.3, 1.4, 1.5}; int flag[5]={0,0,0,0,0}; int position=0; unsigned short csum(unsigned short *buf, int nwords) { unsigned long sum; for(sum=0; nwords>0; nwords--){ sum += *buf++; // printf("%x\n",buf); } sum = (sum >> 16) + (sum &0xffff); sum += (sum >> 16); return (unsigned short)(~sum); uint16_t tcp_checksum(const void *buff, uint16_t len, in_addr_t src_addr, in_addr_t dest_addr) //printf("function called Buffer length %d , Src %u ,Dst %u\n",len,src_addr,dest_addr); const uint16_t *buf1=buff; uint16_t *ip_src=(void *)&src_addr; uint16_t *ip_dst=(void *)&dest_addr; uint32_t sum; uint16_t length=len; //printf("Length = %d\n", len); // Calculate the sum // sum = 0; while (len > 1) //printf("%2x \t",*buf1); sum += *buf1++; if (sum & 0x80000000) sum = (sum & 0xFFFF) + (sum >> 16);

LWIP/pdcp.c(3/3) Source : https://github.com/ThomasValerrianPasca/LWIP/blame/3acece51c9682acc7e4f6c0836b0ebe7e000700b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c LWIP/pdcp.c(3/3) if(modeP==PDCP_TRANSMISSION_MODE_DATA ) { struct iphdr *iph = (struct iphdr*)sdu_buffer_pP; //char source_ip[32] ; char datagram[sdu_buffer_sizeP]; // char datagram=malloc(sdu_buffer_sizeP); memcpy(datagram, sdu_buffer_pP,sdu_buffer_sizeP); struct iphdr *iph1 = (struct iphdr*)datagram; struct tcphdr *tcph1 = (struct tcphdr*)(datagram+20); struct udphdr *udph1 = (struct udphdr*)(datagram+20); //int so=0; /*if(ntohl(tcph1->ack_seq)==seq){ dup_ack_count+=1; } arr_dup_ack[] = dup_ack_count; */ int so = socket (AF_PACKET, SOCK_RAW, IPPROTO_RAW); /*struct sockaddr_in temp_source,temp_dest; temp_source.sin_addr.s_addr = iph1->saddr; temp_dest.sin_addr.s_addr = iph1->daddr; printf(" |-Source IP : %s\n",inet_ntoa(temp_source.sin_addr)); printf(" |-Destination IP : %s\n",inet_ntoa(temp_dest.sin_addr));*/ /*printf(" |-ACK Number : %ld\n",ntohl(tcph1->ack)); printf(" |-ACK SequenceNo : %ld\n",ntohl(tcph1->ack_seq)); printf(" |-ACK SequenceNo : %ld\n",seq); printf(" |-Modified Source IP : %s\n",inet_ntoa(source.sin_addr)); printf(" |-Modified Destination IP : %s\n",inet_ntoa(dest.sin_addr)); //Change 1 iph1->daddr =inet_addr ("192.168.188.40"); iph1->check=htons(0); iph1->check = csum((unsigned short *)datagram, sizeof(struct iphdr)/2);

LTE Wi-Fi Dynamic Ratio Source : https://github.com/ThomasValerrianPasca/LWIP/blame/3acece51c9682acc7e4f6c0836b0ebe7e000700b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c LTE Wi-Fi Dynamic Ratio int dynamic = 0; //1-dynamic , 0- static float lte_wifi_ratio; lte_wifi_ratio = 2.8; //Set static Value of split here, if dynamic it will be changed dynamically int current = 1; if (dynamic == 1) { /******************* Probing Section [probing time = 500 msec] ***************************/ long rem = current_timestamp_3_sec() % 3000; //printf("\nCurrent Timestamp: %d \n", rem); int min = 999; if (rem <= 100) { index_split = 0; if (flag[index_split] == 0) { dup_ack_count = 0; flag[index_split] = 1; } //select_ratio[0] = 2.1; position = 6; //printf("Dup ack in index 0 =%d",dup_ack_count); } else if (rem >= 101 && rem <= 200) { index_split = 1; arr_dup_ack[index_split - 1] = dup_ack_count; // printf("Dup ack in index 0 =%d\n",dup_ack_count); //select_ratio[1] = 1.1; arr_dup_ack[index_split] = dup_ack_count; } else if (rem >= 201 && rem <= 300) { index_split = 2; // printf("Dup ack in index 1 =%d\n",dup_ack_count);

Working LWIP openair2/LAYER2/PDCP_v10.1.0/pdcp.c openair2/LAYER2/PDCP_v10.1.0/pdcp.h /lwip/enb.band7.tm1.usrpb210.conf /lwip/enb.band7.tm1.usrpb210_cse9.conf /lwip/test.conf Working LWIP, https://github.com/ThomasValerrianPasca /LWIP/commit/3db727eb4b1a3620c289d 386b1f9e0930c5cdd1f

pdcp.h & pdcp.c protected_pdcp( int so); protected_pdcp(struct ifreq if_idx); protected_pdcp(struct ifreq if_mac); Source : https://github.com/ThomasValerrianPasca/LWIP/blob/3db727eb4b1a3620c289d386b1f9e0930c5cdd1f/openair2/LAYER2/PDCP_v10.1.0/pdcp.h Source : https://github.com/ThomasValerrianPasca/LWIP/blob/3db727eb4b1a3620c289d386b1f9e0930c5cdd1f/openair2/LAYER2/PDCP_v10.1.0/pdcp.c

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試

OAI EPC 下載、編譯及安裝4.7.1版本Kernel 使用ubuntu 16.04並更新當前已安裝套件 sudo apt-get update sudo apt-get upgrade 安裝套件 sudo apt-get install xz-utils build-essential wget libncurses5-dev libssl-dev sudo apt-get build-dep linux-image-$(uname -r) ncurses- bin 下載、編譯及安裝4.7.1版本kernel wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.7.1.tar.xz unxz linux-4.7.1.tar.xz tar -xovf linux-4.7.1.tar

檢查必要套件 gcc –version make –version ld –v fdformat –version depmod –V e2fsck –V fsck.jfs -V reiserfsck –V xfs_db –V mksquashfs –version btrfsck pccardctl –V quota –V pppd –version isdnctrl 2>&1|grep version showmount –version ps –version oprofiled –version udevd –version grub --version || grub-install –version mcelog –version iptables -Vopenssl version bc --version

修改開機選單 修改grub, 在終端機輸入 sudo gedit /etc/default/grub 修改以下指令 “GRUB_HIDDEN_TIMEOUT=0” 改成 "#GRUB_HIDDEN_TIMEOUT=0" 改完後儲存並關閉檔案,然後在終端機輸入 sudo update-grub

設定kernel 在終端機輸入 然後選 make menuconfig Device Drivers Network devices support GPRS Tunneling Protocol datapath (GTP-U) 按m鍵

編譯及安裝kernel make -j`nproc` sudo make modules_install sudo make install sudo reboot

設定EPC的FQDN (Fully Qualified Domain Name) 查看hostname cat /etc/hostname sudo gedit /etc/hosts 在localhost下面新增兩行 第一行 127.0.1.1 hostname.openair4G.eu hostname 剛查得的hostname 第二行 127.0.1.1 hss.openair4G.eur hss

取得認證並下載EPC軟體 取得認證 下載原始碼 sudo apt-get install subversion git git config --global user.name "輸入你的名稱" git config --global user.email "輸入你的電子信箱" sudo su echo -n | openssl s_client -showcerts -connect gitlab.eurecom.fr:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-certificates.crt exit 下載原始碼 git clone https://gitlab.eurecom.fr/oai/openair-cn.git git clone https://gitlab.eurecom.fr/oai/xtables-addons- oai.git

安裝OAI EPC所需要的套件 安裝程式需要的檔案 cd openair-cn git checkout develop git pull cd SCRIPTS 安裝程式需要的檔案 ./build_hss -i ./build_mme -i ./build_spgw –I 安裝期間會詢問你要選擇使用哪一種伺服器來執行phpmyadmin (本例使用apache2) 安裝期間MySQL的所有密碼皆設定為“linux”,出現錯誤時則選擇 ignore

建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試

在usr目錄下建立EPC設定檔的軟連接 在終端機輸入 sudo mkdir -p /usr/local/etc/oai/freeDiameter sudo cp ~/openair-cn/ETC/mme.conf /usr/local/etc/oai sudo cp ~/openair-cn/ETC/hss.conf /usr/local/etc/oai sudo cp ~/openair-cn/ETC/spgw.conf /usr/local/etc/oai sudo cp ~/openair-cn/ETC/acl.conf /usr/local/etc/oai/freeDiameter sudo cp ~/openair-cn/ETC/mme_fd.conf /usr/local/etc/oai/freeDiameter sudo cp ~/openair-cn/ETC/hss_fd.conf /usr/local/etc/oai/freeDiameter

設定phpmyadmin 在終端機輸入 當以上指令執行完畢後,在終端機輸入指令重新 開機 sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo /etc/init.d/apache2 reload 當以上指令執行完畢後,在終端機輸入指令重新 開機 sudo reboot

修改HSS設定檔 在終端機中輸入 sudo gedit /usr/local/etc/oai/hss.conf 修改 MYSQL_user、 MYSQL_pass、 OPERTOR_key

修改MME設定檔(1/3) 在終端機中輸入 sudo gedit /usr/local/etc/oai/mme.conf 第一行是EPC對內網卡的名稱(此網卡用於連向 eNB) ,第二行則是此網卡的IP 此例的對內網卡名稱是eth0,IP:192.168.1.254,請跟 據自己的網卡修改這兩行

修改MME設定檔(2/3) 在這個設定檔中找到MCC、MNC、TAC並設定 MCC(mobile_country_code)、 MNC(mobile_network_code)、 TAC(tracking_area_code), 其中MCC及MNC(兩碼為歐規,三碼為美規)合稱為PLMN EPC、eNB與SIM Card都有PLMN 而EPC、eNB的設定檔與SIM Card中的MCC、MNC、TAC必 需一致,UE才能連上EPC和註冊

修改MME設定檔(3/3) 修改REALM 的值,如下圖

修改SPGW設定檔(1/4) 在終端機中輸入 找到以下這兩行並修改它 sudo gedit /usr/local/etc/oai/spgw.conf 找到以下這兩行並修改它 第一行是EPC對內網卡的名稱(此網卡用於連向eNB) ,第二行則是此網卡的IP 此例的對內網卡名稱是eth0,IP:192.168.1.254,請跟據自己的網卡修改這兩行

修改SPGW設定檔(2/4) 設定EPC對外的網卡名稱 開啓EPC的NAT功能(轉發UE的封包)

修改SPGW設定檔(3/4) 為UE 設定dns server 和 MTU 此MTU是eNB和spgw之間溝通的封包最大長度

修改SPGW設定檔(4/4) 如果UE是手機,則把以下這一項 FORCE_PUSH_PROTOCOL_CONFIGURATI ON_OPTIONS設為"yes"

修改MME_FD設定檔 修改identity = “hostname.openair4G.eur”; 在終端機中輸入 sudo gedit /usr/local/etc/oai/freeDiameter/mme_fd.conf 修改identity = “hostname.openair4G.eur”; 此例的hostname:wuch-EPC

編譯EPC軟體 下載並安裝OAI認證 編譯 hss, mme, spgw cd ~/openair-cn/SCRIPTS ./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.openair4G.eur ./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/ hostname.openair4G.eur 編譯 hss, mme, spgw ./build_hss –c ./build_mme –c ./build_spgw –c

在資料庫中新增使用者資訊 使用瀏覽器編輯資料庫 滙入資料庫 127.0.0.1/phpmyadmin 帳號 : root 密碼 : linux 滙入資料庫 ./run_hss -i ~/openair-cn/SRC/OAI_HSS/db/oai_db.sql

在mmeidentity資料表新增資料 開啓SQL,輸入指令 INSERT INTO mmeidentity ('idmmeidentity','mmehost','mmerealm','UE- reachability') VALUES (7,'wuch- EPC.openair4G.eur','openair4G.eur','0') mmehost:hostname.openair4G

新增OAISIM Sim Card Information 208930100001111 Ki Value 8baf473f2f8fd09487cccbd7097c6862 Operator key 1006020f0a478bf6b699f15c062e42b3

修改pgw資料表 把pgw資料表 id = 3 的 ipv4 修改為自己的EPC 對外網卡ip

修改pgw資料表中pgw_id 把所有的pgw_id全部改為7

啟動EPC軟體 1.在終端機輸入 2.開啟一個新的終端機,並且輸入 3.開啟一個新的終端機,並且輸入 若運行成功,會出現以下訊息 cd ~/openair-cn/SCRIPTS ./run_hss 2.開啟一個新的終端機,並且輸入 ./run_mme 3.開啟一個新的終端機,並且輸入 ./run_spgw 若運行成功,會出現以下訊息 hss 會出現 NOTI 'STATE_CLOSED' -> 'STATE_OPEN' 'hostname.openair4G.eur‘ mme 會出現 'STATE_OPEN'

建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試

安裝OAISim系統環境 安裝ubuntu 14.04,更新所有已安裝套件 安裝Linux 3.19 Low-latency版Kernel sudo apt-get update sudo apt-get upgrade 安裝Linux 3.19 Low-latency版Kernel sudo apt-get install linux-image-3.19.0-61- lowlatency linux-headers-3.19.0-61-lowlatency sudo apt-get install cpufrequtils sudo apt-get install i7z

修改開機選單和設定(1/2) 在終端機輸入以下指令 sudo gedit /etc/default/grub GRUB_HIDDEN_TIMEOUT=0改成 #GRUB_HIDDEN_TIMEOUT=0 然後把 GRUB_CMDLINE_LINUX_DEFAULT = "" 改成 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=distable processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"

修改開機選單和設定(2/2) 在終端機輸入以下指令 新增以下這行指令 更新設定 重啟電腦 sudo gedit /etc/default/cpufrequtils 新增以下這行指令 GOVERNOR="performance“ 儲存並關閉 更新設定 sudo update-grub2 sudo update-rc.d ondemand disable 重啟電腦 sudo reboot

檢查CPU的效能設定 在終端機輸入,確認CPU頻率 sudo i7z 在終端機輸入, CPU Frequency Scaling從 Powersave模式變為Performance模式 cpufreq-info 在終端機輸入,確認Kernel版本 uname –a

取得認證並下載LWIP OAISim軟體 開啟一個新的終端機,並且輸入 下載源始碼 sudo apt-get install subversion git git config --global user.name "輸入你的名稱" git config --global user.email "輸入你的電子信箱" sudo su echo -n | openssl s_client -showcerts -connect gitlab.eurecom.fr:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE- /p' >> /etc/ssl/certs/ca-certificates.crt exit 如果這一頁的指令執行正確,終端機是不會有任何訊息產生 下載源始碼 git clone https://github.com/ThomasValerrianPasca/LWIP.git

下載並安裝LWIP OAISim軟體所需的套件 下載並安裝OAI eNB軟體所需的套件,在終端機 輸入以下指令 cd ~/LWIP source oaienv cd cmake_targets ./build_oai -I --eNB -x --install-system-files -w USRP --install-optional-packages ./build_oai -x -C --oaisim --UE

修改OAISim的設定檔(1/2) gedit ~/LWIP/targets/PROJECTS/GENERIC-LTE- EPC/CONF/enb.band7.tm1.usrpb210.conf 在“~/openairinterface5g/targets/PROJECTS/GENERIC-LTE- EPC/CONF/”目錄下有很多種eNB的設定檔,這裡是使用FDD Band 7(2600 MHz) 設定mobile_country_code、mobile_network_code、 tracking_area_code這三個部分,須確定跟EPC的資料庫及SIM卡中的 MCC、MNC、TAC這三部分對應

修改OAISim的設定檔(2/2) 設定eNB所連接的EPC中的MME所用的網卡IP位址 ipv4 = "EPC 對內網卡的IP" ENB_INTERFACE_NAME_FOR_S1_MME = "eNB的網卡名稱" ENB_IPV4_ADDRESS_FOR_S1_MME = "eNB的網卡IP" ENB_INTERFACE_NAME_FOR_S1U = "eNB的網卡名稱" ENB_IPV4_ADDRESS_FOR_S1U = "eNB的網卡IP"

建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試

重新編譯並執行OAI SIM 執行OAISim cd ~/LWIP source oaienv ./cmake_targets/build_oai -w USRP -x -C -eNB cd cmake_targets/tools/ 執行OAISim sudo -E ./run_enb_ue_virt_s1

執行畫面(OAI SIM端)

執行畫面(EPC端)

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

使用Darwin Streaming Server串流 進入Darwin設定畫面後,點選設定Playlist,將Available Content影 片拖曳到Items in This Playlist 點選下方Save Changes,在Playlist清單中點選播放鈕,即可啟動 影音串流

使用VLC播放串流影音 以筆電或電腦dongle與OAI eNB連線後,開啟VLC進行測試 使用VLC的開啟網路串流設定URL,點選媒體> 開啟網路串流,選 擇兩個串流來源 一為youtube串流 一為Darwin串流(額外媒體 http://10.1.218.41:7070/testaudio)

Media Streaming (VLC Player)

Multi-Streaming (VLC Player)

Streaming QoS (VLC Player)

Outline 實驗介紹 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 建立OAI-LWIP環境 影音串流測試 實驗目的與實驗項目 實驗架構與實驗環境 原理說明:LWIP IITH NeWS Lab’s LWIP的方法介紹 IITH NeWS Lab’s LWIP的程式解說 建立OAI-LWIP環境 一、安裝Kernel及OAI的EPC軟體 二、設定OAI的EPC軟體 三、安裝並設定LWIP OAISim 四、執行並測試 影音串流測試 Summary

Summary OAI LTE之基本架構與架設步驟 理解LWIP技術 以IITH NeWS LAB提出之LWIP實作Wi-Fi卸載 從串流影音得知卸載之效果

Questions IITH NeWS LAB提出之LWIP實作IP位址(截圖) 影音串流成功(截圖) 切換LTE、WiFi、LTE+WiFi網路環境,觀察串流 播放時顯示的QoS變化

References Tight coupling of LTE WiFi Radio Access Networks – A Testbed Evaluation, http://www.openairinterface.org/?page_id=1885 Darwin Server, https://macosforge.github.io/dss/ VLC, https://www.videolan.org/vlc/index.zh-TW.html OAI, https://gitlab.eurecom.fr/oai/openairinterface5g TS 36.300, https://portal.3gpp.org/desktopmodules/Specifications/ SpecificationDetails.aspx?specificationId=2430 IPsec, https://en.wikipedia.org/wiki/IPsec