Visualizing the Internet protocol TCP

Size: px
Start display at page:

Download "Visualizing the Internet protocol TCP"

Transcription

1 Visualizing the Internet protocol TCP Freek Stulp Rineke Verbrugge Instituto de Sistemas e Robótica Artificial Intelligence Instituto Superior Técnico University of Groningen Home-page: Abstract Protocols are designed to ensure correct transmission of data when communicating over error-prone media. Understanding exactly how a protocol functions over time can be greatly enhanced if the protocol is visualized. This article discusses the Transmission Control Protocol used in the Internet, and presents an application that visualizes it. Future work aims at extending the application to show several protocols under varying conditions, creating a useful educational tool. 1 Introduction Protocols play an essential part in almost every form of communication. Whether it is a phone-call to a friend, or downloading a document from the Internet, protocols are involved. In general, their main purpose is to ensure that the message comes across correctly, even if it is made over faulty connections. One of the most important protocols for communication over the Internet is the Transmission Control Protocol (TCP). In a previous article we derived two knowledgebased algorithms modeling the essential body of the TCP, and concentrated on the epistemic analysis of these algorithms [4]. This article on the other hand will focus on the application developed to visualize the TCP. The rest of the paper is structured in the following way. Section 2 gives a short introduction to protocol verification. In section 3 the Transmission Control Protocol is presented. Its history and implementation are discussed, as well as the knowledgebased algorithms used to model it. Section 4 presents the Java Applet used to visualize the TCP. In section 5 we present the forthcoming application that is currently being developed. The article concludes with section 6. 2 Protocol Verification In their classical paper [2], Halpern and Zuck showed that epistemic logic provides a transparent way to specify and verify a number of protocols (like the alternatingbit protocol) that have been introduced for error-free transmission of sequences of Av. Rovisco Pais 1, Lisboa, Portugal. freeks@ai.rug.nl Grote Kruisstraat 2/1, 9712 TS Groningen, The Netherlands. rineke@ai.rug.nl 1

2 messages over a distributed network. In particular, they introduced two knowledgebased protocols, A and B, that could solve the following problem. Let two processors be given, called the sender S and the receiver R. The sender has an input tape with an infinite sequence X of data elements. S reads these elements and tries to send them to R, which writes the elements on an output tape. The protocols are required to guarantee that (a) at any moment the sequence of data elements received by R is a prefix of X (safety) and (b) if the communication medium satisfies certain so-called fairness conditions, every data element of X will eventually be written by R (liveness). Fairness here means that infinitely many message instantiations from S to R and from R to S are delivered, guaranteeing that every message arrives eventually. In perfect networks in which no errors occur this is trivial, but in real distributed systems errors occur during transmission. Data might simply disappear (a deletion error) or appear out of nowhere (an insertion error), the information content of the data might be corrupted (a mutation error), or it might not arrive in the order in which it was sent (a reordering error). Halpern and Zuck solved the sequence transmission problem for communication media where any two kinds of the first three above-mentioned errors occur. In order to do this, they used for each combination of two errors a special encoding of messages ensuring unique decodability and error detection. Thus, the knowledge-based protocols A and B were implemented in different ways to solve the sequence transmission problem in different kinds of communication media [2]. With the advent of very large networks, such as the Internet, new protocols were developed and implemented. Apart from ensuring the correct transmission of data, they also adapt to the varying circumstances that occur in real-world networking, such as varying bandwidth, varying transmission speed and partial failures of the network. One of these protocols was the Transmission Control Protocol (TCP), which will be discussed in the next section. 3 Transmission Control Protocol This section briefly discusses the Transmission Control Protocol and its abstraction to a knowledge-based protocol. It is a summary of concepts discussed in more detail in [4]. In 1969, the Advanced Research Projects Agency Network (ARPANET) was developed by the U.S. Defense Department. Several protocols were developed for data transmission across this network, of which the TCP was to be used if reliability requirements were high. The Internet as we now know it evolved from the ARPANET. Many things changed, but the TCP has always remained, as any network will need some sort of mechanism to ensure correct transmission. See [3] for an extensive history. The high-level specification of TCP is very similar to protocol B, but has many extra features that address real-world networking issues. One of these is the specification of a Retransmission Time-Out. If the sender has to wait for a package from the receiver (or vice versa) for a long time, it can be assumed that a deletion error occurred, and the package is resent. In protocol B, it is not specified what a long time is, but in TCP this is the Retransmission Time-Out (RTO). Once this expires, a package is resent. An appropriate RTO depends on the overall network properties, as well as varying network conditions over time. See [1] for a good description of how the RTO is determined. Another feature is sliding windows. Instead of dealing with one package at a time (as protocol A and B do), TCP can send a whole window of packages at one time. The receiver only needs to acknowledge the last consecutive received package in the window 2

3 to inform the sender that it has received all the packages in the window thus far. This reduces the number of acknowledgements, and thus the load on the network. TCP is a communication protocol, not a piece of software. Thus, the protocol specifies the format of the data and acknowledgements that computers exchange as well as the way computers initiate and complete a TCP stream transfer. On the other hand, TCP does not dictate the details of the interface between an application program and TCP itself [1]. This gives a programmer flexibility when implementing TCP for a particular computer s operating system. At the same time, the high-level specification of TCP makes it amenable for an analysis using epistemic logic. Still, to give a true knowledge-based interpretation of the TCP we will first have to convert the technical Internet language to more knowledge-based terms. In [4] the language we use is explained. A justification of certain simplifications is also given. More importantly, the knowledge-based algorithms are presented. They are not repeated explicitly in the current article, as they can be seen in the screen-shot of the application in figure 1, as well as in the Manual section of the accompanying home-page. The derived algorithms were analyzed using modal logic. It was proven that the sender and the receiver using TCP can acquire depth n knowledge about the values of the messages for any n. On the negative side, it was proven that TCP could never ensure common knowledge between the sender and the receiver, by giving specific bounds on the depth of knowledge at each moment of data transmission. Also, the simplification of TCP to a knowledge-based algorithm enables lucid visualization, and the emphasis of this article lies on this aspect. 4 Visualization Proving properties of a protocol using epistemic logic is one thing, but an intuitive understanding of the protocol is another, certainly for those not too familiar with protocols or epistemic logic. The latter is more easily acquired with a visualization, so the knowledge-based algorithms have been implemented and incorporated in an interface, written in Java. This language is highly portable, and can be executed using only an Internet browser. The Applet can be seen on the home-page referred to on the title page. This web-site features the Applet, which can be reached through the Applet option in the menu. There is also a small manual, in which the interface is explained, and in which the algorithms of the protocol are discussed in more detail. Reading this section will be greatly enhanced if the Applet is at hand, especially if only a gray-scale version of the article is available. The interface is shown in figure 1, and consists of four main components. The topmost part represents the network. On the left is the sender, on the right the receiver. Sender and Receiver can send each other packages, consisting of a number (representing the position on the tape from which that package was read) and a letter (representing the data at that position on the tape). Receiver only needs to send acknowledgements, represented Between them is the network. Each package sent travels one of three connections. The middle connection is the standard route; packages travel it with normal speed. The upper one is much slower than the standard connection. This causes reordering problems. The lower connection is broken, so packages get lost as well (dramatically visualized with an explosion!). This causes deletion errors. Mutation and insertion errors have not been modeled in this application. Each time a package is sent by 3

4 Figure 1: The TCP visualization Applet Sender or Receiver, it is transported across the network in a certain time. At the intersection the network decides through which connection the package will travel the network. The probability with which each connection is chosen is specified separately for Sender and Receiver, modeling different network conditions. The user can not yet set these values. Once a package has crossed the network, it is taken off the network, and passed to the sender or the receiver. The center part contains the algorithms for the sender and the receiver. The rule that is currently active is highlighted red, the others are black. The execution of the algorithms is done in steps. At each step, the next rule in the algorithm fires, and the packages are transported some distance across the network. A send command by either of the protocols leads to the introduction of a new package on the network. The center panel also shows the tapes from which data is read by the sender, and data is written by the receiver. The protocols have an explicit read(x,i) and write(x,i) function that enable this. For the receiver, unknown slots on the tape are gray, known slots are white and specify the information contained at that slot. For the sender, slots in the window are white or yellow, those outside are all gray. For both, the variable i, representing the index of the package currently being processed, is indicated beneath the tape by a red index. The three buttons at the bottom allow the user to run the protocol. The stepbutton makes one single step in the protocol, as discussed above. The start-button runs the protocols continuously simply by appending steps. The pause-button pauses the transmission. Resetting the application can easily be done by pressing the refreshbutton of the browser. Summarizing: the application visualizes how Sender and Receiver constantly send each other new data and acknowledgements, how sender reads from the tape and sends 4

5 its data package by package, window by window, how receiver receives data and writes it to the tape, acknowledging packages meanwhile, and, probably most interesting, how deletion and reordering errors occur, and are dealt with by the protocols. 5 Ongoing and Future Work Although the application was very useful in accompanying the article discussing the epistemic analysis, its educational value is limited. This is mainly because the TCP is a fairly complex protocol, and understanding it requires prior knowledge about protocol verification, or at least modal logic. Even for the epistemic connoisseurs, learning both the interface and TCP at the same time might prove difficult. Nevertheless, it was ideal as an accompaniment of the previous article, as it explained TCP in great detail. An obvious improvement would be if the application had the capability of visualizing several protocols, ranging from relatively simple protocols such as Protocol B to the sophisticated TCP. Our current work is aiming at exactly this. In figure 2 the interface for the new application is shown. Although we think this interface is pretty definitive, the application is not yet operational. The Protocol shown in the screen-shot is Protocol B, but we will add other protocols such as Protocol A, the Alternating Bit Protocol, TCP, UDP (User Datagram Protocol, another Internet protocol), and perhaps more. Figure 2: Visualizing protocols under varying conditions The basic layout and functionality of the program is the same as the application discussed in section 4 (the buttons and tapes have moved), but there are two added features. The first is simply a list of all the facts stored in the knowledge-base. As the application is not fully implemented yet they are empty, but when operational 5

6 the knowledge-base could show facts as K r K s (1, 5), K s (0, 5), or anything else the protocol stores. The second feature makes it especially useful as an educational tool. On the top left, below the protocol selector (currently Protocol B is selected), there is a panel in which the transmission errors can be controlled. Occurrence of specific types of errors (deletion, reordering and mutation) can be enabled or not. If enabled, the user can specify which percentage of packages should be corrupted by this type of error. In the screen-shot, 10% of packages will travel the lower connection and be deleted, whereas 20% will take the slow connection, leading to reordering errors. There are no mutation errors, as the check-box is disabled. This feature allows the user to see how the different errors influence the transmission of data from Sender to Receiver. For students, answering questions as Can Protocol B guarantee safety with a connection in which deletion and mutation errors occur?, or Can TCP cope with mutation errors? might be made a lot easier (and hopefully more fun!) with the application. It gives no proof, but could certainly be used to point the user in the right direction. That this is no overstatement is exemplified by the earlier TCP visualization Applet, which inspired most of the proofs discussed in [4]. 6 Conclusion This article has discussed protocols and their verification. Verification of protocols can be difficult, and proofs of several pages are no exception. Sometimes a more intuitive idea of how a protocol really works over time is desired, especially if one is a newcomer to the field. We feel that visualization is an essential element in forming this intuition. A previous article emphasized the epistemic analysis of the Internet protocol TCP [4], whereas this article has focused on the visualization application that accompanied it. The application shows TCP in action, showing precisely how the protocol functions over time and interacts with the environment. This article was also used to present a similar, forthcoming application which is much more general, visualizing several protocols, and allows the user to control the occurrence of transmission errors. We hope that its educational value will inspire teachers to use it in courses on protocol verification, or modal logic in general. References [1] D.E. Comer, Internetworking with TCP/IP, Volume I: Principles, Protocols and Architecture, Upper Saddle River, Prentice Hall, [2] J.Y. Halpern and L.D. Zuck, A little knowledge goes a long way: simple knowledgebased derivations and correctness proofs for a family of protocols. Journal of the ACM 39, nr. 3 (1992), pp Earlier version appeared in: Proceedings of the Sixth ACM Symposium on Principles of Distributed Computing, 1987, pp [3] M. Miller, Troubleshooting TCP/IP: Analyzing the Protocols of the Internet, San Mateo (CA), Prentice-Hall, [4] F. Stulp and R. Verbrugge, A knowledge-based algorithm or the Internet protocol TCP, Proc. 4rd Conf. on Logic and the Foundations of Game and Descision Theory (LOFT 4), Torino, Italy, June Also to be published in the Bulletin of Economic Research. 6

TCP/IP protocol suite

TCP/IP protocol suite TCP/IP protocol suite The TCP/IP protocol suite was developed prior to the OSI model. Therefore, the layers in the TCP/IP protocol suite do not match exactly with those in the OSI model. The original TCP/IP

More information

Continuous Real Time Data Transfer with UDP/IP

Continuous Real Time Data Transfer with UDP/IP Continuous Real Time Data Transfer with UDP/IP 1 Emil Farkas and 2 Iuliu Szekely 1 Wiener Strasse 27 Leopoldsdorf I. M., A-2285, Austria, farkas_emil@yahoo.com 2 Transilvania University of Brasov, Eroilor

More information

Switching on our smartphone and sending an to a friend living 5000 km from our home is something that we take for granted, but that involves a

Switching on our smartphone and sending an  to a friend living 5000 km from our home is something that we take for granted, but that involves a Switching on our smartphone and sending an email to a friend living 5000 km from our home is something that we take for granted, but that involves a lot of very complex processes and has to take into account

More information

Analyzation of Automatic Repeat Request (ARQ) Protocols

Analyzation of Automatic Repeat Request (ARQ) Protocols RESEARCH ARTICLE OPEN ACCESS Analyzation of Automatic Repeat Request (ARQ) Protocols 1 Jeshvina.S, 2 Sneha.P, 3 Saraanya.S Final year BCA, Dept of Computer Science New Horizon College Kasturinagar, Bangalore

More information

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc.

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc. Objectives CPS221 Lecture: Layered Network Architecture last revised 6/22/10 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

Spatial Scene Level Shape Error Concealment for Segmented Video

Spatial Scene Level Shape Error Concealment for Segmented Video Spatial Scene Level Shape Error Concealment for Segmented Video Luis Ducla Soares 1, Fernando Pereira 2 1 Instituto Superior de Ciências do Trabalho e da Empresa Instituto de Telecomunicações, Lisboa,

More information

CPS221 Lecture: Layered Network Architecture

CPS221 Lecture: Layered Network Architecture CPS221 Lecture: Layered Network Architecture Objectives last revised 9/8/14 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

Introduction to Protocols

Introduction to Protocols Chapter 6 Introduction to Protocols 1 Chapter 6 Introduction to Protocols What is a Network Protocol? A protocol is a set of rules that governs the communications between computers on a network. These

More information

Communication Networks

Communication Networks Communication Networks Prof. Laurent Vanbever Exercises week 4 Reliable Transport Reliable versus Unreliable Transport In the lecture, you have learned how a reliable transport protocol can be built on

More information

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 26 Source Coding (Part 1) Hello everyone, we will start a new module today

More information

1

1 Zeros&asymptotes Example 1 In an early version of this activity I began with a sequence of simple examples (parabolas and cubics) working gradually up to the main idea. But now I think the best strategy

More information

TRIBHUVAN UNIVERSITY Institute of Engineering Pulchowk Campus Department of Electronics and Computer Engineering

TRIBHUVAN UNIVERSITY Institute of Engineering Pulchowk Campus Department of Electronics and Computer Engineering TRIBHUVAN UNIVERSITY Institute of Engineering Pulchowk Campus Department of Electronics and Computer Engineering A Final project Report ON Minor Project Java Media Player Submitted By Bisharjan Pokharel(061bct512)

More information

Reference Models. 7.3 A Comparison of the OSI and TCP/IP Reference Models

Reference Models. 7.3 A Comparison of the OSI and TCP/IP Reference Models Reference Models Contains 7.1 The OSI Reference Model 7.1.1 The Physical Layer 7.1.2 The Data Link Layer 7.1.3 The Network Layer 7.1.4 The Transport Layer 7.1.5 The Session Layer 7.1.6 The Presentation

More information

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet Chapter 2 - Part 1 The TCP/IP Protocol: The Language of the Internet Protocols A protocol is a language or set of rules that two or more computers use to communicate 2 Protocol Analogy: Phone Call Parties

More information

Chapter 11 Data Link Control 11.1

Chapter 11 Data Link Control 11.1 Chapter 11 Data Link Control 11.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 11-1 FRAMING The data link layer needs to pack bits into frames, so that each

More information

Internetworking Models The OSI Reference Model

Internetworking Models The OSI Reference Model Internetworking Models When networks first came into being, computers could typically communicate only with computers from the same manufacturer. In the late 1970s, the Open Systems Interconnection (OSI)

More information

Graphical Tool For SC Automata.

Graphical Tool For SC Automata. Graphical Tool For SC Automata. Honours Project: 2000 Dr. Padmanabhan Krishnan 1 Luke Haslett 1 Supervisor Abstract SC automata are a variation of timed automata which are closed under complementation.

More information

User Datagram Protocol (UDP):

User Datagram Protocol (UDP): SFWR 4C03: Computer Networks and Computer Security Feb 2-5 2004 Lecturer: Kartik Krishnan Lectures 13-15 User Datagram Protocol (UDP): UDP is a connectionless transport layer protocol: each output operation

More information

Basic Reliable Transport Protocols

Basic Reliable Transport Protocols Basic Reliable Transport Protocols Do not be alarmed by the length of this guide. There are a lot of pictures. You ve seen in lecture that most of the networks we re dealing with are best-effort : they

More information

Stream Control Transmission Protocol

Stream Control Transmission Protocol Chapter 13 Stream Control Transmission Protocol Objectives Upon completion you will be able to: Be able to name and understand the services offered by SCTP Understand SCTP s flow and error control and

More information

STEVEN R. BAGLEY PACKETS

STEVEN R. BAGLEY PACKETS STEVEN R. BAGLEY PACKETS INTRODUCTION Talked about how data is split into packets Allows it to be multiplexed onto the network with data from other machines But exactly how is it split into packets and

More information

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science Advanced Computer Networks Rab Nawaz Jadoon Department of Computer Science DCS COMSATS Institute of Information Technology Assistant Professor COMSATS University, Lahore Pakistan Advanced Computer Networks

More information

Occasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change.

Occasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change. RFC: 816 FAULT ISOLATION AND RECOVERY David D. Clark MIT Laboratory for Computer Science Computer Systems and Communications Group July, 1982 1. Introduction Occasionally, a network or a gateway will go

More information

Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols

Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols Week 2 / Paper 1 The Design Philosophy of the DARPA Internet Protocols David D. Clark ACM CCR, Vol. 18, No. 4, August 1988 Main point Many papers describe how the Internet Protocols work But why do they

More information

Chapter 11 Data Link Control 11.1

Chapter 11 Data Link Control 11.1 Chapter 11 Data Link Control 11.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 11-1 FRAMING The data link layer needs to pack bits into frames, so that each

More information

TCP Congestion Control

TCP Congestion Control 1 TCP Congestion Control Onwutalobi, Anthony Claret Department of Computer Science University of Helsinki, Helsinki Finland onwutalo@cs.helsinki.fi Abstract This paper is aimed to discuss congestion control

More information

CSE 461 Module 10. Introduction to the Transport Layer

CSE 461 Module 10. Introduction to the Transport Layer CSE 461 Module 10 Introduction to the Transport Layer Last Time We finished up the Network layer Internetworks (IP) Routing (DV/RIP, LS/OSPF, BGP) It was all about routing: how to provide end-to-end delivery

More information

Fundamentals of Operations Research. Prof. G. Srinivasan. Department of Management Studies. Indian Institute of Technology Madras.

Fundamentals of Operations Research. Prof. G. Srinivasan. Department of Management Studies. Indian Institute of Technology Madras. Fundamentals of Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology Madras Lecture No # 06 Simplex Algorithm Initialization and Iteration (Refer Slide

More information

Byzantine Consensus in Directed Graphs

Byzantine Consensus in Directed Graphs Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory

More information

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Transport Layer Network Fundamentals Chapter 4 Version 4.0 1 Transport Layer Role and Services Transport layer is responsible for overall end-to-end transfer of application data 2 Transport Layer Role

More information

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER Transport Layer The Transport layer ensures the reliable arrival of messages and provides error checking mechanisms and data

More information

UNIT 2 TRANSPORT LAYER

UNIT 2 TRANSPORT LAYER Network, Transport and Application UNIT 2 TRANSPORT LAYER Structure Page No. 2.0 Introduction 34 2.1 Objective 34 2.2 Addressing 35 2.3 Reliable delivery 35 2.4 Flow control 38 2.5 Connection Management

More information

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol

More information

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP CS 5520/ECE 5590NA: Network Architecture I Spring 2008 Lecture 13: UDP and TCP Most recent lectures discussed mechanisms to make better use of the IP address space, Internet control messages, and layering

More information

ANIMATION AS AN INTERACTIVE TOOL

ANIMATION AS AN INTERACTIVE TOOL ANIMATION AS AN INTERACTIVE TOOL Andrew Toon 1 Open University Centre Mathematics Department, 535A Clementi Road Singapore 599490 Abstract Animation can be a powerful medium for illustrating various mathematical

More information

introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion

introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion Today s video will talk about an important concept in computer science which is

More information

Table of Contents. Cisco How NAT Works

Table of Contents. Cisco How NAT Works Table of Contents How NAT Works...1 This document contains Flash animation...1 Introduction...1 Behind the Mask...2 Dynamic NAT and Overloading Examples...5 Security and Administration...7 Multi Homing...9

More information

Chapter 11 Data Link Control 11.1

Chapter 11 Data Link Control 11.1 Chapter 11 Data Link Control 11.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 11-1 1 FRAMING The data link layer needs to pack bits into frames,, so that

More information

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols TCP/IP Chapter 5: Transport Layer TCP/IP Protocols 1 Objectives Understand the key features and functions of the User Datagram Protocol Explain the mechanisms that drive segmentation, reassembly, and retransmission

More information

Split and Merge - an algorithm to implement security on the Internet

Split and Merge - an algorithm to implement security on the Internet Split and Merge - an algorithm to implement security on the Internet OÃO PAULO PIMENTÃO, PEDRO A. C. SOUSA, ADOLFO STEIGER GARÇÃO UNINOVA Centre for Intelligent Robotics Universidade Nova de Lisboa Quinta

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 18 All-Integer Dual Algorithm We continue the discussion on the all integer

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 28 Chinese Postman Problem In this lecture we study the Chinese postman

More information

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW STAROFFICE 8 DRAW Graphics They say a picture is worth a thousand words. Pictures are often used along with our words for good reason. They help communicate our thoughts. They give extra information that

More information

LABORATORY 3 INTERNETWORKING: FLOW CONTROL ALGORITHMS AND TCP/IP

LABORATORY 3 INTERNETWORKING: FLOW CONTROL ALGORITHMS AND TCP/IP 94462 COMPUTER COMMUNICATIONS LABORATORY 3 INTERNETWORKING: FLOW CONTROL ALGORITHMS AND TCP/IP SEPTEMBER 1998 COPYRIGHT BY MATTHIAS FALKNER 1998 (All rights reserved: No part of this publication may be

More information

Neural-based TCP performance modelling

Neural-based TCP performance modelling Section 1 Network Systems Engineering Neural-based TCP performance modelling X.D.Xue and B.V.Ghita Network Research Group, University of Plymouth, Plymouth, United Kingdom e-mail: info@network-research-group.org

More information

UNIT IV -- TRANSPORT LAYER

UNIT IV -- TRANSPORT LAYER UNIT IV -- TRANSPORT LAYER TABLE OF CONTENTS 4.1. Transport layer. 02 4.2. Reliable delivery service. 03 4.3. Congestion control. 05 4.4. Connection establishment.. 07 4.5. Flow control 09 4.6. Transmission

More information

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts

More information

Horn Formulae. CS124 Course Notes 8 Spring 2018

Horn Formulae. CS124 Course Notes 8 Spring 2018 CS124 Course Notes 8 Spring 2018 In today s lecture we will be looking a bit more closely at the Greedy approach to designing algorithms. As we will see, sometimes it works, and sometimes even when it

More information

Homework 1. Question 1 - Layering. CSCI 1680 Computer Networks Fonseca

Homework 1. Question 1 - Layering. CSCI 1680 Computer Networks Fonseca CSCI 1680 Computer Networks Fonseca Homework 1 Due: 27 September 2012, 4pm Question 1 - Layering a. Why are networked systems layered? What are the advantages of layering? Are there any disadvantages?

More information

Module 2.3a IP 0:00 - 1:00 -

Module 2.3a IP 0:00 - 1:00 - Module 2.3a IP 0:00 - In this video we're going to continue looking at our simplified view of how the internet layers work and in particular we're going to look at the middle layer which is good known

More information

Network Extension Unit (NXU)

Network Extension Unit (NXU) Network Extension Unit (NXU) Purpose--Bandwidth Capabilities The purpose of the application note is to provide a description of the NXU bandwidth. The details will cover the following: General description

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

4.0.1 CHAPTER INTRODUCTION

4.0.1 CHAPTER INTRODUCTION 4.0.1 CHAPTER INTRODUCTION Data networks and the Internet support the human network by supplying seamless, reliable communication between people - both locally and around the globe. On a single device,

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

IP Packet Switching. Goals of Todayʼs Lecture. Simple Network: Nodes and a Link. Connectivity Links and nodes Circuit switching Packet switching

IP Packet Switching. Goals of Todayʼs Lecture. Simple Network: Nodes and a Link. Connectivity Links and nodes Circuit switching Packet switching IP Packet Switching CS 375: Computer Networks Dr. Thomas C. Bressoud Goals of Todayʼs Lecture Connectivity Links and nodes Circuit switching Packet switching IP service model Best-effort packet delivery

More information

Improving TCP Performance over Wireless Networks using Loss Predictors

Improving TCP Performance over Wireless Networks using Loss Predictors Improving TCP Performance over Wireless Networks using Loss Predictors Fabio Martignon Dipartimento Elettronica e Informazione Politecnico di Milano P.zza L. Da Vinci 32, 20133 Milano Email: martignon@elet.polimi.it

More information

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6. Transport Layer 6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6.1 Internet Transport Layer Architecture The

More information

The Transmission Control Protocol (TCP)

The Transmission Control Protocol (TCP) The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, e-mail, WWW) Reliable Stream Transport (TCP) Unreliable Transport Service (UDP) Connectionless Packet Delivery Service (IP) Goals

More information

CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5

CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5 CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5 This fifth problem set explores the regular languages, their properties, and their limits. This will be your first foray into computability theory,

More information

Equations of planes in

Equations of planes in Roberto s Notes on Linear Algebra Chapter 6: Lines, planes and other straight objects Section Equations of planes in What you need to know already: What vectors and vector operations are. What linear systems

More information

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due NOW!

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due NOW! CSE 123: Computer Networks Alex C. Snoeren HW 1 due NOW! Automatic Repeat Request (ARQ) Acknowledgements (ACKs) and timeouts Stop-and-Wait Sliding Window Forward Error Correction 2 Link layer is lossy

More information

CS457 Transport Protocols. CS 457 Fall 2014

CS457 Transport Protocols. CS 457 Fall 2014 CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram

More information

Reliable Multicast in Mobile Networks

Reliable Multicast in Mobile Networks Reliable Multicast in Mobile Networks Pasi Tiihonen and Petri Hiirsalmi Lappeenranta University of Technology P.O. Box 20 FIN-53851 Lappeenranta, Finland, {Pasi Tiihonen, Petri Hiirsalmi}@lut.fi Key words:

More information

Fault-Tolerance & Paxos

Fault-Tolerance & Paxos Chapter 15 Fault-Tolerance & Paxos How do you create a fault-tolerant distributed system? In this chapter we start out with simple questions, and, step by step, improve our solutions until we arrive at

More information

CS 349/449 Internet Protocols Final Exam Winter /15/2003. Name: Course:

CS 349/449 Internet Protocols Final Exam Winter /15/2003. Name: Course: CS 349/449 Internet Protocols Final Exam Winter 2003 12/15/2003 Name: Course: Instructions: 1. You have 2 hours to finish 2. Question 9 is only for 449 students 3. Closed books, closed notes. Write all

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Introduction Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Computer Networking A background of important areas

More information

EE6301 DIGITAL LOGIC CIRCUITS UNIT IV ASYNCHRONOUS SEQUENTIAL CIRCUITSAND PROGRAMMABLE LOGIC DEVICES PART A

EE6301 DIGITAL LOGIC CIRCUITS UNIT IV ASYNCHRONOUS SEQUENTIAL CIRCUITSAND PROGRAMMABLE LOGIC DEVICES PART A EE6301 DIGITAL LOGIC CIRCUITS UNIT IV ASYNCHRONOUS SEQUENTIAL CIRCUITSAND PROGRAMMABLE LOGIC DEVICES PART A 1. What is deadlock condition? [N/D 14] A condition resulting when one task is waiting to access

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Introduction to Networking Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Distributed File Systems Operating Systems In Depth XXVII 2 Copyright 2017 Thomas W.

More information

the NXT-G programming environment

the NXT-G programming environment 2 the NXT-G programming environment This chapter takes a close look at the NXT-G programming environment and presents a few simple programs. The NXT-G programming environment is fairly complex, with lots

More information

Journal of Chemical and Pharmaceutical Research, 2014, 6(6): Research Article

Journal of Chemical and Pharmaceutical Research, 2014, 6(6): Research Article Available online www.jocpr.com Journal of Chemical and Pharmaceutical Research, 204, 6(6):2298-2302 Research Article ISSN : 0975-7384 CODEN(USA) : JCPRC5 TCP-like congestion control algorithm for stream

More information

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine Computer Science Department 1 / 33 1 COS 140: Foundations

More information

Error-Correcting Codes

Error-Correcting Codes Error-Correcting Codes Michael Mo 10770518 6 February 2016 Abstract An introduction to error-correcting codes will be given by discussing a class of error-correcting codes, called linear block codes. The

More information

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16 Guide To TCP/IP, Second Edition Chapter 5 Transport Layer TCP/IP Protocols Objectives Understand the key features and functions of the User Datagram Protocol (UDP) Explain the mechanisms that drive segmentation,

More information

UNIVERSITY OF OSLO. Faculty of mathematics and natural sciences. INF3190/INF4190 Data Communications. All printed and written material, calculator

UNIVERSITY OF OSLO. Faculty of mathematics and natural sciences. INF3190/INF4190 Data Communications. All printed and written material, calculator UNIVERSITY OF OSLO Faculty of mathematics and natural sciences Examination in Day of examination: 2nd June, 2004 Examination hours: 9.00 12.00 This problem set consists of 6 pages. Appendices: Permitted

More information

In this lecture we cover a number of networking issues pertinent to the support of distributed computing. Much of the material is covered in more

In this lecture we cover a number of networking issues pertinent to the support of distributed computing. Much of the material is covered in more In this lecture we cover a number of networking issues pertinent to the support of distributed computing. Much of the material is covered in more detail in CS 168, and many slides are taken from there.

More information

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine School of Computing and Information S 1 / 33 COS 140:

More information

Lecture 4: CRC & Reliable Transmission. Lecture 4 Overview. Checksum review. CRC toward a better EDC. Reliable Transmission

Lecture 4: CRC & Reliable Transmission. Lecture 4 Overview. Checksum review. CRC toward a better EDC. Reliable Transmission 1 Lecture 4: CRC & Reliable Transmission CSE 123: Computer Networks Chris Kanich Quiz 1: Tuesday July 5th Lecture 4: CRC & Reliable Transmission Lecture 4 Overview CRC toward a better EDC Reliable Transmission

More information

Introduction to Open System Interconnection Reference Model

Introduction to Open System Interconnection Reference Model Chapter 5 Introduction to OSI Reference Model 1 Chapter 5 Introduction to Open System Interconnection Reference Model Introduction The Open Systems Interconnection (OSI) model is a reference tool for understanding

More information

Internetworking/Internetteknik, Examination 2G1305 Date: August 18 th 2004 at 9:00 13:00 SOLUTIONS

Internetworking/Internetteknik, Examination 2G1305 Date: August 18 th 2004 at 9:00 13:00 SOLUTIONS Internetworking/Internetteknik, Examination 2G1305 Date: August 18 th 2004 at 9:00 13:00 SOLUTIONS 1. General (5p) a) The so-called hourglass model (sometimes referred to as a wine-glass ) has been used

More information

Introduction to PascGalois JE (Java Edition)

Introduction to PascGalois JE (Java Edition) Introduction to PascGalois JE (Java Edition) So what is PascGalois JE? The PascGalois project was started in the late 1990 s as a new and innovative way to visualize concepts in an introductory abstract

More information

Introduction to Data Communications & Networking

Introduction to Data Communications & Networking Introduction to Data Communications & Networking Data Link Layer (Set 5) Chapter 10 and Chapter 11 Dr. Ali Maqousi, Dr. Tatiana Balikhina amaqousi@uop.edu.jo, tbalikhina@uop.edu.jo Department of Computer

More information

TCP: Flow and Error Control

TCP: Flow and Error Control 1 TCP: Flow and Error Control Required reading: Kurose 3.5.3, 3.5.4, 3.5.5 CSE 4213, Fall 2006 Instructor: N. Vlajic TCP Stream Delivery 2 TCP Stream Delivery unlike UDP, TCP is a stream-oriented protocol

More information

Congestion Control in Communication Networks

Congestion Control in Communication Networks Congestion Control in Communication Networks Introduction Congestion occurs when number of packets transmitted approaches network capacity Objective of congestion control: keep number of packets below

More information

UNINFORMED SEARCH. Announcements Reading Section 3.4, especially 3.4.1, 3.4.2, 3.4.3, 3.4.5

UNINFORMED SEARCH. Announcements Reading Section 3.4, especially 3.4.1, 3.4.2, 3.4.3, 3.4.5 UNINFORMED SEARCH Announcements Reading Section 3.4, especially 3.4.1, 3.4.2, 3.4.3, 3.4.5 Robbie has no idea where room X is, and may have little choice but to try going down this corridor and that. On

More information

A Data Centered Approach for Cache Partitioning in Embedded Real- Time Database System

A Data Centered Approach for Cache Partitioning in Embedded Real- Time Database System A Data Centered Approach for Cache Partitioning in Embedded Real- Time Database System HU WEI CHEN TIANZHOU SHI QINGSONG JIANG NING College of Computer Science Zhejiang University College of Computer Science

More information

Designing and debugging real-time distributed systems

Designing and debugging real-time distributed systems Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools

More information

Some Extra Information on Graph Search

Some Extra Information on Graph Search Some Extra Information on Graph Search David Kempe December 5, 203 We have given basic definitions of graphs earlier in class, and talked about how to implement them. We had also already mentioned paths,

More information

Hardware Description and Verification Lava Exam

Hardware Description and Verification Lava Exam Hardware Description and Verification Lava Exam Mary Sheeran Revised by Thomas Hallgren hallgren@chalmers.se May 16, 2010 Introduction The purpose of this take-home exam is to give you further practice

More information

Introduction to and calibration of a conceptual LUTI model based on neural networks

Introduction to and calibration of a conceptual LUTI model based on neural networks Urban Transport 591 Introduction to and calibration of a conceptual LUTI model based on neural networks F. Tillema & M. F. A. M. van Maarseveen Centre for transport studies, Civil Engineering, University

More information

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks COMP/ELEC 429/556 Introduction to Computer Networks Weighted Fair Queuing Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu

More information

CS244a: An Introduction to Computer Networks

CS244a: An Introduction to Computer Networks Do not write in this box MCQ 13: /10 14: /10 15: /0 16: /0 17: /10 18: /10 19: /0 0: /10 Total: Name: Student ID #: Campus/SITN-Local/SITN-Remote? CS44a Winter 004 Professor McKeown CS44a: An Introduction

More information

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri Department of Computer and IT Engineering University of Kurdistan Transport Layer By: Dr. Alireza Abdollahpouri TCP/IP protocol suite 2 Transport Layer The transport layer is responsible for process-to-process

More information

Chapter 3. The Data Link Layer. Wesam A. Hatamleh

Chapter 3. The Data Link Layer. Wesam A. Hatamleh Chapter 3 The Data Link Layer The Data Link Layer Data Link Layer Design Issues Error Detection and Correction Elementary Data Link Protocols Sliding Window Protocols Example Data Link Protocols The Data

More information

3.5.6 TCP Connection Management

3.5.6 TCP Connection Management 02-068 C03 pp4 6/14/02 2:14 PM Page 248 248 CHAPTER 3 Transport Layer of unacknowledged data less than the value of RcvWindow, host A is assured that it is not overflowing the receive buffer at host B.

More information

Chapter 1 - Introduction

Chapter 1 - Introduction Chapter 1-lntroduction Chapter 1 - Introduction The aim of this chapter is to provide a background to topics which are relevant to the subject of this thesis. The motivation for writing a thesis regarding

More information

Best Practices for. Membership Renewals

Best Practices for. Membership Renewals Best Practices for Membership Renewals For many associations, it s easy to get caught up in the marketing efforts associated with attracting new members. But as important as membership growth is, renewal

More information

Chapter 8 Fault Tolerance

Chapter 8 Fault Tolerance DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 8 Fault Tolerance 1 Fault Tolerance Basic Concepts Being fault tolerant is strongly related to

More information

Applications of Finite State Machines

Applications of Finite State Machines 15-453 Formal Languages, Automata, and Computation Applications of Finite State Machines Mihai Budiu Lecture 3 January 24, 2000 Formal languages and automata are probably the biggest success story of theoretical

More information

CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007

CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007 CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007 Question 344 Points 444 Points Score 1 10 10 2 10 10 3 20 20 4 20 10 5 20 20 6 20 10 7-20 Total: 100 100 Instructions: 1. Question

More information