Phân tích kết quả mô phỏng:

Một phần của tài liệu Nghiên cứu công nghệ LTE và các giải pháp ứng dụng triển khai LTE trên mạng lưới mobifone (Trang 74 - 90)

Từ các hình 3.7, 3.8, 3.9, 3.10 ta có nhận xét nhƣ sau:

- Khi giảm thời gian TTT sẽ làm thời gian chuyển giao sớm hơn làm giảm tỷ lệ drop các dịch vụ VoLTE hay các dịch vụ chuyển mạch gói.

- Tuy nhiên nếu giảm TTT quá nhiều làm tăng số lần chuyển giao chuyển giao giữa các EnodeB gây nghẽn báo hiệu và giảm tỷ lệ chuyển giao thành công.

Phạm Văn Bích - CB140233 Page 72 2014B - KTVT

- Kết quả mô phỏng hoàn toàn đúng với quá trình chuyển giao trên giao diện X2 của mạng 4G mobifone hiện tại.

3.7. Kết luận chƣơng.

Nhƣ vậy, chƣơng 3 đã trình bày về những nội dung sau:

 Quá trình chuyển giao trên giao diện X2 theo thuật toán A3

 X y dựng thuật toán chuyển giao tối ƣu trên giao diện X2

 Mô phỏng thuật toán chuyển giao tối ƣu bằng phần mềm NS3

 Phân tích kết quả mô phỏng đạt đƣợc.

Nội dung chƣơng mô tả đƣợc thuật toán chuyển giao thực tế trên giao diện X2, từ đó đƣa ra thuật toán chuyển giao tối ƣu mô phỏng bằng phần mềm NS3. Kết quả mô phỏng có ý nghĩa thực tiễn trong công tác tối ƣu mạng lƣới.

Phạm Văn Bích - CB140233 Page 73 2014B - KTVT

KẾT LUẬN

Hiện tại trên thế giới hiện có 521 mạng 4G LTE đã thƣơng mại hóa với số lƣợng thuê bao 4G trên toàn cầu là 1,453 tỷ thuê bao. Số liệu cho thấy việc triển khai 4G LTE trên thế giới đã đạt độ chín muồi. Đ y là thời điểm thích hợp để Việt Nam triển khai 4G.

Nội dung luận văn đã nghiên cứu, tìm hiểu sâu về công nghệ 4G LTE và LTE - Advance, các giải pháp và kết quả triển khai thử nghiệm thực tế công nghệ LTE trên mạng Mobifone. Luận văn đã đƣa ra mô phỏng thuật toán chuyển giao trên giao diện X2 bằng phần mềm NS3 giúp ngƣời đọc, các kỹ sƣ viễn thông nắm vững công nghệ LTE để từ đó thực hiện tối ƣu hóa mạng 4G, nâng cao chất lƣợng và dịch vụ ngƣời dùng.

Phạm Văn Bích - CB140233 Page 74 2014B - KTVT

KIẾN NGHỊ VÀ ĐỀ XUẤT

Do thời gian có hạn nên quá trình mô phỏng chuyển giao trên giao diện X2 còn đơn giản, hƣớng phát triển của luận văn cần thêm các nội dung sau:

- Phân tích các thông số về mô hình truyền sóng, phổ tín hiệu và các ảnh hƣởng của fađing, nhiễu nền,… trong quá trình chuyển giao X2.

- Kết hợp mô phỏng chuyển giao trên giao diện X2 và giao diện S1, đƣa ra các giải pháp làm giảm số lƣợng báo hiệu, tăng băng thông từ đó tăng hiệu năng mạng 4G áp dụng cho mạng Mobifone nói riêng và mạng 4G nói chung.

- Nghiên cứu công nghệ 5G để từ đó ph n tích đƣa ra các giải pháp bổ sung thiết bị dựa trên nền tảng 4G sẵn có, tạo bƣớc đệm cho sự phát triển của mạng di động Việt Nam trong thời gian tới.

Phạm Văn Bích - CB140233 Page 75 2014B - KTVT

TÀI LIỆU THAM KHẢO

1. Công ty Thông tin di động, 2011, đề tài nghiên cứu các thủ tục và giao diện sử

dụng trên mạng LTE, Hà Nội.

2. Global service (2015), LTE L15 Protocols and Procedures, Ericson AB, SE-164

80 Stockholm.

3. Global service (2015), LTE L15 Air Interface, Ericson AB, SE-164 80 Stockholm. 4. http://gsacom.com/paper/lte-subscriptions-regional-shares-q2-2016/ 5. https://www.nsnam.org/docs/models/html/lte-user.html 6.http://gsacom.com/paper/gsa-snapshot-lte1800-global-status-network-launches- user-devices-ecosystem/ 7. http://slideplayer.com/slide/9363657/ 8. http://www.sharetechnote.com/html/LTE_Advanced_CoMP.html 9. http://www.3gpp.org/technologies/keywords-acronyms/101-carrier-aggregation- explained 10. http://lteworld.org/blog/introduction-relay-nodes-lte-advanced 11. https://www.nsnam.org/doxygen/lena-x2-handover-measures_8cc_source.html 12. https://www.tutorialspoint.com/lte/lte_basic_parameters.htm 13.http://www.radio-electronics.com/info/cellulartelecomms/lte-long-term- evolution/lte-ofdm-ofdma-scfdma.php 14. http://www.3gpp.org/IMG/pdf/lte_advanced_v2.pdf

Phạm Văn Bích - CB140233 Page 76 2014B - KTVT PHỤ LỤC MÃ CODE MÔ PHỎNG BẰNG PHẦN MỀM NS3 #include "ns3/radio-bearer-stats-calculator.h" #include "ns3/lte-global-pathloss-database.h" #include <iomanip> #include <string> #include <ns3/log.h> #include <ns3/okumura-hata-propagation-loss-model.h> #include <ns3/hybrid-buildings-propagation-loss-model.h> #include "ns3/netanim-module.h" #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/internet-module.h" #include "ns3/mobility-module.h" #include "ns3/lte-module.h" #include "ns3/applications-module.h" #include "ns3/point-to-point-module.h" #include "ns3/config-store-module.h" #include "ns3/buildings-helper.h" #include "ns3/hybrid-buildings-propagation-loss-model.h" #include <ns3/buildings-mobility-model.h> #include <ns3/buildings-propagation-loss-model.h> #include "ns3/config-store.h" #include <ns3/string.h> #include <fstream> //#include "ns3/gtk-config-store.h" using namespace ns3;

NS_LOG_COMPONENT_DEFINE ("Ban tin Handover X2 interface"); void

Phạm Văn Bích - CB140233 Page 77 2014B - KTVT uint64_t imsi, uint16_t cellid, uint16_t rnti) { std::cout << context << ": UE" << imsi

<< " Ket noi toi CellId " << cellid

<< std::endl; }

void

BatdauchuyengiaoUE (std::string context, uint64_t imsi, uint16_t cellid, uint16_t rnti, uint16_t targetCellId) { std::cout << context

<< ": Bat dau chuyen giao, ngat ket noi UE " << imsi << "voi CellId " << cellid

<< "; Data truyen tu CellId " << cellid

<< " den CellId " << targetCellId << std::endl;

} void

chuyengiaothanhcongUE (std::string context, uint64_t imsi,

Phạm Văn Bích - CB140233 Page 78 2014B - KTVT

uint16_t rnti) {

std::cout << context << ": UE" << imsi

<< " Chuyen giao thanh cong toi CellId " << cellid << std::endl;

} void

ThietlapketnoiEnodeB (std::string context, uint64_t imsi, uint16_t cellid, uint16_t rnti) { std::cout << context << ":UE" << imsi

<< " ket noi thanh cong toi CellId " << cellid

<< std::endl; }

void

BatdauchuyengiaoEnodeB (std::string context, uint64_t imsi, uint16_t cellid, uint16_t rnti, uint16_t targetCellId) { std::cout << context

<< ": bat dau chuyen giao UE " << imsi << " tu CellID " << cellid

Phạm Văn Bích - CB140233 Page 79 2014B - KTVT

<< " toi CellId " << targetCellId << std::endl;

} void

ChuyengiaothanhcongEnodeB (std::string context, uint64_t imsi,

uint16_t cellid, uint16_t rnti) {

std::cout << context

<< ": Data tu CellId " << cellid << " truyen toi UE " << imsi

<< ", Hoanh thanh chuyen giao UE voi CellID " << imsi << std::endl;

} void

ChuyengiaokhongthanhcongEnodeB (std::string context, uint64_t imsi,

uint16_t cellid, uint16_t rnti) {

std::cout << context

<< " eNB CellId " << cellid

<< ":chuyen giao khong thanh cong toi CellID " << imsi << std::endl;

} int

main (int argc, char *argv[]) {

Phạm Văn Bích - CB140233 Page 80 2014B - KTVT double ueNoiseFigure = 5.0; uint16_t numberOfUes = 1; uint16_t numberOfEnbs = 2; uint16_t numBearersPerUe = 0; double distance = 500.0; // m //double yForUe = 500.0;// m double yForUe = 1000.0;// m double speed = 83.33;// m/s

double T_mophong = (double)(numberOfEnbs + 1) * distance / speed; double enbTxPowerDbm= 46.0;

Config::SetDefault ("ns3::UdpClient::Interval", TimeValue (MilliSeconds (10))); Config::SetDefault ("ns3::UdpClient::MaxPackets", UintegerValue (1000000)); Config::SetDefault ("ns3::LteHelper::UseIdealRrc", BooleanValue (true)); // Command line arguments

CommandLine cmd; //cmd.Parse(argc, argv); ConfigStore inputConfig; inputConfig.ConfigureDefaults (); std::ofstream outFile; outFile.open ("buildings-pathloss-profiler.out");

cmd.AddValue ("T_mophong", "tong thoi gian mo phong tinhs bang s", T_mophong);

cmd.AddValue ("speed", "Toc do UE la 83.33 m/s", speed);

cmd.AddValue ("enbTxPowerDbm", "TX power [dBm] cua ENodeB (46 dBm)", enbTxPowerDbm);

Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();

lteHelper->SetAttribute ("FadingModel", StringValue ("ns3::TraceFadingLossModel"));

Phạm Văn Bích - CB140233 Page 81 2014B - KTVT

ifTraceFile.open ("../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad", std::ifstream::in);

if (ifTraceFile.good ()) {

lteHelper->SetFadingModelAttribute ("TraceFilename", StringValue ("../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"));

} else {

lteHelper->SetFadingModelAttribute ("TraceFilename", StringValue ("src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"));

}

lteHelper->SetFadingModelAttribute ("TraceLength", TimeValue (Seconds (10.0)));

lteHelper->SetFadingModelAttribute ("SamplesNum", UintegerValue (10000)); lteHelper->SetFadingModelAttribute ("WindowSize", TimeValue (Seconds (0.5)));

lteHelper->SetFadingModelAttribute ("RbNum", UintegerValue (100));

Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> (); lteHelper->SetEpcHelper (epcHelper); lteHelper->SetHandoverAlgorithmType ("ns3::A3RsrpHandoverAlgorithm"); lteHelper->SetHandoverAlgorithmAttribute ("Hysteresis", DoubleValue (5)); lteHelper->SetHandoverAlgorithmAttribute ("TimetoTrigger", TimeValue (MilliSeconds (200))); lteHelper->SetSchedulerType("ns3::PfFfMacScheduler"); Ptr<HybridBuildingsPropagationLossModel> propagationLossModel = CreateObject<HybridBuildingsPropagationLossModel> ();

Phạm Văn Bích - CB140233 Page 82 2014B - KTVT propagationLossModel->SetCitySize(LargeCity ); propagationLossModel->SetEnvironment(UrbanEnvironment); propagationLossModel->SetFrequency(1800); lteHelper->AggregateObject (propagationLossModel); Ptr<Node> pgw = epcHelper->GetPgwNode (); // tao 1 RemoteHost NodeContainer remoteHostContainer; remoteHostContainer.Create (1);

Ptr<Node> remoteHost = remoteHostContainer.Get (0); InternetStackHelper internet;

internet.Install (remoteHostContainer); // tao ket noi internet

PointToPointHelper p2ph;

p2ph.SetDeviceAttribute ("DataRate", DataRateValue (DataRate ("100Gb/s"))); p2ph.SetDeviceAttribute ("Mtu", UintegerValue (1500));

p2ph.SetChannelAttribute ("Delay", TimeValue (Seconds (0.010))); NetDeviceContainer internetDevices= p2ph.Install (pgw, remoteHost); Ipv4AddressHelper ipv4h;

ipv4h.SetBase ("1.0.0.0", "255.0.0.0");

Ipv4InterfaceContainer internetIpIfaces = ipv4h.Assign (internetDevices); Ipv4Address remoteHostAddr = internetIpIfaces.GetAddress (1);

// Ddinh tuyen cong internet(ve phia mang LTE) Ipv4StaticRoutingHelper ipv4RoutingHelper; Ptr<Ipv4StaticRouting> remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRouting (remoteHost->GetObject<Ipv4> ()); remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask ("255.0.0.0"), 1); NodeContainer ueNodes; NodeContainer enbNodes;

Phạm Văn Bích - CB140233 Page 83 2014B - KTVT

enbNodes.Create (numberOfEnbs); ueNodes.Create (numberOfUes); // cai dat eNodeB

Ptr<ListPositionAllocator> enbPositionAlloc = CreateObject<ListPositionAllocator> ();

for (uint16_t i = 0; i < numberOfEnbs; i++) {

Vector enbPosition (distance * (i + 1),distance,0); enbPositionAlloc->Add (enbPosition); } MobilityHelper enbMobility; enbMobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); enbMobility.SetPositionAllocator (enbPositionAlloc); enbMobility.Install (enbNodes); if (!outFile.is_open ()) {

NS_FATAL_ERROR ("Can't open output file"); }

// cai dat UE

MobilityHelper ueMobility;

ueMobility.SetMobilityModel ("ns3::ConstantVelocityMobilityModel"); ueMobility.Install (ueNodes);

ueNodes.Get (0)->GetObject<MobilityModel> ()->SetPosition (Vector (0, yForUe, 0));

ueNodes.Get (0)->GetObject<ConstantVelocityMobilityModel> ()->SetVelocity (Vector (speed,30, 0));

// cai dat LTE cho EnodeB va UEs

Config::SetDefault ("ns3::LteEnbPhy::TxPower", DoubleValue (enbTxPowerDbm));

Phạm Văn Bích - CB140233 Page 84 2014B - KTVT

Config::SetDefault ("ns3::LteUePhy::NoiseFigure", DoubleValue (ueNoiseFigure));

NetDeviceContainer enbLteDevs = lteHelper->InstallEnbDevice (enbNodes); NetDeviceContainer ueLteDevs = lteHelper->InstallUeDevice (ueNodes); // cai dat ngan xep cho UEs

internet.Install (ueNodes);

Ipv4InterfaceContainer ueIpIfaces;

ueIpIfaces = epcHelper->AssignUeIpv4Address (NetDeviceContainer (ueLteDevs));

// Gan dia cchi IP cho UEs, va cai dat cac ung dung for (uint32_t u = 0; u < ueNodes.GetN (); ++u) {

Ptr<Node> ueNode = ueNodes.Get (u); // Set the default gateway for the UE

Ptr<Ipv4StaticRouting> ueStaticRouting = ipv4RoutingHelper.GetStaticRouting (ueNode->GetObject<Ipv4> ());

ueStaticRouting->SetDefaultRoute (epcHelper->GetUeDefaultGatewayAddress (), 1);

}

// gan cac UE cho NodeB dau tien

for (uint16_t i = 0; i < numberOfUes; i++) {

lteHelper->Attach (ueLteDevs.Get (i), enbLteDevs.Get (0)); }

NS_LOG_LOGIC ("setting up applications"); uint16_t dlPort = 10000;

uint16_t ulPort = 20000;

Ptr<UniformRandomVariable> startTimeSeconds = CreateObject<UniformRandomVariable> ();

Phạm Văn Bích - CB140233 Page 85 2014B - KTVT

startTimeSeconds->SetAttribute ("Min", DoubleValue (0)); startTimeSeconds->SetAttribute ("Max", DoubleValue (0.010)); for (uint32_t u = 0; u < numberOfUes; ++u)

{

Ptr<Node> ue = ueNodes.Get (u); // dat mac dinh cong gateway cho UE

Ptr<Ipv4StaticRouting> ueStaticRouting = ipv4RoutingHelper.GetStaticRouting (ue->GetObject<Ipv4> ());

ueStaticRouting->SetDefaultRoute (epcHelper->GetUeDefaultGatewayAddress (), 1);

for (uint32_t b = 0; b < numBearersPerUe; ++b) {

++dlPort; ++ulPort;

ApplicationContainer clientApps; ApplicationContainer serverApps;

NS_LOG_LOGIC ("installing UDP DL app for UE " << u);

UdpClientHelper dlClientHelper (ueIpIfaces.GetAddress (u), dlPort); clientApps.Add (dlClientHelper.Install (remoteHost));

PacketSinkHelper dlPacketSinkHelper ("ns3::UdpSocketFactory",

InetSocketAddress (Ipv4Address::GetAny (), dlPort)); serverApps.Add (dlPacketSinkHelper.Install (ue));

NS_LOG_LOGIC ("installing UDP UL app for UE " << u); UdpClientHelper ulClientHelper (remoteHostAddr, ulPort); clientApps.Add (ulClientHelper.Install (ue));

PacketSinkHelper ulPacketSinkHelper ("ns3::UdpSocketFactory",

InetSocketAddress (Ipv4Address::GetAny (), ulPort)); serverApps.Add (ulPacketSinkHelper.Install (remoteHost));

Phạm Văn Bích - CB140233 Page 86 2014B - KTVT EpcTft::PacketFilter dlpf; dlpf.localPortStart = dlPort; dlpf.localPortEnd = dlPort; tft->Add (dlpf); EpcTft::PacketFilter ulpf; ulpf.remotePortStart = ulPort; ulpf.remotePortEnd = ulPort; tft->Add (ulpf);

EpsBearer bearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT);

lteHelper->ActivateDedicatedEpsBearer (ueLteDevs.Get (u), bearer, tft); Time startTime = Seconds (startTimeSeconds->GetValue ());

serverApps.Start (startTime); clientApps.Start (startTime); }

}

// tao giao dien X2

lteHelper->AddX2Interface (enbNodes); // X2 Handover lteHelper->EnablePhyTraces (); lteHelper->EnableMacTraces (); lteHelper->EnableRlcTraces (); lteHelper->EnablePdcpTraces (); lteHelper->EnableDlRxPhyTraces(); lteHelper->EnableDlRxPhyTraces();

Ptr<RadioBearerStatsCalculator> rlcStats = lteHelper->GetRlcStats (); rlcStats->SetAttribute ("EpochDuration", TimeValue (Seconds (1.0))); Ptr<RadioBearerStatsCalculator> pdcpStats = lteHelper->GetPdcpStats (); pdcpStats->SetAttribute ("EpochDuration", TimeValue (Seconds (1.0))); // Tao RRC connection establishment and tao thong bao HO

Phạm Văn Bích - CB140233 Page 87 2014B - KTVT Config::Connect ("/NodeList/*/DeviceList/*/LteEnbRrc/ConnectionEstablished", MakeCallback (&ThietlapketnoiEnodeB)); Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/ConnectionEstablished", MakeCallback (&ThietlapketnoiUE)); Config::Connect ("/NodeList/*/DeviceList/*/LteEnbRrc/HandoverStart", MakeCallback (&BatdauchuyengiaoEnodeB)); Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverStart", MakeCallback (&BatdauchuyengiaoUE)); Config::Connect ("/NodeList/*/DeviceList/*/LteEnbRrc/HandoverEndOk", MakeCallback (&ChuyengiaothanhcongEnodeB)); Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverEndOk", MakeCallback (&chuyengiaothanhcongUE));

Simulator::Stop (Seconds (T_mophong));

AnimationInterface anim ("Chuyen Giao tren Giao dien X2.xml"); //anim.SetConstantPosition (enbNodes.Get(0), 100.0, 100.0); anim.SetConstantPosition (enbNodes.Get(0), 0, 1000.0); anim.SetConstantPosition (enbNodes.Get(1), 1000.0, 1000.0); anim.SetConstantPosition (remoteHostContainer.Get(0),200,0); //anim.SetConstantPosition (remoteHostContainer.Get(1),400,0); anim.AnimationInterface::EnablePacketMetadata(true); Simulator::Run (); Simulator::Destroy (); return 0; }

Một phần của tài liệu Nghiên cứu công nghệ LTE và các giải pháp ứng dụng triển khai LTE trên mạng lưới mobifone (Trang 74 - 90)

Tải bản đầy đủ (PDF)

(90 trang)