MASTER'S THESIS. Testing as a Service for Machine to Machine Communications. Jorge Vizcaíno 2014

Size: px
Start display at page:

Download "MASTER'S THESIS. Testing as a Service for Machine to Machine Communications. Jorge Vizcaíno 2014"

Transcription

1 MASTER'S THESIS Testing as a Service for Machine to Machine Communications Jorge Vizcaíno 2014 Master of Science (120 credits) Computer Science and Engineering Luleå University of Technology Department of Computer Science, Electrical and Space Engineering

2 Testing as a Service for Machine to Machine Communications Jorge Vizcaino January, 2014

3

4 CONTENTS Chapter 1 Introduction Background Problem statement Method Delimitations Outline Chapter 2 Related work Communication protocols HTTP protocol IP Ethernet UDP protocol TCP protocol Network Performance Metrics RTT Jitter Latency Bandwidth Throughput Tools strongly associated with this thesis Network Tools Programming language Operating Systems Chapter 3 Traffic Test Client Server Application Loading test with proxy Loading test with several clients Performance results Chapter 4 Traffic Pattern Extraction Collecting packet data Replaying traffic pattern

5 Chapter 5 Multiplying Traffic Pattern Design of TaaS for M2M communications Reproduce testing Results of traffic recreation Chapter 6 Summary and Conclusions Summary and Results Future Work Chapter 7 Appendices 57 iv

6 Acknowledgements I would like to offer a word of thanks to my supervisor Laurynas Riliskis for helping me to carry out this project. Thanks to his deep knowledge about this matter, he could give me many useful advices and was able to figure out some questions I had during this thesis. 1

7

8 Abstract During the last years, cloud computing and Software-as-a-Service (SaaS) are becoming increasingly important due to the many advantages that they provide. Therefore the demand for cloud testing infrastructures is increasing as well. Analysis and testing of cloud infrastructures are important and required for its effective functioning. Here is where Test-as-a-Service (TaaS) comes in, providing an infrastructure along with tools for testing in the cloud and evaluating performance and scalability. TaaS can offer several kinds of cloud testing such as regression testing, performance testing, security testing, scalability testing and so on. In this thesis TaaS concerns network testing, with the main goal of finding out the performance of a server. To achieve this goal this thesis involves mostly performance and scalability testing. In this thesis we created a TaaS system that uses a different method to test network. This method is based on recreating traffic pattern extracted from simulations and multiply this pattern to stress a server. All this is carried out in the Amazon Cloud. In this way we can find out the server limits, build a theoretical foundation and prove its feasibility. The traffic recreated must be as similar as possible to the traffic extracted from the simulations. To determine this similarity we compared graphs with the number of bytes over time in a simulation and in a session where the traffic was recreated. The more similar, the more accurate and better results we achieved. With the results obtained from this method, we can compare the traffic network created by different number of data sources and carried out in different type of instances. Several data such as packet loss, round trip time or bytes/second are analyzed to determine the performance of the server. The work done in this thesis can be used to know server limitation. Estimating the possible number of clients that there could be using the same server at once. 3

9

10 CHAPTER 1 Introduction 1.1 Background Cloud computing [1] provides access in the network to different resources such as software, servers, storage and so on in an efficient way. Clients can access to these services on their own without human interaction since everything is done automatically. All applications are offered over Internet, therefore, users can access from any location and with different electronic devices. Capability of cloud computing can be easily modified in order to supply properly its services to the clients regardless of their number. Moreover, applications can be monitored and analyzed to give information of their conditions to both user and provider. Cloud structure can be divided in two parts, the front end which is the part the user can see, and the back end that involves the computers, servers and networks which are part of the cloud computer [2]. Moreover a main server takes over of the cloud structure, ensuring a good service depending on the number of clients. Nowadays TaaS [3] is very significant as it implies cost sharing of computing resources, cost reduction, scalable test structures and testing service availability at any time. Moreover TaaS provides the model pay-as-you-test for customers. All this characteristics make TaaS be an efficient way for testing in the cloud. The main reasons why there would be clients interested in TaaS is the fact that this system can inform about several significant software and network features such as functionality, reliability, performance, safety and so on. In order to measure these characteristics, there are several types of tests for services in the cloud. This thesis was mainly focused on performance testing [4]. These tests are usually carried out to provide information about speed, scalability and stability. It is very common the use of performance testing to find out the performance of software before coming out to the market to ensure it will meet all the requirements to run efficiently. Performance testing, more specifically, can be divided in several kinds of tests. The most related to this thesis are load testing, to find out the behaviour of the server under traffic loads, and scalability testing, to determine also performance and reliability 5

11 6 Introduction of the server when increasing the load. The process to develop a performance testing involves the next steps [4]. 1. Identify your testing environment: it is necessary to know the physical environment where the test will be developed as well as the testing tools required. 2. Identify the performance criteria: this includes limit of response times and other values the simulations must meet to consider that the performance is good enough to offer a reliable service. 3. Design performance tests: test all the different cases which could be taken for the service or application. 4. Configuring the environment: prepare the environment and tools before starting the simulations. 5. Implement test design: develop suitable performance tests for the test design. 6. Run the tests: start simulations and display values of the test. 7. Analyze test: look into the results to check the performance of the service. Performance testing will ensure cloud services so that applications will run properly. These are the most recommended steps to develop TaaS [3] and we have taken them in account in this work. This service provides good features such as elasticity, safety, easy handling, reliable environment and flexibility when choosing options regarding instance storage. 1.2 Problem statement Nowadays TaaS [3] is something very common due to the wide use of internet clouds and the large number of applications provided on them. Therefore, we found interesting to use this concept to create a new approach for testing a particular scenario. In this thesis we focused on developing a different method to apply TaaS in a M2M framework. In addition, this project could be modified to test different scenarios for further research. For example, it would be possible to add more servers increasing the number of instances in the scripts used in this project. The acronym M2M [5] can have different meanings such as Machine-to-Machine, Machineto-Man, Machine-to-Mobile, and so on. However, M2M does have a clear goal, which is to allow the exchange of information over a communication network between two end points. When it comes to test networks, it is necessary to do it with the expected traffic that will go through that network whenever is used. To do so, there are two different ways [6]. The first one is simulating the type of traffic that is suppose to go over the network. TaaS

12 1.3. Method 7 systems use this option, allowing TaaS users to configure the test simulations according to their needs. To configure these simulations, some tools are used in the cloud such as Selenium and Jmeter [3]. The second way to test networks is replay recorded network traffic. The purpose of this thesis is to apply this second way to create a TaaS system to test networks in the cloud. In order to replay recorded traffic, we followed a method based on a replay attack [7], which is explained in the next section. In this way we created a TaaS system that can estimate network performance using a different method than the other systems already made. First we must also configure the simulations to test the server. However, the main difference in our method is that, we then extract the traffic pattern from those simulations in order to multiply it from a black box, so that, we can stress the server. This is an interesting method because, since we recreate precisely real exchange of traffic, the results are very actual and accurate. Finally we had to prove the feasibility of the method applied. The TaaS system developed was done for testing in the Amazon Cloud [8] which allowed us to set up the whole scenario easily and use different type of instances. These instances differ in features such as memory, storage, network performance and so on [9]. Therefore, it was interesting to compare results when we picked out one sort of instance or another. 1.3 Method The method followed during this thesis is divided into three steps. First we set up a proxy between client and server to extract the traffic. Then we had to figure out a way to recreate this traffic to finally replay it M2M to test the server. In the following paragraphs the method is described in detail. The first step consisted of setting up a scenario client-proxy-server in the cloud. Then we could run simulations to look into the behaviour of the packets going over the network. Afterwards we could check how the network performance was different when we changed some factors (number of clients, type of instance, etc.) in this network. The packets were sniffed in the proxy with the tool tshark [10]. Once we have some knowledge about the network simulated, we could start developing a method to extract a traffic pattern from those simulations. We must take in account that the script programmed must obtain the traffic pattern properly. So that, when it comes to recreate the same traffic M2M, the behaviour of the packets was as similar as possible to the original simulation. To achieve this goal, we had to extract the data sent and the timestamp of the packets with high precision. Once the pattern from the simulations is extracted, we moved on to the third and last step where we multiplied the traffic pattern scaling up the number of clients. In this way, large traffic load recreations were carried out to test the server limits and find out how this server could handle heavy traffic loads. These data sources sent the pattern extracted directly to the server in a M2M framework. Finally, when we obtained the final results, we could find out the server performance and the feasibility of the approach

13 8 Introduction developed. This method carried out is a kind of replay attack [7], where there is a man-in-themiddle (Wireshark sniffing in proxy), which intercepts the traffic. Then this traffic is replayed pretending to be the original sender in order to create problems to the host server. In our thesis this traffic is scaled up from a multiplier to stress and find out the software limits. Regarding the traffic pattern extraction, several tools were studied, and two methods to extract and replay traffic were considered. The first method consisted of modifying the pcap files previously recorded in the proxy, so that, the packets could be sent straight to the server from the data sources. Tcprewrite [11] was the tool used to modify the pcap file. The next step was to use another tool to recreate the traffic contained in the new pcap. One of them was Scapy [12], which sent the packets but not in the appropriate time. Another tool used was Tcpreplay [13], but it was not possible to simulate the server since this tool does not work with the transport level. Therefore, we could not establish a valid TCP connection [14]. Finally, we used the second method, which is based on programming our own script to extract the traffic pattern and recreate it later on. This way chosen was much trickier but much more suitable, as well as completely automatic. With this method was not necessary to do anything handwriting (like modifying the pcap file from the console). We just needed to type a few options such as name of file to replay or server instance type. After programming the script to extract the pattern, we needed to replay it somehow. We tried again with Scapy [12], a very good tool when it comes to create and configure packets. However, there were some problems to receive segments coming from the server since it was needed to work with sequence and acknowledge numbers. Therefore, this was extremely hard and finally sockets were used again to replay the pattern. A diagram with the whole system carried out to develop the thesis is shown in the Figure 1.1. The top of this Figure 1.1 (network traffic simulation) refers to the first part of the thesis, where we had to set up a client-proxy-server communication in the cloud. With this scenario we could run the simulations to exchange packets. Below we can see the next steps. The traffic was recorded in the proxy for a further analysis and pattern extraction. Finally, with the pattern obtained we came down to the last part of the thesis, shown on the bottom of the Figure 1.1 (traffic pattern recreation). In this part we set up a multiplier composed of many data sources which recreated the traffic pattern towards the same server. In this way we could find out the server performance when it comes to handle heavy traffic loads. 1.4 Delimitations During this thesis we have made some delimitations. The project could be improved to cover most of these aspects in further research. The TaaS system developed can only function in the Amazon Cloud because the main

14 1.5. Outline 9 library used to program this system works only for this particular cloud. The goal of this project is testing M2M communications, we cannot test different scenarios apart from a client-server connection. Moreover, we have focused on finding out server performance, therefore, the scope of this TaaS system is to carry out performance and scalability tests. In addition, the TaaS system programmed uses TCP sockets to test servers, for instance, we cannot use http requests for testing. 1.5 Outline The thesis is organized as follows. Introduction is in Chapter 1. Chapter 2 describes related work. In Chapter 3 is described simulations and analysis of the scenario data source, proxy and server. Traffic pattern extraction is described in Chapter 4. Design of TaaS [3] for M2M communications and results achieved with this system are in Chapter 5. Summary of the whole thesis, main results obtained and future work are in Chapter 6. Finally Chapter 7 includes the appendices.

15 10 Introduction Figure 1.1: Flow diagram of the developed system

16 CHAPTER 2 Related work There are many different communication protocols and they are required to establish connections within the network and transfer data among hosts. All of them have their place in the OSI model [15] where they are classified depending on their function. In this section, the main protocols are explained properly since they are essential to analyze a client-server communication. Moreover, some significant data needed to measure network performance in testing are described, as well as the tools to carry out simulations and analyze segments. 2.1 Communication protocols In order to develop this thesis, it was crucial to give a description of the most significant protocols and explain their functions. In this way it was easier to look into all the sniffed packets, check that everything is working properly. It is also useful to have a detailed knowledge of protocols when it comes to recreate the traffic pattern. Protocols are the objects that use the different OSI model layers in order to establish a communication within a network [15]. Each protocol provides two different interfaces. The first one is a service interface to deliver to the other objects in the same machine that want to use the service offers for this protocol. The other interface is called peer interface and is sent and used for its equivalent in another machine. However, before explaining the different kind of protocols, it is important to describe how they are organized depending on their function and see the whole where they all take place. To avoid a system becomes too complex, it is needed to add levels of abstraction. In networks systems this is also applied, creating layers with distinct functions each. In this way the problem of building a network is divided into more manageable parts. Another advantage is the ease to add new services, since it will not be necessary to modify all the part, but only the one where the service will be introduce. In networks, the architecture chosen is named the OSI model [15]. Networks follow this structure 11

17 12 Related work when connecting computers. This architecture is composed by seven levels with different functions. These levels are represented from top to bottom in the Figure 2.1. Figure 2.1: OSI model First, the physical layer identifies the physical features of the network. These characteristics can be related with the hardware, such as type of cables and connectors, or with the network topology (bus, ring, star, and so on). This layer also determines voltage and frequency that signals will use. About data link layer, it transmits the data from upper levels to the physical layer, but is also in charge of error detection and correction, and hardware addressing. The main function of the network layer is to provide a mechanism to select routes within the network in order to exchange packets among different systems. This layer uses mainly the IP protocol. The transport layer takes charge of transporting data in the network. To ensure packets get to the destination properly, this layer can check errors in the sending, make sure the data goes to the right service in the upper levels and divide packets in others more manageable (segmentation process). The most significant protocols are TCP and UDP, about which we will talk later. The session layer sets up connections between two endpoints (normally applications), making sure the application on the other system has the proper settings to communicate with the source application. The next level contain the presentation layer which transform the data linked to the application into another format in order to send it through the network. Finally the application layer gets requests and data from users in order to send

18 2.1. Communication protocols 13 them to the lower layers. The most common application protocol is HTTP HTTP protocol The Hypertext Transfer Protocol (HTTP) [16] is a protocol in the application level used for distributed, collaborative, hypermedia information systems. This network protocol is used for communication among users, proxies or gateways to other Internet systems. HTTP is used to deliver files, but another important function of this protocol is linked to the transmission of resources. A resource is a network data object that can be identified by a URI. Normally, these resources are either files or outputs of a script. Each HTTP message has the general form shown in the List 2.1 [15]. Listing 2.1: HTTP message START LINE <CLRF> MESSAGE HEADER <CLRF> <CLRF> MESSAGE BODY <CLRF> The first line shows whether this is a response or request message. The next lines provide parameters and options for the message. There are different kinds of header lines in HTTP and there is not limit on the number of lines that can be sent. The last part is a body of data sent after the header lines. Overall operation HTTP is a request/response protocol and the port used by default is 80, but it is possible to use other ports. An important HTTP request methods are called GET and POST [16]. This method is used to request and retrieve data from a specified resource. However there is another request method which is very significant for this thesis and its name is CONNECT [16]. This method is used to send data through a proxy that can act like a tunnel. Therefore we needed this method to establish a connection between client and server through the proxy. A few characteristics of HTTP communication must be pointed out. There is not a permanent connection, when the request is sent, the client disconnects from the server. The server will have to enable the connection again. As a result, client and server know that there is a connection between them only during a request. Therefore, they cannot keep information about the requests. Any kind of data can be transmitted by HTTP as long as client and server know how to manage the data. A typical example of HTTP request is shown in the Figure 2.2. To set up a communication with this protocol, a client must open a connection sending a request message to the server, which returns a response message. Afterwards, the

19 14 Related work Figure 2.2: HTTP request server will close the connection. First of all, we will describe the initial line of the request and response message. Concerning the request message, this first line consists of three parts. The first one is the HTTP request method. The second part is the path of the requested resource. This part is called URI. And finally, the version of HTTP that is being used. This idea can be clearly seen in the List 2.2. This example was extracted from the simulations made during the thesis. Listing 2.2: HTTP request with CONNECT CONNECT ec eu west 1.compute. amazonaws. com:50007 HTTP/1.1 The initial line of the response from the server is also divided in three parts. The initial part involves the version of HTTP used for the communication. Afterwards, there will be a code [15] for the computer to understand the result of the request. The first digit indicates the class of response. We have the codes shown in the List 2.3. Listing 2.3: HTTP request result

20 2.1. Communication protocols 15 1xx : i n f o r m a t i o n a l message. 2xx : s u c c e s s in the connection. 3xx : r e d i r e c t s the c l i e n t to another URL. 4xx : e r r o r l i n k e d to the c l i e n t. 5xx : e r r o r l i n k e d to the s e r v e r. Finally, there is a word or sentence in English to describe the status of the connection. Header lines offer information about the request or response, or about any object sent in the message body which will be explained later. There are many different headers lines but they can be classified in four main groups [17]. The entity header involves information about either the request, response or the information contained in the message body. A general header is used in both the request and the response.the request header is sent by a browser or a client to a server. Finally, the last kind of header is called response and is sent by a server in a response to a request.the format of the header lines is âheader-name: valueâ. Two examples of header lines are shown in the List 2.4. Listing 2.4: HTTP header lines User agent : Mozilla /3.0 Host : www. amazon. com Finally, an HTTP may have a body with data after the header lines. In a response, the request resource is always sent in its body. There may be also texts giving information or warning of errors. In a request, it is in the body where the user enters data or uploads files which will be sent to the server. When the HTTP message contains a body, there are usually header lines that provide information about the body. One of these header lines is called Content-Type, and it indicates the MIME and type of the data in the body. For instance text/html or image/gif. Another very common header line is Content-Length, which provides how many bytes were used in the body IP Internet Protocol (IP) is used to build and interconnect networks for the exchange of packets [15]. It is important to be clear about this layer to make sure the information is going to expected points within the network created in the cloud. IP occupies the network layer in the OSI model. IP runs both hosts and routers, defining an infrastructure that allows these nodes and networks operate as a single internetwork. Concerning the delivery, IP has the service model called best effort, which provides an unreliable datagram delivery, therefore, it is not ensured that the datagrams reaches their destinations. In addition this service model may cause more problems since the packets can be delivered out of order as well as get the destination more than once.

21 16 Related work IP Header The Figure 2.3 shows all the files carried in the IP header. Figure 2.3: Fields of the IP Header The first field is the Version Type which indicates the IP version used in the transmission. The Header Length identifies the length of the header in 32-bit words. If there are no options, the header has 5 words (20 bytes). The next field, Type of Service is used to indicate the quality of the service. The field Total Length indicates the length in bytes (unlike in Header Length where the length was count in words) of the whole datagram. When it comes to the Identification Field, the sender always marks each IP datagram with an ID number before the transmission. The goal is to have unique datagrams so if several fragments arrive to the destination, since all of them had the same ID value, the destination host can put together the fragments received. If some fragment does not arrive, all the fragments with the same number will be discarded. In the next field there are up to three flags. The first flag does not have any use for now, it is set to 0. The flag D allows the fragmentation of data into smaller pieces when this flag is set to 1. The flag M indicates whether the datagram received is the last one of the stream (set to 0) or there are more datagrams left (set to 1). The Fragment Offset is a value used by the sender to indicate the position of the datagrams within the stream in which they have been sent, so the receiver can put them in order. The first byte of the third word of the header is the field TTL which set the maximum time that a datagram may be on the network before being discarded. The main goal of this function is to discard datagrams that are within the network but never

22 2.1. Communication protocols 17 reach the receiver. The next field is called Protocol Protocol and indicates the kind of protocol that is expected in the datagram. The IP Header also uses a simple Checksum to verify the integrity of the header and the data during the transmission. To send the packet is required to fill the field Source Address with the IP address of the sender, as well as to fill the Destination Address with the IP address of the receiver. There is also a field to set up some options if they were required, and a Padding set with zeros to ensure that the length of the header is multiple of 32. Fragmentation and Reassembly Since IP provides host-to-host service throughout so many different networks with diverse technology, it is required to manage datagrams, so they can go over all the networks. There are two choices available to figure this problem out [15]. The first one is to ensure that every IP datagrams are small enough in order to fit inside a packet in any type of network. The second option is to use some technique to fragment and reassemble packets when they are too big to go through some network. This second option is the most suitable since networks are continuously changing and can be especially difficult to choose a specific size for the packet that fits in every network. This second option is the one used in the Amazon networks where we ran the tests. It is significant to know how the segments are fragmented to examine each segment sent and its respective answer. In this way, the exchange of packets was more organized and the recreation of traffic pattern was easier to make. This second option is based on the Maximum Transmission Unit (MTU), which is the biggest IP datagram that can be carried in a frame. Normally, the host chooses the MTU size to send IP datagrams. If by chance the packets go over some network with smaller MTU, it will be required to use fragmentation. For instance, if a packet of 1420 bytes (including 20 bytes of IP header) has to go through a network with 532 bytes of MTU, the datagram will be fragmented in three packets. The first two packets will contain 512 bytes of data and another 20 bytes for the header. Therefore, there will be 376 bytes left ( *2), so that the last datagram will carry those 376 bytes of data plus 20 bytes for the header. The result would look like in the Figure 2.4. It should be noted that the amount of data bytes in each packet must be always multiple of 8. During this process, the router will set the M bit in the Flag of the first and second datagram to indicate that there are more packets coming. As regards the offset field, in the first packet it is set to 0 because this datagram carries the first part of the original packet. However, the second datagram will have the Offset set to 64 since the first byte of data is the 513th (512/8 bytes).

23 18 Related work Figure 2.4: Datagram fragmentation Ethernet address resolution protocol Nowadays, Ethernet is the most widely used link layer network. To develop a mapping between the link layer addresses and IP addresses is required to use the technic Address Resolution Protocol (ARP), so that the physical interface hardware on the node can understand the addressing scheme. The method to get the link layer of a particular server through this technique involves the next steps [15]. First of all the sender will check its ARP cache to find out if it has already the link layer address (MAC) of the receiver. If it is not there, a new ARP request message will be sent, which carries its own IP and link layer addresses and the IP address of the server desired. This message is received by every device within the local network since this message is a broadcast. The receivers compare the searched IP address with their own IP address. The servers with different IP addresses will drop the packet, but the receiver which we are looking for will send an ARP reply message to the client. This server also will update its ARP cache with the link layer address of the client. When the sender receives the ARP reply, the MAC address of the receiver is saved. The required steps can be seen in the picture Ethernet Ethernet occupies both the data link and the physical layer in the OSI model [18][19]. The data link layer is divided in two different sublayers, Media Access Control known as MAC (defined by IEEE 802.3), and MAC client (defined by IEEE 802.2). The structure is shown in the Figure 2.6. The MAC client must be one of the next two different types of sublayers. The first one is the Logical Link Control (LLC) which supplies the interface from the MAC sublayer to the upper layers. The other option is called bridge entity, which provides an interface between LANs that can be using the same (for instance Ethernet to Ethernet) or different protocols. Concerning the MAC sublayer [18], this level takes charge of data encapsulation, assembling also the frames before sending them, as well as of analyzing these frames and detecting errors during the communication. Moreover this sublayer is in charge of starting

24 2.1. Communication protocols 19 Figure 2.5: ARP request Figure 2.6: Ethernet layers in OSI model

25 20 Related work frame transmissions and recovering them from communication errors. The physical layer enables the communication between the data link layer and the respective physical layer of other systems. In addition, this layer provides significant physical features of the Ethernet, such as voltage levels, timing, but the most important functions are related with data encoding and channel access. This layer can code and decode bits between binary and phase-encoded form. About access to the channel, this level sends and receives the encoded data we spoke about before, and detects collisions in the packets exchange UDP protocol User Datagram Protocol (UDP) is an IP standard defined in the internet standard RFC 768 [20]. It is used as transport protocol, therefore, its function is similar to the TCP protocol, but UDP is sometimes preferred since it is faster, lighter and simpler than TCP. However, it is less reliable. UDP provides a best-effort service to an end system, which means that UDP does not guarantee the proper delivery of the datagrams. Therefore, these protocols must not be used when a reliable communication is necessary. UDP header UDP messages are sent within a single IP packet and the maximum number of bytes is for IPv6 [21]. When a UDP datagram is sent, the data and the header go together in the IP network layer, and the computer has to fill the fields of the UDP header in the proper way. The scheme of the UDP protocol is represented in the Figure 2.7. Among other things, UDP is normally used to serve Domain Name System (DNS) requests on port number 53. DNS is a protocol that transforms domain names into IP addresses. This is important in this thesis since the proxy between client and server needs to work out the server IP address. Figure 2.7: UDP protocol header

26 2.1. Communication protocols 21 The UDP header is composed by four fields [15], each one contains 2 bytes. The Source Port indicates the port from which the packet was sent and it is by default the port where the reply should be addressed if there is no any change. The Destination Port is the internet destination address where the packet will be sent. The field for the Length indicates the total number of bytes used in the header and in the payload data. Finally, the Checksum is a scheme to avoid possible errors during the transmission. Each message is accompanied by a number calculated by the transmitter and the receiving station applies the same algorithm as the transmitter to calculate the Checksum. Both Checksums must match to ensure that any error happened during the transmission. UDP ports UDP ports give a location to send and receive UDP messages. These ports are used to send different kinds of traffic facilitating and setting an order for the packet transmission. Since the UDP port field is only 16 bits long, there are available ports. From 0 to 1023 are well-known port numbers. The destination port is usually one of these well-known ports and normally each one of these ports is used for one application in particular TCP protocol Transmission Control Protocol (TCP) is a protocol pertaining to the transport layer and used when a reliable delivered is required [15]. TCP is by far the most important protocol in this thesis since our TaaS system is based on TCP sockets. With this protocol a communication between two endpoints can be set up. Each endpoint is defined by two parameters, the IP address and the TCP port number. The following are some of the main characteristics of this protocol. In TCP the window size will decide the amount of bytes that can be transferred before the acknowledgement from the receiver is required. Whit TCP is possible to place the datagrams in order when they are coming from the IP protocol. In addition this protocol allows the data management to create different length fragment to forward them to the IP protocol. In TCP is also possible to transfer data coming from different sources on the same line multiplexing this data. This task is carried out by the ports. The TCP header is more complex than the UDP header. The scheme of this header is shown in the picture 2.8. The field Source Port identifies the sender port as well as the Destination Port does with the receiver port. The fields Sequence Number and the Acknowledgement Number will be explained deeply in the next section, since it is important to know how they work during a connection. The Header Length field, also called data Offset sets the size of the TCP header keeping in mind that the length will be always a multiple of 32 bits. The next field (called reserved in the picture) is useless for now and it is declared to zero. The flags field is used for additional information in the packets transmission. The SYN

27 22 Related work Figure 2.8: TCP protocol header flag is used to set up a TCP connection and the FIN flag to finish it. The ACK indicates that the packet is an acknowledgement. The URG flag is to inform that the segment contain urgent data. The PUSH flag is activated by the sender in order for the receiver to let the sender know that the packet was received. Finally the RESET is set to restart the connection. Other important issue is the windows size. Through this field we can know the number of bytes that the receiver can accept without acknowledgement. With the Checksum field the packets transmission will be more reliable since this field is used to check the integrity of the header. The next field in the TCP header is called Urgent Pointer and its function is to inform where the regular data (non-urgent data) contained in the packet begins. There can be also different options in the header, the length of this field is variable depending on what kind of options there are available. Finally there is a space between the options and the data called Padding. It is set with zeros and the goal is to ensure that the length of the packet is multiple of 32 bits. TCP connection To set up a connection, TCP uses an algorithm called three-way handshake [15], in which three packets are sent. In TCP connections, sender and receiver must agree on a number of parameters. When a connection is established, these parameters are the starting sequence number. An example of the way to set up a TCP connection is shown in the Figure 2.9. First of all, the client sends a packet to start the communication, the SYN flag is set to 1 and there will be a number carried in the sequence number field. When the server

28 2.1. Communication protocols 23 Figure 2.9: Establishing a connection in TCP responds, it will send a packet with the acknowledgement number equal to the sequence number of the first packet plus one, and its own beginning sequence number. Both the ACK and then SYN flags will be set to 1. Finally, the client responds with a packet in which the acknowledgement number is one number higher than the sequence number received from the server. Obviously the flag ACK must be set to 1 again. Furthermore, the client can also request to finish a connection. The process to end the communication starts with a packet sent by the client with the FIN flag activated. Once the server receives the packet, it sends an acknowledgement with the FIN flag set to 1 and keeps on sending the packets in progress. Afterwards, the client informs its application that a FIN segment was received and sends another packet with the FIN flag to the server to end the communication. Reliable delivery TCP provides an ordered and reliable delivery which is achieved through a method called sliding window [15], where is possible to define a number of sequences that does not need acknowledgements. This window moves depending on the acknowledgements received and

29 24 Related work its size can be modified by the server changing the value in the window size field. Figure 2.10: Sliding window method The window moves to the right when the client receives the ACK, allowing the client to send more packets. In the example represented in the Figure 2.10, the window ends up two position to the right because the sender got two acknowledgements. The client cannot send more than three packets straight without any ACK received since the size of the window is three. 2.2 Network Performance Metrics In this section we focus on different aspects relating to network efficiency and performance RTT Round trip time (RTT) is the time interval from a packet is sent to acknowledgement of the packet is received (ignoring retransmissions) [22]. This time is measured with several samples in order to achieve a reliable result. This time depends on several factors such as the data transfer rate of the connection, the material the network is made of, the distance between sender and receiver, number of nodes the packets go through, the amount of traffic in the network, and so on. The RTT has a established minimum time since it cannot be less than the time the signals take to go through the network. The

30 2.2. Network Performance Metrics 25 formula to get the value of the RTT within a network is shown in the equation 2.1. EstimatedRT T = α EstimatedRT T + (1 α) SampleRT T (2.1) Where α is a value (0 <α <1) that must be set. For TCP it is advisable to fix this parameter between 0.8 and 0.9. An example of exchange of packets and their direct relation with the RTT is set out in the Figure Figure 2.11: Example RTT interval Jitter Jitter is a variation in the delay of the packets sent within a network [15]. A sender will transmit many packets straight one after the other with a certain distance between them. However, problems with network congestion, queues or configuration errors cause that this distance between packets varies. The implications of the jitter in the pictures can be seen in the Figure Jitter is a great problem since these fluctuations happen randomly and change very quickly in time. Therefore, it is crucial to correct this problem as much as possible. One solution for this problem is to set a buffer which receives the packets at irregular intervals. This buffer will hold these packets for a short space of time in order to reorder them if necessary and leave the same distance between each packet. The main problem of this method is that this buffer adds delay to the transmission. They also will always have a limited size, so if the buffer is full of packets, the new packets that come will be dropped and they will never arrive to their destination.

31 26 Related work Figure 2.12: Jitter effect Latency Latency [15] indicates the time a message takes to go from one point of the network to another. Several factors affect to this parameter. The first contributor to network latency is the propagation delay, which is basically the time a packet takes to get from one point to another at the speed of light. The second factor to keep in mind is the time it takes to transmit data and this depends on the bandwidth and the size of the packet. The last contributor is related with the queueing delays in switches and bridges where packets are usually stored for some time. These factors can be defined in the next three formula: Latency = P ropagation + T ransmit + Queue (2.2) P ropagation = Distance/SpeedOf Light (2.3) T ransmit = Size/Bandwidth (2.4) Bandwidth This concept describes the number of bits that are transmitted within the network during a second [15]. There is an important relationship between bandwidth and latency to talk about. To visualize this idea, it may help to think in a pipe through where the data pass. The bandwidth would be the diameter of the pipe and the latency the length of this pipe. A simple draw with the relation among network, latency and bandwidth is in the Figure If we multiply both terms we will achieve the number of bits that can be transmitted in this pipe at a given instant. For instance, a channel with 50 ms of latency and 45

32 2.3. Tools strongly associated with this thesis 27 Figure 2.13: Relation between Latency and Bandwidth Mbps of bandwidth will be able to contain: s bits/s = bits (2.5) If more bandwidth is requested, just adding more pipes the problem is solved Throughput Throughput [15] is defined as the amount of data that can be sent from one host to another in a given time. This concept is used to measure the performance or efficiency of hard drives, RAM and networks. The throughput can be calculated with the next formula: T hroughput = T ransfersize / T ransfert ime (2.6) T ransf ert ime = RT T + 1/Bandwidth T ransf ersize (2.7) Where RTT is the round trip time. Throughput and bandwidth can be sometimes confusing terms. Bandwidth refers to the number of bits per second that can be transmitted in practice. However, due to inefficiencies of implementation or errors, a couple of nodes connected in the network with a bandwidth of 10 Mbps will usually have a throughput much lower (for instance 2 Mbps), so that the data can be sent at 2 Mbps at the most. 2.3 Tools strongly associated with this thesis We shall briefly describe a variety of tools which might be useful to develop this project.

33 28 Related work Network Tools In this section we describe some tools and applications related with the computer network management. SSLsplit: SSLsplit [23] is a tool to control attacks against SSL/TLS network connections. These connections are intercepted and redirected to SSLsplit. This tool may end SSL/TLS and launch a new SSL/TLS connection with the same receiver address. The goal of this tool is to be helpful to test and analyze networks. This tool can work with TCP, SSL, HTTP and HTTPS connections over IPv4 and IPv6. Wireshark: Wireshark [24] is a powerful network packet analyzer with a high number of functions. This tool can capture datagrams and show in detail everything that the packet carries. Overall, the aim of using wireshark is to solve and manage network problems, examine security problems, remove errors in protocol implementations. This program displays the characteristics of the packets in great detail, splitting them up in different layers. With this program, users can see easily a list with captured packets running in real time, the details of a selected packet and the packet content in hexadecimal and ASCII. In addition, it is also possible to filter the datagrams in order to make easier the search for the packets, which makes wireshark very manageable. Tcpdump: Tcpdump [25] is a tool to analyze packets that are going over the network. Some reasons why it is interesting to use tcpdump are verify connectivity between hosts and look into the traffic network. This tool also allows us to pick out particular kinds of traffic depending on the header information. Moreover, it is possible to save all the traffic captured in a file in order to be used in a future analysis. These tcpdump files can be also opened with software like wireshark. Moreover, tcpdump provides many instructions to capture packets in different ways, which give us a broad range of possibilities to manage the traffic. Proxy: Proxy [26] is a server used as a gateway between a local network and another much wider network. A proxy is located in the middle of the communication between sender and receiver. The proxy receives the incoming data from one port and it forwards this information to the rest of the network by another port. Proxies may cache web sites.

34 2.3. Tools strongly associated with this thesis 29 This happens each time a user from a local network asks for some URL. The proxy that receives this request will store a temporary copy of the URL. The next time that a user asks for the same web site, the proxy can send the cached copy to the user instead of forwarding the request to the network to find again the URL. We can see this process in the picture below, where the proxy asks for each web site only once. An example of how a proxy works and handle the incoming requests is shown in the Figure Figure 2.14: Proxy operation In this way, proxies can make much faster the delivery of packets within the network, but this is not the only function they cover. They may also be used to avoid that hackers get internal addresses since these proxies can block the access between two networks. Proxies can take part as a component of a firewall Programming language Several programming languages can be use for network programming. Python [27] is one of the most important, and provides a library called Boto which could be very helpful for this thesis. Boto: Boto [28] offers a Python interface to several services offered mainly by Amazon Web Services (AWS). To use Boto is required to provide the Access Key and Secret Key, which we can either give manually in every connection or add in the boto file. In addition it is necessary to create connection objects before creating a machine. These machines provide a stable and secure execution environment to run applications. Then main fields in which

Ethernet. Ethernet. Network Devices

Ethernet. Ethernet. Network Devices Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking

More information

Transport Layer Protocols

Transport Layer Protocols Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements

More information

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP Overview Securing TCP/IP Chapter 6 TCP/IP Open Systems Interconnection Model Anatomy of a Packet Internet Protocol Security (IPSec) Web Security (HTTP over TLS, Secure-HTTP) Lecturer: Pei-yih Ting 1 2

More information

Network Security TCP/IP Refresher

Network Security TCP/IP Refresher Network Security TCP/IP Refresher What you (at least) need to know about networking! Dr. David Barrera Network Security HS 2014 Outline Network Reference Models Local Area Networks Internet Protocol (IP)

More information

Technical Support Information Belkin internal use only

Technical Support Information Belkin internal use only The fundamentals of TCP/IP networking TCP/IP (Transmission Control Protocol / Internet Protocols) is a set of networking protocols that is used for communication on the Internet and on many other networks.

More information

Final for ECE374 05/06/13 Solution!!

Final for ECE374 05/06/13 Solution!! 1 Final for ECE374 05/06/13 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam taker -

More information

Protocols. Packets. What's in an IP packet

Protocols. Packets. What's in an IP packet Protocols Precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet Protocol (bottom level) all packets shipped from network to network as IP packets

More information

Guide to TCP/IP, Third Edition. Chapter 3: Data Link and Network Layer TCP/IP Protocols

Guide to TCP/IP, Third Edition. Chapter 3: Data Link and Network Layer TCP/IP Protocols Guide to TCP/IP, Third Edition Chapter 3: Data Link and Network Layer TCP/IP Protocols Objectives Understand the role that data link protocols, such as SLIP and PPP, play for TCP/IP Distinguish among various

More information

Computer Networks. Chapter 5 Transport Protocols

Computer Networks. Chapter 5 Transport Protocols Computer Networks Chapter 5 Transport Protocols Transport Protocol Provides end-to-end transport Hides the network details Transport protocol or service (TS) offers: Different types of services QoS Data

More information

ESSENTIALS. Understanding Ethernet Switches and Routers. April 2011 VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK

ESSENTIALS. Understanding Ethernet Switches and Routers. April 2011 VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK Contemporary Control Systems, Inc. Understanding Ethernet Switches and Routers This extended article was based on a two-part article that was

More information

How do I get to www.randomsite.com?

How do I get to www.randomsite.com? Networking Primer* *caveat: this is just a brief and incomplete introduction to networking to help students without a networking background learn Network Security. How do I get to www.randomsite.com? Local

More information

Networking Test 4 Study Guide

Networking Test 4 Study Guide Networking Test 4 Study Guide True/False Indicate whether the statement is true or false. 1. IPX/SPX is considered the protocol suite of the Internet, and it is the most widely used protocol suite in LANs.

More information

Overview of TCP/IP. TCP/IP and Internet

Overview of TCP/IP. TCP/IP and Internet Overview of TCP/IP System Administrators and network administrators Why networking - communication Why TCP/IP Provides interoperable communications between all types of hardware and all kinds of operating

More information

8.2 The Internet Protocol

8.2 The Internet Protocol TCP/IP Protocol Suite HTTP SMTP DNS RTP Distributed applications Reliable stream service TCP UDP User datagram service Best-effort connectionless packet transfer Network Interface 1 IP Network Interface

More information

The OSI and TCP/IP Models. Lesson 2

The OSI and TCP/IP Models. Lesson 2 The OSI and TCP/IP Models Lesson 2 Objectives Exam Objective Matrix Technology Skill Covered Exam Objective Exam Objective Number Introduction to the OSI Model Compare the layers of the OSI and TCP/IP

More information

CCNA R&S: Introduction to Networks. Chapter 5: Ethernet

CCNA R&S: Introduction to Networks. Chapter 5: Ethernet CCNA R&S: Introduction to Networks Chapter 5: Ethernet 5.0.1.1 Introduction The OSI physical layer provides the means to transport the bits that make up a data link layer frame across the network media.

More information

IP address format: Dotted decimal notation: 10000000 00001011 00000011 00011111 128.11.3.31

IP address format: Dotted decimal notation: 10000000 00001011 00000011 00011111 128.11.3.31 IP address format: 7 24 Class A 0 Network ID Host ID 14 16 Class B 1 0 Network ID Host ID 21 8 Class C 1 1 0 Network ID Host ID 28 Class D 1 1 1 0 Multicast Address Dotted decimal notation: 10000000 00001011

More information

Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX

Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX APPENDIX A Introduction Understanding TCP/IP To fully understand the architecture of Cisco Centri Firewall, you need to understand the TCP/IP architecture on which the Internet is based. This appendix

More information

NETWORK LAYER/INTERNET PROTOCOLS

NETWORK LAYER/INTERNET PROTOCOLS CHAPTER 3 NETWORK LAYER/INTERNET PROTOCOLS You will learn about the following in this chapter: IP operation, fields and functions ICMP messages and meanings Fragmentation and reassembly of datagrams IP

More information

IP - The Internet Protocol

IP - The Internet Protocol Orientation IP - The Internet Protocol IP (Internet Protocol) is a Network Layer Protocol. IP s current version is Version 4 (IPv4). It is specified in RFC 891. TCP UDP Transport Layer ICMP IP IGMP Network

More information

Objectives of Lecture. Network Architecture. Protocols. Contents

Objectives of Lecture. Network Architecture. Protocols. Contents Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking

More information

RARP: Reverse Address Resolution Protocol

RARP: Reverse Address Resolution Protocol SFWR 4C03: Computer Networks and Computer Security January 19-22 2004 Lecturer: Kartik Krishnan Lectures 7-9 RARP: Reverse Address Resolution Protocol When a system with a local disk is bootstrapped it

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://www.fb9dv.uni-duisburg.de/ti/en/education/teaching/ss08/netlab Equipment for each group: - 1 Server computer (OS: Windows 2000 Advanced

More information

2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring

2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 2057-15 First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 7-25 September 2009 TCP/IP Networking Abhaya S. Induruwa Department

More information

ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM

ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 Outline The transport service Elements of transport protocols A

More information

Access Control: Firewalls (1)

Access Control: Firewalls (1) Access Control: Firewalls (1) World is divided in good and bad guys ---> access control (security checks) at a single point of entry/exit: in medieval castles: drawbridge in corporate buildings: security/reception

More information

Session Hijacking Exploiting TCP, UDP and HTTP Sessions

Session Hijacking Exploiting TCP, UDP and HTTP Sessions Session Hijacking Exploiting TCP, UDP and HTTP Sessions Shray Kapoor shray.kapoor@gmail.com Preface With the emerging fields in e-commerce, financial and identity information are at a higher risk of being

More information

Based on Computer Networking, 4 th Edition by Kurose and Ross

Based on Computer Networking, 4 th Edition by Kurose and Ross Computer Networks Ethernet Hubs and Switches Based on Computer Networking, 4 th Edition by Kurose and Ross Ethernet dominant wired LAN technology: cheap $20 for NIC first widely used LAN technology Simpler,

More information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.

More information

Internet Protocol: IP packet headers. vendredi 18 octobre 13

Internet Protocol: IP packet headers. vendredi 18 octobre 13 Internet Protocol: IP packet headers 1 IPv4 header V L TOS Total Length Identification F Frag TTL Proto Checksum Options Source address Destination address Data (payload) Padding V: Version (IPv4 ; IPv6)

More information

Chapter 9. IP Secure

Chapter 9. IP Secure Chapter 9 IP Secure 1 Network architecture is usually explained as a stack of different layers. Figure 1 explains the OSI (Open System Interconnect) model stack and IP (Internet Protocol) model stack.

More information

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline OSI Seven Layer Model & Seminar Outline TCP/IP Fundamentals This seminar will present TCP/IP communications starting from Layer 2 up to Layer 4 (TCP/IP applications cover Layers 5-7) IP Addresses Data

More information

Overview of Computer Networks

Overview of Computer Networks Overview of Computer Networks Client-Server Transaction Client process 4. Client processes response 1. Client sends request 3. Server sends response Server process 2. Server processes request Resource

More information

Network Simulation Traffic, Paths and Impairment

Network Simulation Traffic, Paths and Impairment Network Simulation Traffic, Paths and Impairment Summary Network simulation software and hardware appliances can emulate networks and network hardware. Wide Area Network (WAN) emulation, by simulating

More information

Outline. CSc 466/566. Computer Security. 18 : Network Security Introduction. Network Topology. Network Topology. Christian Collberg

Outline. CSc 466/566. Computer Security. 18 : Network Security Introduction. Network Topology. Network Topology. Christian Collberg Outline Network Topology CSc 466/566 Computer Security 18 : Network Security Introduction Version: 2012/05/03 13:59:29 Department of Computer Science University of Arizona collberg@gmail.com Copyright

More information

Lecture Computer Networks

Lecture Computer Networks Prof. Dr. H. P. Großmann mit M. Rabel sowie H. Hutschenreiter und T. Nau Sommersemester 2012 Institut für Organisation und Management von Informationssystemen Thomas Nau, kiz Lecture Computer Networks

More information

Internet Architecture and Philosophy

Internet Architecture and Philosophy Internet Architecture and Philosophy Conceptually, TCP/IP provides three sets of services to the user: Application Services Reliable Transport Service Connectionless Packet Delivery Service The underlying

More information

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet Basic Networking Concepts 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet 1 1. Introduction -A network can be defined as a group of computers and other devices connected

More information

Internetworking. Problem: There is more than one network (heterogeneity & scale)

Internetworking. Problem: There is more than one network (heterogeneity & scale) Internetworking Problem: There is more than one network (heterogeneity & scale) Hongwei Zhang http://www.cs.wayne.edu/~hzhang Internetworking: Internet Protocol (IP) Routing and scalability Group Communication

More information

Guide to Network Defense and Countermeasures Third Edition. Chapter 2 TCP/IP

Guide to Network Defense and Countermeasures Third Edition. Chapter 2 TCP/IP Guide to Network Defense and Countermeasures Third Edition Chapter 2 TCP/IP Objectives Explain the fundamentals of TCP/IP networking Describe IPv4 packet structure and explain packet fragmentation Describe

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS Friday 2 nd October 2015 Morning Answer any FOUR questions out of SIX. All questions carry

More information

IP Networking. Overview. Networks Impact Daily Life. IP Networking - Part 1. How Networks Impact Daily Life. How Networks Impact Daily Life

IP Networking. Overview. Networks Impact Daily Life. IP Networking - Part 1. How Networks Impact Daily Life. How Networks Impact Daily Life Overview Dipl.-Ing. Peter Schrotter Institute of Communication Networks and Satellite Communications Graz University of Technology, Austria Fundamentals of Communicating over the Network Application Layer

More information

Transport and Network Layer

Transport and Network Layer Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a

More information

Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4)

Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4) Chapter 3 TCP/IP Networks 3.1 Internet Protocol version 4 (IPv4) Internet Protocol version 4 is the fourth iteration of the Internet Protocol (IP) and it is the first version of the protocol to be widely

More information

Networks: IP and TCP. Internet Protocol

Networks: IP and TCP. Internet Protocol Networks: IP and TCP 11/1/2010 Networks: IP and TCP 1 Internet Protocol Connectionless Each packet is transported independently from other packets Unreliable Delivery on a best effort basis No acknowledgments

More information

Network Layer: Network Layer and IP Protocol

Network Layer: Network Layer and IP Protocol 1 Network Layer: Network Layer and IP Protocol Required reading: Garcia 7.3.3, 8.1, 8.2.1 CSE 3213, Winter 2010 Instructor: N. Vlajic 2 1. Introduction 2. Router Architecture 3. Network Layer Protocols

More information

UPPER LAYER SWITCHING

UPPER LAYER SWITCHING 52-20-40 DATA COMMUNICATIONS MANAGEMENT UPPER LAYER SWITCHING Gilbert Held INSIDE Upper Layer Operations; Address Translation; Layer 3 Switching; Layer 4 Switching OVERVIEW The first series of LAN switches

More information

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004 5 th lecture Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004 1 43 Last lecture Lecture room hopefully all got the message lecture on tuesday and thursday same

More information

Computer Networks CS321

Computer Networks CS321 Computer Networks CS321 Dr. Ramana I.I.T Jodhpur Dr. Ramana ( I.I.T Jodhpur ) Computer Networks CS321 1 / 22 Outline of the Lectures 1 Introduction OSI Reference Model Internet Protocol Performance Metrics

More information

Local Area Networks transmission system private speedy and secure kilometres shared transmission medium hardware & software

Local Area Networks transmission system private speedy and secure kilometres shared transmission medium hardware & software Local Area What s a LAN? A transmission system, usually private owned, very speedy and secure, covering a geographical area in the range of kilometres, comprising a shared transmission medium and a set

More information

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP CSCE 515: Computer Network Programming TCP/IP IP Network Layer Wenyuan Xu Department of Computer Science and Engineering University of South Carolina IP Datagrams IP is the network layer packet delivery

More information

Frequently Asked Questions

Frequently Asked Questions Frequently Asked Questions 1. Q: What is the Network Data Tunnel? A: Network Data Tunnel (NDT) is a software-based solution that accelerates data transfer in point-to-point or point-to-multipoint network

More information

Mobile IP Network Layer Lesson 02 TCP/IP Suite and IP Protocol

Mobile IP Network Layer Lesson 02 TCP/IP Suite and IP Protocol Mobile IP Network Layer Lesson 02 TCP/IP Suite and IP Protocol 1 TCP/IP protocol suite A suite of protocols for networking for the Internet Transmission control protocol (TCP) or User Datagram protocol

More information

Lecture 15. IP address space managed by Internet Assigned Numbers Authority (IANA)

Lecture 15. IP address space managed by Internet Assigned Numbers Authority (IANA) Lecture 15 IP Address Each host and router on the Internet has an IP address, which consist of a combination of network number and host number. The combination is unique; no two machines have the same

More information

Communication Systems Internetworking (Bridges & Co)

Communication Systems Internetworking (Bridges & Co) Communication Systems Internetworking (Bridges & Co) Prof. Dr.-Ing. Lars Wolf TU Braunschweig Institut für Betriebssysteme und Rechnerverbund Mühlenpfordtstraße 23, 38106 Braunschweig, Germany Email: wolf@ibr.cs.tu-bs.de

More information

Communications and Computer Networks

Communications and Computer Networks SFWR 4C03: Computer Networks and Computer Security January 5-8 2004 Lecturer: Kartik Krishnan Lectures 1-3 Communications and Computer Networks The fundamental purpose of a communication system is the

More information

ACHILLES CERTIFICATION. SIS Module SLS 1508

ACHILLES CERTIFICATION. SIS Module SLS 1508 ACHILLES CERTIFICATION PUBLIC REPORT Final DeltaV Report SIS Module SLS 1508 Disclaimer Wurldtech Security Inc. retains the right to change information in this report without notice. Wurldtech Security

More information

2. What is the maximum value of each octet in an IP address? A. 128 B. 255 C. 256 D. None of the above

2. What is the maximum value of each octet in an IP address? A. 128 B. 255 C. 256 D. None of the above 1. How many bits are in an IP address? A. 16 B. 32 C. 64 2. What is the maximum value of each octet in an IP address? A. 128 B. 255 C. 256 3. The network number plays what part in an IP address? A. It

More information

Requirements of Voice in an IP Internetwork

Requirements of Voice in an IP Internetwork Requirements of Voice in an IP Internetwork Real-Time Voice in a Best-Effort IP Internetwork This topic lists problems associated with implementation of real-time voice traffic in a best-effort IP internetwork.

More information

Solution of Exercise Sheet 5

Solution of Exercise Sheet 5 Foundations of Cybersecurity (Winter 15/16) Prof. Dr. Michael Backes CISPA / Saarland University saarland university computer science Protocols = {????} Client Server IP Address =???? IP Address =????

More information

File Transfer Protocol (FTP) Throughput Testing by Rachel Weiss

File Transfer Protocol (FTP) Throughput Testing by Rachel Weiss White Paper File Transfer Protocol (FTP) Throughput Testing by Rachel Weiss Introduction In today s complex networks it is often difficult to correlate different measurements that are reported by network

More information

Understanding Layer 2, 3, and 4 Protocols

Understanding Layer 2, 3, and 4 Protocols 2 Understanding Layer 2, 3, and 4 Protocols While many of the concepts well known to traditional Layer 2 and Layer 3 networking still hold true in content switching applications, the area introduces new

More information

EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst

EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst Data communication in reality In reality, the source and destination hosts are very seldom on the same network, for

More information

Broadband Networks. Prof. Dr. Abhay Karandikar. Electrical Engineering Department. Indian Institute of Technology, Bombay. Lecture - 29.

Broadband Networks. Prof. Dr. Abhay Karandikar. Electrical Engineering Department. Indian Institute of Technology, Bombay. Lecture - 29. Broadband Networks Prof. Dr. Abhay Karandikar Electrical Engineering Department Indian Institute of Technology, Bombay Lecture - 29 Voice over IP So, today we will discuss about voice over IP and internet

More information

Protocol Data Units and Encapsulation

Protocol Data Units and Encapsulation Chapter 2: Communicating over the 51 Protocol Units and Encapsulation For application data to travel uncorrupted from one host to another, header (or control data), which contains control and addressing

More information

(Refer Slide Time: 02:17)

(Refer Slide Time: 02:17) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #06 IP Subnetting and Addressing (Not audible: (00:46)) Now,

More information

Exam 1 Review Questions

Exam 1 Review Questions CSE 473 Introduction to Computer Networks Exam 1 Review Questions Jon Turner 10/2013 1. A user in St. Louis, connected to the internet via a 20 Mb/s (b=bits) connection retrieves a 250 KB (B=bytes) web

More information

Region 10 Videoconference Network (R10VN)

Region 10 Videoconference Network (R10VN) Region 10 Videoconference Network (R10VN) Network Considerations & Guidelines 1 What Causes A Poor Video Call? There are several factors that can affect a videoconference call. The two biggest culprits

More information

Interconnection of Heterogeneous Networks. Internetworking. Service model. Addressing Address mapping Automatic host configuration

Interconnection of Heterogeneous Networks. Internetworking. Service model. Addressing Address mapping Automatic host configuration Interconnection of Heterogeneous Networks Internetworking Service model Addressing Address mapping Automatic host configuration Wireless LAN network@home outer Ethernet PPS Internet-Praktikum Internetworking

More information

Troubleshooting Tools

Troubleshooting Tools Troubleshooting Tools An overview of the main tools for verifying network operation from a host Fulvio Risso Mario Baldi Politecnico di Torino (Technical University of Turin) see page 2 Notes n The commands/programs

More information

Network Programming TDC 561

Network Programming TDC 561 Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating

More information

Transport Layer. Chapter 3.4. Think about

Transport Layer. Chapter 3.4. Think about Chapter 3.4 La 4 Transport La 1 Think about 2 How do MAC addresses differ from that of the network la? What is flat and what is hierarchical addressing? Who defines the IP Address of a device? What is

More information

VXLAN: Scaling Data Center Capacity. White Paper

VXLAN: Scaling Data Center Capacity. White Paper VXLAN: Scaling Data Center Capacity White Paper Virtual Extensible LAN (VXLAN) Overview This document provides an overview of how VXLAN works. It also provides criteria to help determine when and where

More information

Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering

Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering Internet Firewall CSIS 4222 A combination of hardware and software that isolates an organization s internal network from the Internet at large Ch 27: Internet Routing Ch 30: Packet filtering & firewalls

More information

[Prof. Rupesh G Vaishnav] Page 1

[Prof. Rupesh G Vaishnav] Page 1 Basics The function of transport layer is to provide a reliable end-to-end communications service. It also provides data transfer service for the user layers above and shield the upper layers from the

More information

Chapter 5. Data Communication And Internet Technology

Chapter 5. Data Communication And Internet Technology Chapter 5 Data Communication And Internet Technology Purpose Understand the fundamental networking concepts Agenda Network Concepts Communication Protocol TCP/IP-OSI Architecture Network Types LAN WAN

More information

enetworks TM IP Quality of Service B.1 Overview of IP Prioritization

enetworks TM IP Quality of Service B.1 Overview of IP Prioritization encor! enetworks TM Version A, March 2008 2010 Encore Networks, Inc. All rights reserved. IP Quality of Service The IP Quality of Service (QoS) feature allows you to assign packets a level of priority

More information

Network Layer IPv4. Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS. School of Computing, UNF

Network Layer IPv4. Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS. School of Computing, UNF Network Layer IPv4 Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF IPv4 Internet Protocol (IP) is the glue that holds the Internet together.

More information

04 Internet Protocol (IP)

04 Internet Protocol (IP) SE 4C03 Winter 2007 04 Internet Protocol (IP) William M. Farmer Department of Computing and Software McMaster University 29 January 2007 Internet Protocol (IP) IP provides a connectionless packet delivery

More information

Data Communication and Computer Network

Data Communication and Computer Network 1 Data communication principles, types and working principles of modems, Network principles, OSI model, functions of data link layer and network layer, networking components, communication protocols- X

More information

Packet Capture. Document Scope. SonicOS Enhanced Packet Capture

Packet Capture. Document Scope. SonicOS Enhanced Packet Capture Packet Capture Document Scope This solutions document describes how to configure and use the packet capture feature in SonicOS Enhanced. This document contains the following sections: Feature Overview

More information

Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU

Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU Savita Shiwani Computer Science,Gyan Vihar University, Rajasthan, India G.N. Purohit AIM & ACT, Banasthali University, Banasthali,

More information

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace Lab Exercise SSL/TLS Objective To observe SSL/TLS (Secure Sockets Layer / Transport Layer Security) in action. SSL/TLS is used to secure TCP connections, and it is widely used as part of the secure web:

More information

LAN Switching. 15-441 Computer Networking. Switched Network Advantages. Hubs (more) Hubs. Bridges/Switches, 802.11, PPP. Interconnecting LANs

LAN Switching. 15-441 Computer Networking. Switched Network Advantages. Hubs (more) Hubs. Bridges/Switches, 802.11, PPP. Interconnecting LANs LAN Switching 15-441 Computer Networking Bridges/Switches, 802.11, PPP Extend reach of a single shared medium Connect two or more segments by copying data frames between them Switches only copy data when

More information

Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network.

Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network. Course Name: TCP/IP Networking Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network. TCP/IP is the globally accepted group of protocols

More information

Safeguards Against Denial of Service Attacks for IP Phones

Safeguards Against Denial of Service Attacks for IP Phones W H I T E P A P E R Denial of Service (DoS) attacks on computers and infrastructure communications systems have been reported for a number of years, but the accelerated deployment of Voice over IP (VoIP)

More information

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb). 1 / 17 Network: several computers who can communicate. Bus topology: bus Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb). Hardware has globally unique MAC addresses (IDs).

More information

19531 - Telematics. 14th Tutorial - Proxies, Firewalls, P2P

19531 - Telematics. 14th Tutorial - Proxies, Firewalls, P2P 19531 - Telematics 14th Tutorial - Proxies, Firewalls, P2P Bastian Blywis Department of Mathematics and Computer Science Institute of Computer Science 10. February, 2011 Institute of Computer Science Telematics

More information

First Midterm for ECE374 02/25/15 Solution!!

First Midterm for ECE374 02/25/15 Solution!! 1 First Midterm for ECE374 02/25/15 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam

More information

Life of a Packet CS 640, 2015-01-22

Life of a Packet CS 640, 2015-01-22 Life of a Packet CS 640, 2015-01-22 Outline Recap: building blocks Application to application communication Process to process communication Host to host communication Announcements Syllabus Should have

More information

PART-A Questions. 9. What are the two parts of message inside the envelope?

PART-A Questions. 9. What are the two parts of message inside the envelope? PART-A Questions 1. Differentiate between internet and intranet. 2. What are the two types of spread spectrum? 3. Define hamming distance. 4. What are carrier sense protocols? 5. What are the two types

More information

Large-Scale TCP Packet Flow Analysis for Common Protocols Using Apache Hadoop

Large-Scale TCP Packet Flow Analysis for Common Protocols Using Apache Hadoop Large-Scale TCP Packet Flow Analysis for Common Protocols Using Apache Hadoop R. David Idol Department of Computer Science University of North Carolina at Chapel Hill david.idol@unc.edu http://www.cs.unc.edu/~mxrider

More information

We will give some overview of firewalls. Figure 1 explains the position of a firewall. Figure 1: A Firewall

We will give some overview of firewalls. Figure 1 explains the position of a firewall. Figure 1: A Firewall Chapter 10 Firewall Firewalls are devices used to protect a local network from network based security threats while at the same time affording access to the wide area network and the internet. Basically,

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://www.fb9dv.uni-duisburg.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008

More information

Computer Networking Networks

Computer Networking Networks Page 1 of 8 Computer Networking Networks 9.1 Local area network A local area network (LAN) is a network that connects computers and devices in a limited geographical area such as a home, school, office

More information

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address Objectives University of Jordan Faculty of Engineering & Technology Computer Engineering Department Computer Networks Laboratory 907528 Lab.4 Basic Network Operation and Troubleshooting 1. To become familiar

More information

Question: 3 When using Application Intelligence, Server Time may be defined as.

Question: 3 When using Application Intelligence, Server Time may be defined as. 1 Network General - 1T6-521 Application Performance Analysis and Troubleshooting Question: 1 One component in an application turn is. A. Server response time B. Network process time C. Application response

More information

How To Design A Layered Network In A Computer Network

How To Design A Layered Network In A Computer Network A Layered Approach to Computer Networks Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer Different layer of abstraction Different error control

More information

Local-Area Network -LAN

Local-Area Network -LAN Computer Networks A group of two or more computer systems linked together. There are many [types] of computer networks: Peer To Peer (workgroups) The computers are connected by a network, however, there

More information

Guideline for setting up a functional VPN

Guideline for setting up a functional VPN Guideline for setting up a functional VPN Why do I want a VPN? VPN by definition creates a private, trusted network across an untrusted medium. It allows you to connect offices and people from around the

More information