Find Jobs
Hire Freelancers

Data link layer protocol

$30-250 CAD

Mbyllur
Postuar over 3 years ago

$30-250 CAD

Paguhet në dorëzim
Back ground information: SWAP: A simple data link protocol In Project Part 3, you will design and implement a reliable block transfer protocol, called Stop-and-Wait ARQ Protocol (SWAP), which uses another protocol called Simple Datalink Protocol (SDP). As SDP is a non-reliable block transfer protocol, you will also implement an application, called File Transfer Application (FTA), to send a file to another computer using SWAP, as shown below: Applications SWAP SDP SDP supports the following Application Programming Interfaces (APIs), and SDP is already completely implemented in the file sdp.c posted in the Project section of your course. These APIs are used by SWAP. int sdp_send (int sd, char *buf, int length): It writes data of length, which is stored in buf, to the session sd. sd is the value returned from swap_open() or swap_wait(). The maximum size that it can send is 256 bytes. It returns the number of bytes written to the session sd if there is no error, otherwise -1. int sdp_receive (int sd, char *buf): It reads data and stores it in buf, from the session sd, which is returned from swap_open() or swap_wait(). The maximum size that it can receive is 256 bytes. And it returns the number of bytes read from the session sd if there is no error, -2 if the session is disconnected, and -1 for other general errors. int sdp_receive_with_timer (int sd, char *buf, unsigned int expiration): It reads data and stores it in buf, from the session sd, which is returned from swap_open() or swap_wait(). expiration is used to set a timer and the unit is a millisecond. The maximum size that it can receive is 256 bytes. It returns the number of bytes read from the session sd if there is no error -3 if the timer expires, -2 if the session is disconnected, and -1 for other general errors. SWAP supports the following APIs, and SWAP is implemented in two files swap_client.c and swap_server.c posted in the Project section of your course. These APIs are used by applications. int swap_wait (unsigned short server_port): It is used by a SWAP server to wait for a reliable session connection request from a SWAP client. The port number server_port is in the network byte order. It returns an identifier, called session descriptor, used for data exchange if there is no error, otherwise -1. int swap_open (unsigned int destination_address, unsigned short server_port): It is used by a SWAP client to open a reliable session to a SWAP server of the destination IP address destination_address in the network byte order with the port number. Instructions: SWAP will use the Stop-and-Wait ARQ protocol to support reliability. This protocol and its implementation (described below) are explained in Project Part 3: Background Information. When you implement SWAP, you only need to design and implement SWAP in swap_read() and swap_write(), using the Simple Data Link Protocol (SDP) and Application Program Interface (API). All the other functions in SWAP have been already coded in the source files swap_client.c and swap_server.c. SDP is also already completely implemented in sdp.c. In swap_client.c, there are three functions with some global variables: • int swap_open(unsigned int addr, unsigned short port); • int swap_write(int sd, char *buf, int length); // you need to design and implement • void swap_close(int sd); In swap_server.c, there are three functions with some global variables: • int swap_wait(unsigned short port); • int swap_read(int sd, char *buf); // you need to design and implement • void swap_close(int sd); You may use the global variable S for the control variable on the SWAP client in swap_client.c, and R for the control variable on the SWAP server in swap_server.c. For error checking, you need to use 1 byte checksum algorithm. Do not forget that you need to use the error checking algorithm for DATA frames as well as ACK frames. If there is no error in your swap_client.c and swap_server.c, then test_server will print the message sent from test_client.
ID e Projektit: 26832286

Rreth projektit

3 propozime
Projekt në distancë
Aktive 4 yrs ago

Po kërkoni të fitoni para?

Përfitimet e ofertës për Freelancer

Vendosni buxhetin dhe afatin tuaj
Paguhuni për punën tuaj
Përshkruani propozimin tuaj
Është falas të regjistrohesh dhe të bësh oferta për punë
3 profesionistët e pavarur ofrojnë mesatarisht $187 CAD oferta për këtë punë
Avatari i Përdoruesit
I am very proficient in c and c++. I have 18 years c++ developing experience now, and have worked for more than 10 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environment. I made many great projects using c++, for example, I made the tools which could convert java codes into c++ scripts, of course garbage collection included, this was very similar to a compiler, and was very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
$150 CAD në 3 ditë
4,9 (132 përshtypje)
6,9
6,9
Avatari i Përdoruesit
Dear Sir, I am a PHD student in Computer Networks. I have checked the details of your work and know the details of ARQ, Stop n Wait and other rdt (data transfer protocols) for reliable and unreliable transfers. I am available for the job and excited to work on it. Regards Talha
$250 CAD në 7 ditë
4,9 (36 përshtypje)
5,8
5,8
Avatari i Përdoruesit
Hi, I have a total of 4+ years of experience in the field of C/C++/Python programming on Linux platform. I can also create embedded systems project which are based on 32-bit micro-controllers and are programmed in C language. I have worked on various microcontrollers like 8051, PIC, AVR, STM32, TI, Renesas . I have also gained experience in Database management written in C programming and have hands on with some popular RDBMS like MySQL. . I assure you to produce the code in your given deadline. Rest we can discuss in details over chat or mail. Hope to hear from you soon. Price and working hours are negotiable. Regards
$160 CAD në 10 ditë
0,0 (0 përshtypje)
0,0
0,0

Rreth klientit

Flamuri i CANADA
Edmonton, Canada
0,0
0
Anëtar që nga gush 4, 2020

Verifikimi i klientit

Faleminderit! Ne ju kemi dërguar me email një lidhje për të kërkuar kredinë tuaj falas.
Ndodhi një gabim gjatë dërgimit të email-it tuaj. Ju lutemi provoni përsëri.
Përdorues të regjistruar Punë të postuara
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Po ngarkohet shikimi paraprak
Leja u dha për Geolocation.
Seanca e hyrjes ka skaduar dhe ke dalë. Hyr sërish.