ELEC/TELE/PHTN Networked Communications Design Topic. Networked Communications Elective Topic, S Context and Objectives

Similar documents
ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC 4123: Design Proficiency Session 1, Week 9: Interactive Lecture on Topic 3 + Intro to Elective Design Topics Prof.

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016

The Norwegian text is authoritative, this translation is provided for your convenience.

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Chi-X Japan CHIXOE Interface Specification

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Socket Programming Assignment 6: Video Streaming with RTSP and RTP

The Chubby Lock Service for Loosely-coupled Distributed systems

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1

COMS3200/7201 Computer Networks 1 (Version 1.0)

Japannext PTS OUCH Trading Specification for Equities

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

ICS 351: Networking Protocols

MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3 CONTENTS

Midterm Review. EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks)

[MC-SMP]: Session Multiplex Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

The Swiss Army Knife netcat

MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3 CONTENTS

Choice 1: audio, a simple audio client server system

ArcaTrade Specification for Bonds

CompSci 356: Computer Network Architectures. Lecture 8: Spanning Tree Algorithm and Basic Internetworking Ch & 3.2. Xiaowei Yang

X Display Manager Control Protocol

Transport Protocol (IEX-TP)

CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport

JADE TCP/IP Connection and Worker Framework

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

EEC-484/584 Computer Networks

Internet Applications and the Application Layer Material from Kurose and Ross, Chapter 2: The Application Layer

The Transmission Control Protocol (TCP)

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

External Data Representation (XDR)

Session Capabilities in OBEX

Networking: Network layer

Page 1. Goals for Today" What Is A Protocol?" CS162 Operating Systems and Systems Programming Lecture 10. Protocols, Layering and e2e Argument"

CS UDP: User Datagram Protocol, Other Transports, Sockets. congestion worse);

Network Working Group. Intended status: Standards Track. January 15, 2010

UNIT IV -- TRANSPORT LAYER

Configuring Health Monitoring

CS454/654 Midterm Exam Fall 2004

Number Systems Prof. Indranil Sen Gupta Dept. of Computer Science & Engg. Indian Institute of Technology Kharagpur Number Representation

Lecture 3: The Transport Layer: UDP and TCP

Wide Area Network Device Presence Protocol (WAN DPP)

CPSC 441 COMPUTER COMMUNICATIONS MIDTERM EXAM

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers

New York University Computer Science Department Courant Institute of Mathematical Sciences

Kea Messages Manual. Kea Messages Manual

Chapter 3: Transport Layer Part A

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

Internet Engineering Task Force (IETF) B. Claise Cisco Systems, Inc. G. Muenz Technische Universitaet Muenchen April 2010

Interprocess Communication

Performance Contracts in SDN Systems

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

Structured communication (Remote invocation)

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 11, 2018

Transport Protocols & TCP TCP

Lecture 05 Application Layer - I

BLUETOOTH MOVEMENT AND SHOCK LOGGER API DOCUMENTATION. Version 2.0.1

Chapter 6. The Transport Layer. The Transport Service. Services Provided to the Upper Layers. Transport Service Primitives (3) 10/7/2010

Project #4: Implementing NFS

The TCP redirecting plugin PRINTED MANUAL

HP 5120 SI Switch Series

Introduction to Internetworking

A Study on Intrusion Detection Techniques in a TCP/IP Environment

CS 4390 Computer Networks. Transport Services and Protocols

MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1a CONTENTS

Programming Assignment 1

King Fahd University of Petroleum and Minerals College of Computer Sciences and Engineering Department of Computer Engineering

Network Programming. CSE 132 Spring 2016

TCP over Wireless PROF. MICHAEL TSAI 2016/6/3

CSCI-131 Networking: the End-to-End Layer. Rodrigo Fonseca March 12 th, 2013

Computer Networks A Simple Network Analyzer PART A undergraduates and graduates PART B graduate students only

Network sniffing packet capture and analysis

The source code for this lab must be submitted in a file named lab4.py. The source code file must contain a file header formatted as in previous labs.

Transport Protocols. Raj Jain. Washington University in St. Louis

ANSI E Architecture for Control Networks Device Management Protocol Entertainment Services and Technology Association Abstract

µtasker Document µtasker MQTT/MQTTS

CSE 333 Lecture C++ final details, networks

Internet transport-layer protocols. Transport services and protocols. Sending and receiving. Connection-oriented (TCP) Connection-oriented

US Options Complex Multicast TOP Specification

Assignment 1: Plz Tell Me My Password

Exercises for the Lectures on Communication Networks

Chapter 09 Network Protocols

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Configuring Client Posture Policies

Lab 1 - Reliable Data Transport Protocol

Internet Engineering Task Force (IETF)

OSEK/VDX. Communication. Version January 29, 2003

Stream Control Transmission Protocol (SCTP)

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

COSC4377. Useful Linux Tool: screen

Mitsubishi CNC Ethernet Driver PTC Inc. All Rights Reserved.

Chapter 3 Review Questions

Multicast Dissemination Protocol (MDP) Developer's Guide

Omni Flow Computer Master Driver v1.x Omni Flow Computer Master Modicon Compatible Driver 1.x

Prof. Shervin Shirmohammadi SITE, University of Ottawa. Internet Protocol (IP) Lecture 2: Prof. Shervin Shirmohammadi CEG

A Two-level Threshold Recovery Mechanism for SCTP

Transcription:

ELEC/TELE/PHTN 4123 Networked Communications Elective Topic, S1 2017 created by Prof. D. Taubman updated 21 May 2018 Networked Communications Design Topic Context and Objectives The objective of this design project is to design a client (or clients) which can reliably recover the content of a message by snooping individual packets from a server. There are many important constraints on the snooping process, and it is important to understand that up to three snoopers with different IP addresses (different computers here) can be used together to recover the message. The arrangement is sketched in Figure 1, but note that there are many details not shown on the figure. One item not shown is an HTTP server to which one of your computers should connect, in order to send the deciphered message once you have it. You will need to implement an HTTP client, using TCP as the underlying transport, to post your message and receive a success or failure notification. Once successful, the message server selects a new message automatically, which you should again proceed to try to recover. In this way, your designed solution is expected to recover messages sequentially, earning points for each message recovered, until you have either recovered all messages or a timer expires. Your main objective is to recover all messages before the timer expires, and to do so with a maximum score, where the score is reduced if you receive failure codes in response to your HTTP posts. A secondary objective is to recover all the messages as fast as possible i.e., well before the timer expires, if possible. Figure 1: Snoop-me system overview

Details of the expiry time T, message rate R and typical number of total message characters C will be provided on the course web-site by Monday of Week 13 at the latest. Detailed Description of the Snoop-Me System 1. The server runs in a loop, repeating a current message over and over again until your system has successfully recovered it. a. Notionally, the server is sending the message repeatedly to a client somewhere else, and you are snooping the communication, but the existence of this other client is not important to you. b. The message consists of a sequence of ASCII characters in the range 0x01 to 0x7F, including special characters. The special character ctrl-d (i.e., 0x04) marks the end of the message (EOM) and will not occur elsewhere. c. The message is partitioned into packets of variable length, with the shortest packets containing as little as one character and the longest packet having up to 20 characters. The packetization of the message does not change over its repetitions. The EOM character (ctrl-d) always appears in its own packet, of length 1. Apart from this, you can assume that packet lengths are random and uniformly distributed over the range 1 to 20. d. Each message packet has an associated 8-byte big-endian 64-bit integer identifier that increments sequentially, with natural wrap-around. The identifier does not repeat with the message, and its initial value is essentially random, at least as far as you are concerned. e. The message characters are transmitted at a constant rate of R characters per second, which means that message packets are transmitted at a non-constant rate, since they have variable length. The data rate does not include any allowance for the packet identifier. 2. The server provides a backdoor with three (3) snooping channels. a. Each snooping channel has an associated queue, whose length L is initially 2, meaning that it can hold up to two snooping requests. b. Snooping requests are sent to a designated port on the server as UDP datagrams. The port assigned to your team will be given out in the first lab in Week 11. c. The snooping request datagram shall be 4 bytes long, these 4 bytes representing an unsigned big-endian 32-bit integer S, which is chosen by your design. d. Before sending each packet, the server checks each snooping queue for a request. If one is found, its S value is decremented by 1. If this results in the S value becoming 0, the request is removed from the queue and a copy of the packet is sent to the snooper as a UDP datagram, whose contents commence with the 8-byte big-endian packet identifier and are followed by the packet s message characters. Be very careful not to send a snooping request with S=0 here, since S will need to be decremented 2 32 times before it this produces 0. To be completely clear, the server considers snooping requests immediately before sending the first character of a message packet. Thus, if P " and P # are two consecutive message packets, with L " and L # characters respectively, snoop requests for these packets are considered at times T " and T # which are separated by T # T " = L " /R.

e. The three snooping channels are independent, but each channel gets permanently assigned to a snooper s address (IP address and port number) when it is first seen. Thereafter, all snooping requests from the same snooping address are processed by the same channel and no other snooping requests are processed by that channel. Up to three snooping addresses (IP address and port number) can be used, each of which will be bound to a separate channel when they are first seen, after which snoops from any other addresses will be discarded. When the server is in the exclusive mode, used for final testing, no IP address may be assigned to multiple snooping channels, so you will need to exploit three separate computers to use the full set of snooping channels. 3. Snooping too often is dangerous. The server keeps track of the time between snooping responses that it has sent not the time between requests it has received -- where time is measured in characters, since characters are transmitted at the constant rate R. If this inter-response time drops below 50 characters, you have been exposed. Each time you are exposed, the relevant snooping channel s queue length is reduced by 1, until it reaches 0. The queue length is auto-incremented by 1, up to a maximum length of 2, every 1000 characters. Thus, being exposed is expected to really slow you down and perhaps interfere with the behaviour of your algorithm. You do not receive any notification that you have been exposed. 4. The main snoop-me server is represented by the executable program 4123-server, which is to be run on the shared Linux VM whose details are supplied to you prior to the frist laboratory in Week 10. Since the VM is shared, each team is assigned a port number to use with the 4123-server program so as not to collide with other teams. This port should be passed as the -port argument rather than using the default value. 5. Once you have recovered the message, you should post a copy to the HTTP server, which is represented by the executable program 4123-http-server and is also run on the shared Linux VM mentioned above. The HTTP server is configured by 4123- server to listen on the port that is one larger than its own listening port. You can also run the 4123-http-server in isolation, in which case it is best to launch it with the port number that is one larger than the port assigned to your team for use with the 4123-server program. a. The HTTP server expects an HTTP POST request not an HTTP GET request with binary (i.e., not encoded) data. The maximum message length accepted by the HTTP server is 65535 bytes and there should be no Transfer-Encoding field in the request. b. You will need to make sure you understand the syntax for a correct HTTP POST request. c. You will receive back either an HTTP 200 series (success) response code or an HTTP 406 response status code (not acceptable). In the former case the server moves on to the next message. In the later case, you need to keep trying but your final score for the message is scaled by 0.9. If you receive two failures for the same message your score for that message is scaled twice by 0.9 (i.e. 0.81) and so forth. d. If you issue an invalid request, you will receive a different HTTP error code and the connection will be closed. e. You are to use the HTTP/1.1 protocol, for which persistent TCP connections are the default. The HTTP server accepts only one TCP connection at a time, so you should plan to use only one computer to talk to the HTTP server. You may close the connection after receiving a response and then re-establish a

Constraints connection. In this case you should follow the standard protocol of declaring your intent to close the connection via request fields, and the server will respond to let you know that it is closing the connection. f. Once the final message is successfully recovered, the HTTP response code will be 205, rather than 200. You can then disconnect, gracefully or otherwise from the HTTP server. Your design should ideally be implemented in C or C++ and must use BSD sockets. In particular, it is expected that your program(s) use the select function to wait for I/O completion, rather than less portable methods such as Event signaling or callback functions that are offered in the Windows sockets model. The BSD model is available on all operating systems of interest. If you wish to use a different programming language than C or C++, you should explain your intent and rationale to the course convener during the laboratory session in order to get final permission. It is perfectly allowable for the three client computers to communicate with one another, using any desired protocol, so long as such communication is implemented using C or C++ or another language authorized by the course convener. You may use your own laptops, if desired, rather than the computers in the lab. Design Outcome Marks The primary requirement for this project is recovery of the messages. Your message recovery score is given by M = 20 N 3 45" 0.9 1 2 where N is the total number of messages that the server had to send, whether you recovered them all or not, and F 4 is the number of HTTP failures reported for message n. The score M has a maximum value of 20. The secondary objective for the project is to recover messages as quickly as possible ideally well before the timeout T. This message recovery speed score is a linear function of the degree to which your design completes the recovery of all messages prior to T, reach a maximum of 10 marks if you recover all messages in the time Tmin, which will be specified on the course web-site, no later than Monday of Week 13. If you do not recover all messages within the timeout period T, your message recovery speed score must be 0, which clearly emphasizes the significance of the primary objective. Overall, your design outcome mark is worth 10% of your assessment for the course. The mark will be awarded out of 50 as follows: Message recovery score M: ( /20) Message recovery speed (full marks for recovery in Tmin seconds): ( /15) Design principles, elegance, etc.: ( /12) Software structure and clarity of code (must recover at least 1 message): ( /8)

Note: The values R, C, T and Tmin will be provided by Monday of Week 13. In the event that your design recovers all messages in less than Tmin seconds, bonus marks may possibly be awarded to compensate for less than perfect performance in the last two areas listed above. Understanding Marks You will be assessed individually in Week 13 regarding your understanding of your team s design, including your contribution to the design. This understanding mark is worth 5% of the overall course assessment and is awarded out of 25, as follows: Understanding of system design, trade-offs and choices: ( /10) Understanding of individual sub-systems designed: ( /10) Understanding of how things could be further improved: ( /5) Note: the first two items mentioned above must be supported by the draft report provided in the laboratory in Week 13. The draft report must contain at least a close approximation to the final algorithm. Lab notebooks and print-outs must provide remaining details by the time of marking.