1.ENGR2782 Computer Networks and Operating SystemsAssignment 2Please submit your assignment through FLO by midday Friday 2nd November, Week 13.Assignment OverviewThe result of writing user programs on modern operating systems should allow program designers to solvecomplex problems with a number of simple techniques.This assignment is focused around using network sockets to pass data from client to/from server userprocess. As this is a common problem to be solved, there are several useful concepts to demonstrate, eachto be delivered as a separate pair of programs as we do with laboratory checkpoints. Each of these will bein the tasks described later in this document.Examples of the concepts presented here will allow you to start building such application services as;threaded web services, multi-tenant network service delivery, networked database services, parallelprocessing, message queuing services, along with many others.Requirements• Demonstrate an understanding of Computer Network concepts; IP addresses, sockets, simplex vs duplexconnections, network protocols• Demonstrate you are able to develop programs in the UNIX environment in C• Demonstrate you are able to articulate user program design choices in terms of; security, efficiency,performance, or other relevant requirementsTopic outcomes achieved• The aim of the assignment is to provide you with and opportunity to apply your new knowledge ofoperating system concepts• Demonstrate a working knowledge of Computer Network concepts• Demonstrate you can analyse the relevant requirements and present appropriate user program choices• Learn how to apply programming, data structure and algorithm concepts2.Document version 1.13.CRICOS No. 00114A1.Inter-Process CommunicationTask 1 – From the two provided files on FLO; server1.c and client1.c (Marks 30)• Find a coding standard or style guide for C, provide the link and format the code according to thestandard (5)• Replace command line argument parsing with getopt() and define a usage() error function inserver1.c at line 35(A) (5)• Replace the “Q)…?” through out the code with an appropriate values, functions or variables.(20)• The code is similar to the UDP client/server from the workshop in week 10, this client/server pairare using TCP/IP and listen on any IP address on any network interface on the host.Task 2 – From your working TCP/IP client/server create two programs from Task 1 create; client2.c andserver2.c (Marks 40)• Create a simple protocol to inspired by HTTPor similar to request files from the client to the server.• Your server program should;• Listen to a high port (above 1024), accept requests• The client should be able to make a request of a file name, provided by a command lineargument, eg;client2 -g test1.txtclient2 —get test1.txt• The server should respond with with a status code and file size in bytes, followed by thecontents of the file.• The server should then once finished delivering the file close the connection and listen forfurther requests.Task 4 – Reflecting on the requirements and your implementation of tasks 1 and 2, consider in a couple ofparagraphs the reasons for each of the following; (Marks 30)1. What changes would be required in our above programs in Task 1, to use IPv6 instead of IPv4?(10)2. Document the “protocol” you chose to implement, outline its’ messages and its’ rules (10)3. How did you choose to parse the strings form the client request and from the server for statusand file size? (5)4. What techniques would we use to so the server could serve many clients simultaneously? (5)2.Document version 1.13.CRICOS No. 00114A1.ResourcesCheck the man pages for functions;socket()bind()setsockopt()listen()accept()htonl()htons()inet_ntop()Beej’s Guide to Network Programming – Using Internet Sockets;• Online HTML – https://beej.us/guide/bgnet/html/single/bgnet.html• PDF – https://beej.us/guide/bgnet/pdf/bgnet_A4_2.pdfHTTP standard;• https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol• RFC https://tools.ietf.org/html/rfc2616Further information may be posted to the discussion forum as appropriate.Academic references• Use academic referencing in either Harvard or IEEE formats• Your bibliography should be in listed as an appendixGrading and submission• The assignment is worth 10% of your total semester grade• A maximum of 100 marks are available for this assignment• Your work needs to be submitted to the hand in box on FLO• You may upload a ZIP file of your source code, along with a PDF with your responses to relevant tasks andappendices• Please check the due date and time on the assignment hand in box2.Document version 1.13.CRICOS No. 00114A
- Assignment status: Already Solved By Our Experts
- (USA, AUS, UK & CA PhD. Writers)
- CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS
