ELEC 5517 SOFTWARE DESIGN NETWORKS UNIVERSITY of SYDNEY DEPARTMENT of ENGINEERING AND IT Project Report 2 Group 9 Members Student ID Siyuan, Lin Weicheng, Liu Jessie, Zhang 470109308 480226679 480104780 November 9, 2019 Task 1 Ⅰ. Create a topology showing these industries in a network controlled by the ISP. Please avoid exchange of information amongst these industries. The Internet Service Provider (ISP) provides IT service to various customer and can be divided into three different kinds of industries: telecommunication, bank and media industry. According to the structure of industries and user host types, we choose the tree topology for our task just looks like the example provided and arrange nodes to support efficient operation across the business. In order to avoid information exchange among these industries, the ISP directly controls them. Three OpenFlow switches S2, S3 and S4 indicate the three required industries. The screenshot of our topology is shown below: For details about bandwidths assigned to links between switches and hosts, we will analyze and discuss at part 3 of task 1. After clicking the “run” button at Miniedit, we can create the topology and start CLI Since we need to avoid the exchange of information amongst these industries. We need to disconnect the links between industries and the ISP, which are s1-s2, s1-s3 and s1-s4. After we input the command “pingall” we can test the connection between hosts, the host can only communicate with other hosts within the same switch(h1 can connect with h2 and h3, h4 can connect with h5 and h6 and h7 can connect with h8 and h9). So we successfully ensure there is no information exchange between industries. Ⅱ.Send HTTP amongst nodes and capture the OpenFlow packets. Analyse the captured packets for each industry and show possible similarities and differences of the results. Firstly we can use the command “dump” to shows nodes’ information and assigned IP addresses to hosts at Miniedit. We simply arrange the local IP address according to the order (for example, h1:10.0.0.1, h2:10.0.0.2). After turn on the Wireshark to capture the packages, we need to build a Web server for each industry. We choose the links with the highest bandwidth in each industry as the server which are h3, h6 and h9. The command is “python -m SimpleHTTPServer 80 &”. HTTP can be sent from hosts to the server by the command ‘wget’, the results are shown below: h2 to h3 h3 to h2 h5 to h6 h6 to h5 h8 to h9 h9 to h8 Links Transmission time h2 to h3 0.00118 h5 to h6 0.00083 h7 to h9 0.000848 h8 to h9 0.000802 We can’t find a significant difference between transmission time and the bandwidths since we set them all above 1Mbps, they are all shorter than the time required for TCP or retransmission will happen. There are many similarities including frame size, protocol and Openflow version. And the part, buffer ID and transmission time are different. Ⅲ. Show and assign the bandwidth paths to these industries based on the properties below: a. Voice network b. Data network c. Integrated voice and data network For voice, data and integrated network, we have selected different application scenarios in three industries. After our online research and research combined with daily life knowledge, we have designed differently bandwidth requirements per person, as shown in the following table.[1] Telecommunication Text Voice Video Bandwidth 2kbps 64kbps 1mbps Bank Office Phone Service ATM Bandwidth 10kbps 20kpbs 256kbps Media Image Music Movie Bandwidth 250kbps 1mbps 5mbps For the number of users in real life, we assume that the telecommunication industry has 1000 users while bank and media industries both have 100 users. So, the total bandwidth requirement is: Telecommunication Text Voice Video Total Bandwidth 2mbps 64mbps 1000mbps 1066mbps Bank Office Phone Service ATM Total Bandwidth 1mbps 2mpbs 26mbps 29mbps Media Image Music Movie Total Bandwidth 25mbps 100mbps 500mbps 625mbps We believe that many technologies, such as synchronization and resolution, are designed between voice and data, so they should not be simply added together. The required bandwidth should be considered according to the situation. After adding the bandwidth, the topology is shown below: Task 2 When networking devices communicate over a packet-switched network, it may take a while for information to be generated by one device, transmit to the other device and be received by the later one. The total time of packet delivery takes is network delay [2]. The term, latency, refers to any of several kinds of delays typically incurred in the processing of network data. A low-latency network connection experiences small delay times, while a high-latency connection experiences long delay. Besides propagation delays, latency may also involve transmission delays (properties of the physical medium) and processing delays (such as passing through proxy servers or making network hops on the internet) [3]. 1. Transmission delay – time it takes to push the packet's bits onto the link 2. Propagation delay – time for a signal to reach its destination 3. Processing delay – time it takes router to process the packet header 4. Queuing delay – time the packet spends in routing queues In the field of computer networking and network engineering, network delay is an important consideration. Varying and excessive delay can cause unwanted side effects such as packet jitter and lost packets. Packet delay variation, or jitter, creates problems such as garbled telephone calls and shaky video playback. Packet loss can result in longer download times and slow web page retrieval [4]. Hence, for speeding up the network path, the delays need to be reduced. These delays can have impacts on the read and write access in the network. Based on the new speed on the network paths, we specified the bandwidth paths and corresponding properties in the Mininet environment by analyzing read access, relating to the download speed, and write access, relating to the upload speed. We firstly use command “iperf h1 h2” to test TCP transmission between h1 and h2 as the initial sample. When we set the delay by 5ms and the loss by 1%, the transmission data rate: 1.9 Mb/s for upload and 2.26 Mb/s for download. Propagation delay To measure the propagation delay, we change the packet loss to 10%, and kept the value of transmission delay by 5ms. The transmission data rate: 283Kb/s for upload and 349Kb/s for download. Both uploading and downloading speed decreased. Transmission delay We simulate the transmission delay in the mininet by changing the delay to 50 ms. So, the transmission data rate: 885 Kb/s for upload and 2.34 Mb/s for download. Compared with the initial sample above (1.9 Mb/s for upload and 2.26 Mb/s for download), the speed of upload decreased. Queuing delay Thirdly, we simulate the queue delay in the mininet by changing the max queue size. When the max queue size is 1, the TCP bandwidth are: 221Kb/s for upload and 246Kb/s for download. When the max queue size increases to 100, the transmission data rate become 1.89Mb/s for upload and 2.06Mb/s for download. Conclusion: If we reduce packet loss (10%-1%) or increase the queue size (1-10), both upload and download bandwidth will increase significantly. However, if we reduce the delay (100ms- 1ms), only the upload bandwidth will increase, download bandwidth remains the same as before. In addition, the Propagation delay and Queue delay will affect both upload (write) and download (read) speed. The transmission delay will impact the upload (write) speed, and slightly affect the download bandwidth. Delay type Value Upload Bandwidth Download Bandwidth Propagation delay (Loss) 10%, 5ms 283Kb/s 349Kb/s 1%, 5ms 1.9Mb/s ↑ 2.26Mb/s ↑ Transmission delay (Delay) 1%, 50ms 885Kb/s 2.34Mb/s 1%, 1ms 1.9Mb/s ↑ 2.26Mb/s → Queue delay (Max Queue size) 1 221Kb/s 246Kb/s 10 1.89Mb/s ↑ 2.06Mb/s ↑ In conclusion, Network tools such as ping tests and traceroute measure latency by determining the time it takes a given network packet to travel from source to destination, and back. According to research, cable internet connections, latencies of less than 100 milliseconds (ms) are typical, and less than 25 ms is often possible. Taking satellite internet connections as an example, the typical latencies in satellite can be 500 ms or higher. An internet service rated at 100 Mbps can perform noticeably worse than a service rated at 20 Mbps if it is running with high latency. Satellite internet service illustrates the difference between latency and bandwidth on computer networks. Satellite possess both high bandwidth and high latency. When loading a web page, for example, most satellite users observe a noticeable delay from the time they enter the address to the time the page begins loading. This high latency is due primarily to propagation delay as the request message travels at the speed of light to the distant satellite station and back to the home network. Once the messages arrive on Earth, however, the page loads quickly, like on other high- bandwidth internet connections (such as DSL and cable internet) [3]. Task 3 In this section, we are going to use ONOS, which is an open source SDN OS. It can manage the network components and configurate each element. 1. Implement the customized topology using ONOS as the controller. As the task 1 and task 2 mentioned above, the structure of the network can be defined as one Internet service provider, which connects with telecommunication switch, bank switch and media switch. Three switch is also lined with three host. The telecommunication switch connects with text host, voice host and video host. The bank switch connects office host, phone service host and ATM host. The media switch connects with image host, music host and movie host. We can realize the network structure by python coding which is shown below: After the coding, use ONOS to activate the reactive forwarding application and then turn on the folder terminal and input: sudo mn - -custom task3.py - -topo mytopo - -controller=remote,ip= 172.17.0.2 In this time, the topology can be seen on the ONOS GUI, which can be shown below: ISP Media Telecommunication Bank 2. Use ONOS flow endpoint API to achieve isolation of the third industry from the rest of the network. ⚫ Method 1 As the mission required, we need to use flows command in the API. First, we use the ONOS terminal to find that there are 4 flows in the switch 2. In order to achieve the isolation of the telecommunication switch, we need to cut down all the flow from the switch 2. We can find that the device id of switch 2 is of:0000000000000002 and the flow id can be found via GET/flows . We use the command below and input device id and all the flow id, which is to cut down all the flow: DELETE/flows/{deviceId}/{flowId} After doing so, ONOS GUI will show that the switch 2 is apart from the ISP switch. Moreover, the flow result in the terminal also shows the flow of switch 2 is not existed. However, when we use mininet terminal to command “pingall”, the problem happened. As can be seen on the figure, h1, h2 and h3 should have pinged each other, however, the connection seems to be all cut down. And the method 1 is failure. ⚫ Method 2 In this way, we have to explore a new method for isolation. We use Device endpoint API. In order to find the port which is from s2 to s1, we use command: GET/devices/{id}/ports In this way, the port is “1” as can be seen from the result. And then we use another command to disable this port: Post/devices{id}/portstate/{port_id} This time, ONOS GUI becomes like this: Similarly, we use “pingall” in the mininet terminal and the final result is right, which means that switch 2 is isolated successfully. Method 2 is feasible. ⚫ Method 3 However, we still want to figure out a strategy which is using ONOS flow endpoint API. And the method 3 developed finally. We type in GET/flows in the mininet terminal and input “flows” in ONOS terminal. Again, using get flows, we can find the highest priority one which is connected with IPV4 protocol, then we deleted it. However, this time, we install intent between each two hosts from h1 h2 and h3. And then, we type in “pingall” and the result is right. This is because the IPV4 is deleted in h1-3, and a new link protocol should be built in order to ping with each other. 3. Display and analyze flow statistics at each of the edge switches using ONOS flow statistics end point API. To statistic the flow, we can use the statistics part in the API, and we can use the following command and input the device id to search for the data. GET/devices/{id}/ports This is in the situation of the second method, the device id “of:0000000000000002” is the switch 2 which is telecommunication switch. The device id “of:0000000000000003” is the switch 3 which is bank switch. The device id “of:0000000000000004” is the switch 4 which is media switch. 4. Using host endpoint API please add a new host to edge switch s4. In this section, POST /hosts should be used here. The details of the code should be explained here. Since we need to add new host on switch 4, whose device id is “of:0000000000000004”, the elementId should be this figure. Moreover, there are 4 ports already in the switch 4, in order to add a new host, a new port should be utilized, so the “port” should be 5. Moreover, we can also set the IP address for the new host, here we choose “10.0.0.10”. As can be seen from the topology figure, the host circled is the new added one. References [1] "Bandwidth Requirement - an overview | ScienceDirect Topics", Sciencedirect.com, 2019. [Online]. Available: https://www.sciencedirect.com/topics/computer- science/bandwidth-requirement. [Accessed: 02- Nov- 2019]. [2] Rodney A. Crater, 03 November 2019. What is a Network Delay?. [Online] Available at: https://www.wisegeek.com/what-is-a-network-delay.htm [Accessed 9 November 2019]. [3] Bradley Mitchell , October 16, 2019. What is Latency? High latency is bad news for your network. [Online] Available at: https://www.lifewire.com/latency-on-computer- networks-818119 [Accessed 9 November 2019]. [4] Paul Krzyzanowski , September 29, 2012 . Quality of Service . [Online] Available at: https://www.cs.rutgers.edu/~pxk/417/notes/03-qos.html [Accessed 9 November 2019].
欢迎咨询51作业君