Find Jobs
Hire Freelancers

Data link layer protocol

$30-250 CAD

종료됨
게시됨 3년 이상 전

$30-250 CAD

제출할때 지불됩니다
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: 26832286

프로젝트 정보

3 제안서
원격근무 프로젝트
활동 중 4년 전

돈을 좀 벌 생각이십니까?

프리랜서 입찰의 이점

예산 및 기간 설정
작업 결과에 대한 급여 수급
제안의 개요를 자세히 쓰세요
무료로 프로젝트에 신청하고 입찰할 수 있습니다
3 이 프로젝트에 프리랜서들의 평균 입찰은 $187 CAD입니다.
사용자 아바타
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 3일에
4.9 (132 건의 리뷰)
6.9
6.9
사용자 아바타
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 7일에
4.9 (36 건의 리뷰)
5.8
5.8
사용자 아바타
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 10일에
0.0 (0 건의 리뷰)
0.0
0.0

고객에 대한 정보

국기 (CANADA)
Edmonton, Canada
0.0
0
8월 4, 2020부터 회원입니다

고객 확인

감사합니다! 무료 크레딧을 신청할 수 있는 링크를 이메일로 보내드렸습니다.
이메일을 보내는 동안 문제가 발생했습니다. 다시 시도해 주세요.
등록 사용자 전체 등록 건수(일자리)
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
미리 보기 화면을 준비 중...
위치 정보 관련 접근권이 허용되었습니다.
고객님의 로그인 세션이 만료되어, 자동으로 로그아웃 처리가 되었습니다. 다시 로그인하여 주십시오.