首页 > 其他分享 >CSCI-GA.2662 Data Communications & Networks

CSCI-GA.2662 Data Communications & Networks

时间:2024-12-17 20:58:39浏览次数:7  
标签:network Floodlight CSCI will Communications SDN main Data your

Computer Science Department

Courant Institute of Mathematical Sciences

Course Title: Data Communications & Networks

Course Number: CSCI-GA.2662-001

Assignment 8: Final Project

I. Due

Friday December 20, 2024 by 11:59 pm EST.

II. Objectives

Software-defined networking (SDN) is a recent paradigm for running networks. As per the networking layer topics covered in the course, the network is divided into the control and data planes. The control plane provides a set of protocols and configurations that set up the forwarding elements (hosts, switches, and routers) so that they can forward packets. This includes, for example, ARP resolution, DNS, DHCP,  the  Spanning  Tree  Protocol,  MAC  learning,  NAT  and  access  control configuration, as well as all of the routing protocols. Usually, switches and routers have to run all of these protocols, detect topology changes, issue heartbeats, manage caches, timeouts, etc. Meanwhile, in many cases network administrators achieve desired goals with the network indirectly, by tweaking parameters in the routing protocols like link weights and local BGP preference. While the data plane is nicely organized in the familiar layered scheme, the aggregate structure of the control plane is a lot less clean.

SDN is a radical departure from this organization. The main idea is a separation of the control plane from the forwarding elements. SDN switches and routers do not run control plane protocols and mostly only forward packets based on matching of packet predicates  to  a  set  of  forwarding  rules.  They  export  a  simple  API  to configure these rules, as well as some feedback about current and past packets. An accepted  standard  for  this  API  is  the OpenFlow protocol,  which  has  been implemented  by  dozens  of  switch  vendors  and  has  fostered  a  rich  software ecosystem. The intelligence of the control plane is (logically) centralized in a network  controller.  The  controller  decides  which  rules  to  install  based  on  its configuration, and on a global view of the network topology and flows.

In this project, you will implement the logic in such a controller to manage the following:

1.   A layer-3 routing application that installs rules in SDN switches to forward traffic  to  hosts  using  the  shortest,  valid  path  through  the  network.  Your application logic will manage the efficient switching of packets代写 CSCI-GA.2662 Data Communications & Networks among hosts in a large LAN with multiple switches and potential loops. You will write the code for a SDN controller application that will compute and install shortest path routes among all the hosts in your network. SDN as described is suitable for networks under a single administrative domain (e.g., the network in a single AS),  but  there  are  ongoing  research  projects  to  use  its  flexibility  across domains, integrating with and perhaps even replacing BGP.

2.   A distributed load balancer application that redirect new TCP connections to hosts in a round-robin order.

As always, the NYU and class policy about plagiarism must be followed in this project.   If you use ANY code in your project that is not of your own creation, then you MUST attribute that code to the author, even if you modify it (ANY modification).

III. References

1.   Slides and handouts posted on the course Web site

2.   Textbook chapters as applicable

3.   Mininet network emulator documentation (http://mininet.org/)

4.   Openflow documentation (https://www.opennetworking.org/sdn-resources/onf- specifications/openflow)

5.   Open vSwitch switch software documentation (http://openvswitch.org)

6.   Floodlight Java-based SDN controller documentation

(https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/overview)

7.   If you have additional questions about SDN, OpenFlow, or Floodlight you may

want to consult: openflow-switch-v1.5.1.pdf (opennetworking.org) (sections 2, 3, and 5.1 - 5.4 are likely to be the most useful), and Floodlight-plus Javadoc

8.   Additional readings:

Software Defined Networking Concepts

The Road to SDN: An Intellectual History of Programmable Networks

SDN Reading List

IV. Software Required

1.   Microsoft Word

2.   Win Zip as necessary

3. Oracle VirtualBox

4. Virtual Box Image with all necessary software provided

5.   Java Programming language, Eclipse, and other development tools installed in Virtual Box Image provided

6. Additional code for Part 4

V. Assignment

This is a final take-home project that can be completed individually or as a team (only two students per team).

1.   Background:

You will run the code for this project in an emulated network inside of a single Linux VM. You will use the Mininet network emulator, which is designed to emulate arbitrary topologies of emulated OpenFlow switches and Linux hosts. It uses container-based virtualization for very light-weight emulated nodes. The switches in your network run the open source Open vSwitch switch software, which  implements  the  Openflow  protocol.  The  switches  connect  to  an Openflow network controller, and you will use Floodlight, a relatively mature Java-based controller. We will use OpenFlow version 1.0 for this project. Your SDN applications will be written in Java and run atop the Floodlight OpenFlow controller. You will use Mininet to emulate a variety of network topologies consisting of OpenFlow switches and hosts.

Code you run on Mininet is ready to run with no changes in real networks.

2.   Environment Setup:

a.   Install Oracle VirtualBox as necessary.

b.   Download the Virtual Box Image with all necessary software provided. It is  a .ova image that will enable you to run the necessary software on your  computer using the latest version of Oracle VirtualBox. To install the .ova  file goto File and Import Appliance on VirtualBox. This VM uses “mininet” as username and password.

c.   To ssh into the VM from your host computer, log in first using the GUI, open a terminal, and type ifconfig. This will show you the IP addresses of the VM. You will be able to connect to one of them from your host computer via ssh. The VM also has Eclipse installed, which you can use inside the VirtualBox graphical console or remotely via X. Once you have ssh’d into the  VM,  you  can  go  through  the  following  steps  to  run  your  control applications.

d.   Optional (see acknowledgement in item 8 below):

Refactor edu.brown.cs.sdn.apps.sps to edu.nyu.cs.sdn.apps.sps

e.   Compile Floodlight and your applications:

$ cd ~/project3/ $ ant

This will produce a jar file FloodlightWithApps.jar that includes the compiled code for Floodlight and your SDN applications.

f.   Start Floodlight and your SDN applications:

$ java -jar FloodlightWithApps.jar -cf l3routing.prop

The above command will start Floodlight and only your layer-3 routing application. The .prop file configures your application.

Note: For future reference when working on part 4, you can start both your layer-3     routing      and      load     balancer      applications     by      using loadbalancer.prop for   the    -cf (configuration   file)    argument.   The loadbalancer application code is provided separately.

You    should   always start    Floodlight    and   your    SDN    applications before starting  Mininet. Also, we recommend that you restart Floodlight and your SDN applications whenever you restart Mininet.

Note: In the VirtualBox image, it is possible that the system will start an openvswitch-controller process   by   default,   which    means   your Floodlight controller will not be able to bind to port 6633. To prevent it from starting the next time you boot up, do:

$ sudo update-rc.d -f openvswitch-controller remove  When Floodlight starts, you should see output like the following:

23:18:45 .874 INFO [n .f .c .m .FloodlightModuleLoader:main] Loading modules from file shortestPathSwitching .prop 23:18:46 .277 INFO [n .f .c .i .Controller:main] Controller role set to MASTER

23:18:46 .285 INFO [n .f .c .i .Controller:main] Flush switches on reconnect -- Disabled 23:18:46 .302 INFO [ArpServer:main] Initializing ArpServer . . .

23:18:46 .302 INFO [ShortestPathSwitching:main] Initializing ShortestPathSwitching . . .

23:18:48 .533 INFO [n .f .l .i .LinkDiscoveryManager:main] Setting autoportfast feature to OFF 23:18:48 .579 INFO [ArpServer:main] Starting ArpServer . . .

23:18:48 .580 INFO [ShortestPathSwitching:main] Starting ShortestPathSwitching . . .

23:18:48 .700 INFO [o .s .s .i .c .FallbackCCProvider:main] Cluster not yet configured; using fallback local configuration 23:18:48 .701 INFO [o .s .s .i .SyncManager:main] [32767] Updating sync configuration ClusterConfig

[allNodes={32767=Node [hostname=localhost, port=6642, nodeId=32767, domainId=32767]}, authScheme=NO_AUTH, keyStorePath=null, keyStorePassword is unset]

23:18:48 .790 INFO [o .s .s .i .r.RPCService:main] Listening for internal floodlight RPC on localhost/127 .0 .0 .1:6642 23:18:48 .978 INFO [n .f .c .i .Controller:main] Listening for switch connections on 0 .0 .0 .0/0 .0 .0 .0:6633

Keep the terminal with Floodlight open, as you will need to see the output for debugging. Use another terminal for the next step.

 

标签:network,Floodlight,CSCI,will,Communications,SDN,main,Data,your
From: https://www.cnblogs.com/CSE2425/p/18613327

相关文章

  • Data Structure - Heap(堆)
    DataStructure-Heap(堆)定义堆是一棵树,且每个节点都有权值,每个节点都大于等于/小于等于其父节点的权值。习惯上,不加限定提到「堆」时往往都指二叉堆。堆专题选讲——二叉堆结构从二叉堆的结构说起,它是一棵完全二叉树,每个结点都有权值。性质父亲的权值不小于儿......
  • OCR数据集生成项目TextRecognitionDataGenerator
    1、开源OCR数据集生成项目TextRecognitionDataGenerator该项目通过Python实现,可以通过pip安装:终端:pipinstalltrdg然后在终端中输入以下命令:终端:trdg-c1000-w5就可以生成如下图片,其中-c参数表示生成图片的数量,-w表示图片中单词的个数。参考:https://blog.csdn......
  • DataX - [03] 使用案例
    题记部分 001||mysql2hdfs(1)查看MySQL被迁移的数据情况(2)根据需求确定reader为mysqlreader,writer为hdfswriter查看reader和writer模板的方式(-r读模板;-w写模板)pythonbin/datax.py-rmysqlreader-whdfswriter(3)编写同步json脚本(4)确定HDFS上目标路径是否存在(5)通过da......
  • 23、Elasticsearch-fielddata内存使用陡增解决方案
    利用searchAfter分页方式代替From-Size查询或Scroll滚动查询,解决From-Size查询存在的深度翻页问题与Scroll滚动查询存在数据量大响应慢的问题。由于searchAfter分页需要保证排序聚合唯一,当使用_id字段进行排序聚合时,可能会导致fielddata内存使用指标陡增,从而导致集群的内存使用率......
  • mysql9.1.0.msi的安装报错——Database_initialization_failed
    报错LogBeginningconfigurationstep:WritingconfigurationfileSavingmy.iniconfigurationfile...Savedmy.iniconfigurationfile.Endedconfigurationstep:WritingconfigurationfileBeginningconfigurationstep:UpdatingWindowsFirewallrulesA......
  • SOEE2810: Data Analysis and Visualisation
    AssessmentbriefModulecode&titleSOEE2810:DataAnalysisandVisualisationAssignmenttitleTheLastGlacialMaximumreportAssignmenttypePythonnotebookwithcode,freetextandplotsLearningoutcomesassessed1.Practiceskillsinmeasurement......
  • DTS207TC Database Development and Design
    Modulecodeand TitleDatabase Development and Design (DTS207TC)SchoolTitleSchoolofAIandAdvancedComputingAssignmentTitle001: Assessment Task 1(CW)Submission Deadline23:59, 15th Dec (Friday)FinalWord Cou......
  • 工业 4.0 赋能 | TapData 诚邀制造行业技术伙伴,共享行业数字化、智能化市场新机遇
    近日,TapData正式启动实时数据集成平台战略合作计划,致力于打造一个协同发展的资源共享生态,以高效的实时数据同步与集成技术为核心,通过提供行业领先的产品与完整的技术支持,帮助合作伙伴进一步提升服务能力和业务价值,共同推进方案创新,从而为各行业客户提供更高效、更智能、更实时的......
  • .NET8升级.NET9,CodeFirst模式迁移Add-Migration执行Update-DataBase报错
    在做netcore开发时,如果net8一直是正常的,只升级了一下框架net9,在使用EntityFrameworkCore的CodeFirst模式进行迁移时,执行Add-Migration后尝试使用Update-DataBase时出现了如下错误。Unhandledexception.System.InvalidOperationException:Anerrorwasgeneratedforwarni......
  • 数据集-目标检测系列- 步行街 人 检测数据集 person >> DataBall
    数据集-目标检测系列-步行街人检测数据集person>>DataBallDataBall助力快速掌握数据集的信息和使用方式,会员享有百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球:“DataBall-X数据球(free)”贵在坚持!数据样例项目地址:*相关项目1)数据集......