noticemedan / shitty-tcp Goto Github PK
View Code? Open in Web Editor NEWMini Project 1 for the Mobile and Distributed Systems course at ITU.
License: MIT License
Mini Project 1 for the Mobile and Distributed Systems course at ITU.
License: MIT License
Using only DatagramSocket, write programs A,B which together reliably transmits a string of length less than 255 characters. Program A accepts at startup a destination ip and port and a string, then transmits the string, somehow ensures that the string correctly arrived, says so and terminates. Program B repeatedly receives such strings and prints them.
Your transmission mechanism must guarantee that for each invocation of Program A with string S, Program B prints S exactly once.
Optional: Design the server, so that it can handle multiple concurrent clients.
Submit two java source files ReliableUDPClient.java and ReliableUDPServer.java
The program Your programs must accept as input
The program must output
It is acceptable if your estimate cannot distinguish between losing a single request, losing a single response, or losing both a request and a response.
Use your loss estimator to demonstrate:
Datagram loss on a local connection on a single machine (i.e., no physical net).
Datagram loss on Wifi.
Datagram loss on ethernet.
Datagram loss on the Internet (i.e., transmitting across multiple physical nets).
Indicate for each of these four cases the parameters (a-c above) you used to elicit the loss and the observed lossage (i-ii above).
Explain where and why you expect the loss to be happening.
Submit a single java source Estimator.java and a .txt file briefly summarising your findings.
Write a drop-in replacement for DatagramSocket which randomly either discards, duplicates, reorders or simply sends datagrams. Inherit from DatagramSocket.
When sending the datagrams "Hello" and "Goodbye" the following datagrams could be send.
Discard: "Goodbye"
Duplicate: "Hello", "Hello", "Goodbye"
Reorder: "Goodbye", "Hello"
Send: "Hello", "Goodbye"
Test your implementation with a (modified) UDP-client.
(Hint, useful Java libraries: java.util.Random, java.net.DatagramSocket)
Implement an RFC862 server adhering to the RFC 862 specification. Use port 7007 instead of 7. You need only implement the UDP part ("UDP Based ...โ).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.