COE 518 Operating Systems. Lab 10
|
|
- Lucy Black
- 5 years ago
- Views:
Transcription
1 COE 518 Operating Systems Lab 10 Table of Contents 1. Required Reading 2. Lab Description 3. Lab Objectives 4. Exercises 5. Deliverable 1. Required Reading 2. Lab Description You have already implemented interprocess communication using pipes and message queues. In previous labs, the two communicating processes were located on the same machine. In this lab, you will learn to communicate between processes which can be located on different machines across the network. You will create a TCP/IP client/server structure. The server listens on a port for connections from clients and a client sends a message to the server. The server reads the message from the client and responds accordingly. 3. Lab Objectives Learn how to communicate between processes using socket programming E. Bagheri (2013) K. Clowes (2014)
2 4. Exercises Hacking the password server In the context of this exercise, we build a server which is responsible for keeping a password. This server receives text and responds by checking whether the text is equivalent to the password or not. For security reasons the actual password is not in the code. Instead, server keeps the MD5 hash of the password in the code and verifies the correctness of the password by comparing the MD5 hash of the string sent by the client to the MD5 hash of the password. If they are same, a match has been found. This server will be listening on port 5000 and accepts connections on this socket from clients. When a client connects to the server, it sends a text to the server and the server reads text from the socket. The server responds with one character, which is T when the sent text is the correct password or F if the text is not the password. The goal in this lab is enabling communication between the server and the clients using sockets in the way described above and also developing a client which tries to find the correct password by trying random passwords. 1. Download the code server.c client.c and md5.h The md5.h file includes the function for MD5 hashing and is only used as a utility library during this lab. Each of the placeholders should be replaced with one or more C instructions in order to complete the program. The required library files have been added but you may need to include more libraries if you follow a different approach. The general approach in order to setup a connection between the clients and the server has been shown in the figure below. The server defines a socket and binds it to a port. Binding to a port allows the server to listen for incoming connection requests on that port. The server sleeps until a connection request is made (the server sleeps on the accept command). The client creates a socket and tries to connect to the server using that socket. After that, the client and server can communicate through their own sockets using send and recv functions. After the communication between the server and the client finishes, the connection needs to be closed by closing the sockets. Try to read the incomplete program from the code templates and understand it. In the server code file, handle_connection function gets a connection identifier and handles that incoming connection and verify_password function checks whether the password sent to it as an input is correct by comparing MD5 hash of it with MD5 hash of the actual password. The password is correct if its MD5 hash is equal to the MD5 hash of the actual password. In the client code, try_a_password
3 function creates a connection to the server and tries a random password to see if it is correct. If the password is correct, it prints the password. Assume that we already know that the correct password has three capital letters and the letters are selected from the A to J. The create_random_password function creates a random password satisfying those rules. The connection between client/server 2. Let s start by completing the server code first. Each socket is identified by an integer. Replace placeholder A with the code that declares the integer variable that keeps the socket and creates a socket which the server is going to use to bind to a port and listen to it and communicate with the client. The socket can be created by proper call to the socket function. This socket which is going to bind to a port and accept connections from clients is called master socket. Note that in the initialization of the socket we are using an IP v4 address and the TCP/IP protocol. 3. The socket should be bound to a socket address. The socket address is defined using struct variable of type sockaddr_in. Three properties of this variable should be initialized in order to define the bind address: sin_family, sin_addr.s_addr and sin_port. Replace placeholder B with declaration and initialization of the struct variable keeping the socket address and initialize it considering that we are using IP v4 addresses and it should accept all inbound connection requests on port Replace placeholder C with the proper call to the bind function so that the server could listen to this port. 5. Replace placeholder D with the call to the listen function. This makes the server E. Bagheri (2013) K. Clowes (2014)
4 start listening on the socket. The server should be able to accept 100,000 simultaneous connections. 6. The server waits for a connection from a client; it accepts the connection request sent on the socket address that has been defined for. Accepting a connection request by the server creates a connection. Like sockets, each connection has a unique integer ID. Considering that multiple clients can connect to the server master socket, the server uses connection ids to distinguish between these connections when it sends and receives data to them. In the template code, the variable conn_id stores the connection ID for the current connection. Replace placeholder E with a proper call to the accept function so the server accepts incoming connections and places the connection ID in the conn_id variable. 7. Once the connection is accepted, the server creates a thread running the handle_connection function. This function gets the connection id and handles the input text from the client, by checking whether it is the correct password or not, and replying to the client. Replace F with the required code that checks if accepting the connection was successful and if so creates a thread running handle_connection function sending the connection id as parameter. Make sure that you detach the thread considering that each process can have a limited number of attached thread. 8. Reading from the connection can be done using the recv function. Replace placeholder G with proper call to recv function so it reads from the connection and puts the read characters in recv_buffer and the number of read characters in the n variable. Make sure the receive function has finished correctly by checking its return value. 9. After reading from the connection, it should be ensured that no problem has occurred while reading from the connection. If the reading is successful, it should verify if the read string is the password using the verify_password function. The server should write T or F on the socket using send function according to the result of verify_password functions. Make sure the send function has finished correctly by checking its return value. Replace H with the codes preforming these actions. 10. Close the connection after reading has finished with proper call to the close function in placeholder I. 11. The server is now complete, now we need to complete the client program. We start by completing the try_a_password function, which creates a random password and checks if it is, corrects by sending it to the server. Similar to the server program, a socket is needed in order to create a connection: Replace placeholder J with proper
5 call to the socket function. 12. In order to make a connection using a socket you need to define a socket address. Declare and initialize the socket address for the socket in placeholder K. The difference here is that you should give the address of the specific server address (in the case that the server runs locally, it is ) to the client. In this program, the server address is passed to the program as the program s only argument. The server address is stored in binary form in the sin_addr.s_addr field of the socket address. Therefore you should use inet_pton function in order to convert the server address from string to binary form. The sin_family and sin_port are the same as the one we used for the server because the client also uses port 5000 to connect to the server and uses the IP V4 standard. 13. Use the socket you made to connect to the server. Replace L with proper call to connect function to connect the server process. Check the return value of the connect function in order to make sure the connection has been successful. 14. After connecting to the server, the client writes the random password into the socket using send function. Replace placeholder M with proper call to the send function. Make sure the send function has finished correctly by checking its return value. 15. After the password has been sent to the server, the program should wait for the server s response. It should receive the response and check if the server response is T. If the response is T, the program should print what the password is. Replace placeholder N with code performing these actions. 16. Replace placeholder O by calling the close function in order to close the socket after writing has been completed. 17. The main program should call the try_a_password function iteratively until it finds out what the password is. Replace P with a loop that performs this action. Make sure that the program stops after it found the password. Once the client and server programs are complete, run the server program first and then run the client program. The server program does not show anything but the client program prints the random passwords which it tried but was not correct until it finds the correct password. Include in your report what is the correct password. 5. Deliverables E. Bagheri (2013) K. Clowes (2014)
6 You should complete the exercises described above. Then, you will prepare and submit the results in one single zip file containing the following two items: 2. A zip archive with all of your source code files. This will be a zip file, named as follows: YourName_[Lab#]_Code.zip.
Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement
Distributed Systems: Sockets Programming Alberto Bosio, Associate Professor UM Microelectronic Departement bosio@lirmm.fr Context Computer Network hosts, routers, communication channels Hosts run applications
More informationCS321: Computer Networks Socket Programming
CS321: Computer Networks Socket Programming Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Socket Programming It shows how the network application programs
More informationOverview. Setup and Preparation. Exercise 0: Four-way handshake
Overview In this Lab assignment you will develop a simple client program written in Python(use a socket library) to interact with a CSE 3300 Server running on a remote machine. The server, running on the
More informationNetwork Programming in Python. based on Chun, chapter 2; plus material on classes
Network Programming in Python based on Chun, chapter 2; plus material on classes What is Network Programming? Writing programs that communicate with other programs Communicating programs typically on different
More informationClient Server Computing
Client Server Computing Although the Internet provides a basic communication service, the protocol software cannot initiate contact with, or accept contact from, a remote computer. Instead, two application
More informationCSc 450/550 Computer Networks Network Architectures & Client-Server Model
CSc 450/550 Computer Networks Network Architectures & Client-Server Model Jianping Pan Summer 2007 5/17/07 CSc 450/550 1 Last lectures So far, nuts and bolts views of the Internet Internet evolution and
More informationLab 0. Yvan Petillot. Networks - Lab 0 1
Lab 0 Yvan Petillot Networks - Lab 0 1 What You Will Do In This Lab. The purpose of this lab is to help you become familiar with the UNIX/LINUX on the lab network. This means being able to do editing,
More informationProgramming with TCP/IP. Ram Dantu
1 Programming with TCP/IP Ram Dantu 2 Client Server Computing Although the Internet provides a basic communication service, the protocol software cannot initiate contact with, or accept contact from, a
More informationECE 435 Network Engineering Lecture 2
ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 31 August 2017 Announcements Homework 1 will be posted. Will be on website, will announce
More informationCS321: Computer Networks Introduction to Application Layer
CS321: Computer Networks Introduction to Application Layer Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Basic Application layer provides services to the
More informationECE 435 Network Engineering Lecture 2
ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 6 September 2018 Announcements Homework 1 will be posted. Will be on website, will announce
More informationCS 43: Computer Networks. 05: Socket Programming September 12-14, 2018
CS 43: Computer Networks 05: Socket Programming September 12-14, 2018 Reading Quiz Lecture 5/6 - Slide 2 Socket Programming Adapted from: Donahoo, Michael J., and Kenneth L. Calvert. TCP/IP sockets in
More informationIntroduction to computer networking
Introduction to computer networking First part of the assignment Academic year 2017-2018 Abstract In this assignment, students will have to implement a client-server application using Java Sockets. The
More informationA Client-Server Exchange
Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends
More informationCSCI 4061: Sockets and Network Programming
1 CSCI 4061: Sockets and Network Programming Chris Kauffman Last Updated: Tue Dec 5 13:30:56 CST 2017 Networks are Aging Source: www.ipv6now.hk Source: XKCD #865 2 3 Aging Networks Makes Network Programming
More informationProgramming Assignment 0
CMSC 17 Computer Networks Fall 017 Programming Assignment 0 Assigned: August 9 Due: September 7, 11:59:59 PM. 1 Description In this assignment, you will write both a TCP client and server. The client has
More informationProgram Assignment 2
Program Assignment 2 CMSC 417 Fall 2014 September 16, 2014 1 Deadline September 30, 2014. 2 Objective In this assignment you will write the server program which will communicate using sockets with the
More informationCOE428 Lab 4: State Machine
COE428 Lab 4: State Machine 1. IMPORTANT: Two week lab Note that you have two weeks to complete this lab. This lab must be submitted at least 48 hours before the beginning of your next lab period. 2. Prelab
More informationComputer Network Lab, SS Fachgebiet Technische Informatik, Joachim Zumbrägel. Overview. Sockets. Sockets in C.
Computer Network Lab 2016 Fachgebiet Technische Informatik, Joachim Zumbrägel Overview Sockets Sockets in C Sockets in Delphi 1 Inter process communication There are two possibilities when two processes
More informationCS 499 Lab 3: Disassembly of slammer.bin I. PURPOSE
CS 499 Lab 3: Disassembly of slammer.bin I. PURPOSE The purpose of this exercise is to learn Intel assembly language by disassembling a small piece of code and extensively commenting the resulting instructions.
More informationNetwork Programming Appendix Network Programming Labs
Network Programming Appendix Network Programming Labs Tornado Training Workshop Copyright E-41L Note to Windows Teams The networking programming labs ask you to compile and run some programs on the UNIX
More informationInternet applications
CSc 450/550 Computer Networks Worldwide Web Jianping Pan Summer 2006 5/18/06 CSc 450/550 1 Traditionally Internet applications remote login: e.g., telnet file transfer: e.g., FTP electronic mail: e.g.,
More informationCHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF MCA QUESTION BANK UNIT 1
CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF MCA QUESTION BANK SUBJECT: NETWORK PROGRAMMING/MC9241 YEAR/ SEM: II /I V 1 CCET UNIT 1 1. What are the steps involved in obtaining a shared
More informationApplication Architecture
CS 4/55231 Internet Engineering Kent State University Dept. of Science LECT-2 Application Architecture 1 2 Class Mechanics Topics to Cover Send email and get listed in class email list. Use "IN2004S" in
More informationLecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation
Lecture 2 Outline Wireshark Project 1 posted, due in a week Lab from a different textbook Work through the lab and answer questions at the end Chapter 1 - Foundation 1.1 Applications 1.2 Requirements 1.3
More informationVALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur QUESTION BANK
SRM Nagar, Kattankulathur 603 203 IV SEMESTER MC7404 NETWORK PROGRAMMING Regulation 2013 Academic Year 2017 18 Prepared by Mr. M.Asan Nainar, Assistant Professor/MCA UNIT I - INTRODUCTION Overview of UNIX
More informationCLIENT-SIDE PROGRAMMING
CLIENT-SIDE PROGRAMMING George Porter Apr 11, 2018 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative Commons license These slides
More informationChristian Tschudin (basierend auf einem Foliensatz von C. Jelger und T. Meyer) Departement Mathematik und Informatik, Universität Basel
Internettechnologien (CS262) Socket Programming in C 4. März 2015 Christian Tschudin (basierend auf einem Foliensatz von C. Jelger und T. Meyer) Departement Mathematik und Informatik, Universität Basel
More informationSession NM056. Programming TCP/IP with Sockets. Geoff Bryant Process software
Session NM056 Programming TCP/IP with Sockets Geoff Bryant Process software Course Roadmap Slide 57 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server
More informationNetwork Programming in C. Networked Systems 3 Laboratory Sessions and Problem Sets
Network Programming in C Networked Systems 3 Laboratory Sessions and Problem Sets Lab Timetable, Aims, and Objectives Teaching Week Activity 14 Introduction 15 Warm-up exercise 16 17 Web client 18 19 20
More informationCSC209H Lecture 9. Dan Zingaro. March 11, 2015
CSC209H Lecture 9 Dan Zingaro March 11, 2015 Socket Programming (Kerrisk Ch 56, 57, 59) Pipes and signals are only useful for processes communicating on the same machine Sockets are a general interprocess
More informationDuring the first 2 weeks of class, all students in the course will take an in-lab programming exam. This is the Exam in Programming Proficiency.
Description of CPSC 301: This is a 2-unit credit/no credit course. It is a course taught entirely in lab, and has two required 2-hour 50-minute lab sessions per week. It will review, reinforce, and expand
More informationUNIT 1 TCP/IP PROGRAMMING CONCEPTS
UNIT 1 TCP/IP PROGRAMMING CONCEPTS TCP/IP Programming Concepts Structure Page Nos. 1.0 Introduction 5 1.1 Objectives 5 1.2 Client Server Communication 6 1.2.1 Designing Client/Server Programs 7 1.2.2 Socket
More informationHY-457. Assignment 2. Using LD_PRELOAD. Due: 21/04/2017
HY-457 Assignment 2 Due: 21/04/2017 In this assignment you are going to develop an access control logging system in C. The system will keep track of all file accesses and modifications. More specifically,
More informationDepartment of Computer Science
Department of Computer Science Notes on Interprocess Communication in Unix Jean Dollimore,Oct.1990, last revised Feb. 1996 These notes explain how you can write "distributed programs" in C or C++ running
More informationSockets. Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University Embedded Software Lab.
1 Sockets Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University http://nyx.skku.ac.kr Internet Connections (1) 2 Connection Clients and servers communicate by sending streams of bytes over
More informationSystem Programming. Sockets
Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Introducing 2 3 Internet
More informationCSE 333 SECTION 6. Networking and sockets
CSE 333 SECTION 6 Networking and sockets Overview Network Sockets IP addresses and IP address structures in C/C++ DNS Resolving DNS names Demos Section exercise Sockets Network sockets are network interfaces
More informationCSE 333 Lecture server sockets
CSE 333 Lecture 18 -- server sockets Hal Perkins Department of Computer Science & Engineering University of Washington Administrivia HW4 posted now, due last Thursday of the quarter Exercise covering client-side
More informationIntroduction to Socket Programming
UNIT II - ELEMENTARY TCP SOCKETS Introduction to Socket Programming Introduction to Sockets Socket address Structures Byte ordering functions address conversion functions Elementary TCP Sockets socket,
More informationSocket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory
Socket Programming Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2019 Networking Laboratory Contents Goals Client-Server mechanism Introduction to socket Programming with socket on
More informationREAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-9: WCE Serial Communication, Network, device-to
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-9: WCE Serial Communication, Network, device-to to-device socket and Communication Functions 1 1. Windows CE Serial
More informationProgramming Assignment 1 (30 pts) A Client Dynamically Accessing Servers Using the Net Oracle
Programming Assignment 1 (30 pts) A Client Dynamically Accessing Servers Using the Net Oracle Due: 11:59 p.m. Monday, November 8, 2004 This assignment introduces client-server programming using the TCP/IP
More informationInternetworking With TCP/IP
Internetworking With TCP/IP Vol II: Design, Implementation, and Internais DOUGLAS E. COMER and DAVID L. STEVENS Department of Computer Sciences Purdue University West Lafayette, IN 47907 PRENTICE HALL
More informationsottotitolo Socket Programming Milano, XX mese 20XX A.A. 2016/17 Federico Reghenzani
Titolo presentazione Piattaforme Software per la Rete sottotitolo Socket Programming Milano, XX mese 20XX A.A. 2016/17 Outline 1) Introduction to Sockets 2) UDP communication 3) TCP communication 4) RAW
More informationELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition
ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick
More informationNetwork Programming in C: The Berkeley Sockets API. Networked Systems 3 Laboratory Sessions
Network Programming in C: The Berkeley Sockets API Networked Systems 3 Laboratory Sessions The Berkeley Sockets API Widely used low-level C networking API First introduced in 4.3BSD Unix Now available
More informationAn RPC based Distributed Simulator
Due date Wednesday, Apr 4, 11:59pm An RPC based Distributed Simulator CS 5565 Spring 2012, Project 3 This project is worth 75 points. You may form teams of up to two students for this project. You are
More informationNew York University Computer Science Department Courant Institute of Mathematical Sciences
New York University Computer Science Department Courant Institute of Mathematical Sciences Course Title: Data Communications & Networks Course Number: g22.2662-001 Instructor: Jean-Claude Franchitti Session:
More informationConfigure the IM and Presence Service
IM and Presence Calendar Integration Task Flow, page 1 IM and Presence Calendar Integration Task Flow Complete these tasks on the IM and Presence Service to set up calendar integration with Microsoft Outlook
More informationPorts under 1024 are often considered special, and usually require special OS privileges to use.
1 2 Turns out that besides an IP address (used by the IP layer), there is another address that is used by TCP (stream sockets) and, coincidentally, by UDP (datagram sockets). It is the port number. It's
More informationUNIX Network Programming. Overview of Socket API Network Programming Basics
UNIX Network Programming Overview of Socket API Network Programming Basics 1 Client-Server Model Client Machine A Network Server Machine B Web browser and server FTP client and server Telnet client and
More informationPeer to Peer Instant Messaging
Peer to Peer Instant Messaging Assignment in Computer Networks I, Department of Information Technology, Uppsala University. Overview In this assignment you will implement an instant messaging system that
More informationCS 3516: Computer Networks
Welcome to CS 3516: Prof. Yanhua Li Time: 9:00am 9:50am M, T, R, and F Location: AK219 Fall 2018 A-term 1 Some slides are originally from the course materials of the textbook Computer Networking: A Top
More informationSOCKETS. COMP750 Distributed Systems
SOCKETS COMP750 Distributed Systems Sockets The Socket library is a traditional Application Program Interface (API) to the transport layer. Sockets were originally implemented in Unix systems and have
More informationCSE 124 Discussion Section Sockets Programming 10/10/17
CSE 124 Discussion Section Sockets Programming 10/10/17 Topics What s a socket? Creating a socket Connecting a socket Sending data Receiving data Resolving URLs to IPs Advanced socket options Live code
More informationOverview. Exercise 0: Implementing a Client. Setup and Preparation
Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM
More informationInternetworking With TCP/IP
Internetworking With TCP/IP Vol II: Design, Implementation, and Internals SECOND EDITION DOUGLAS E. COMER and DAVID L. STEVENS Department of Computer Sciences Purdue University West Lafayette, IN 47907
More informationHybrid of client-server and P2P. Pure P2P Architecture. App-layer Protocols. Communicating Processes. Transport Service Requirements
Announcements CS 5565 Network Architecture and Protocols Lecture 5 Godmar Back Problem Set 1 due Feb 17 Project 1 handed out shortly 2 Layer The Layer Let s look at some s (in keeping with top-down) architectures:
More informationCS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool
CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool Due: Monday 17 February. Electronic copy due at 10:30 A.M., Optional paper copy may be
More informationCS 351 Design of Large Programs Java and Socket Communication
CS 351 Design of Large Programs Java and Socket Communication Instructor: Joel Castellanos e-mail: joel@unm.edu 4/6/2017 Transmission Control Protocol The Transmission Control Protocol (TCP) is one of
More informationProgramming Assignment 1
CMSC 417 Computer Networks Fall 2017 Programming Assignment 1 Assigned: September 6 Due: September 14, 11:59:59 PM. 1 Description In this assignment, you will write a UDP client and server to run a simplified
More informationApplication Programming Interfaces
Application Programming Interfaces Stefan D. Bruda Winter 2018 SYSTEM CALLS Machine 1 Machine 2 Application 1 Application 3 Application 4 Application 5 Application 2 API (system functions) API (system
More informationTask 2: TCP Communication
UNIVERSITY OF TARTU, INSTITUTE OF COMPUTER SCIENCE Task 2: TCP Communication Hadachi&Lind October 12, 2017 Must Read: The task 2 should be done individually! You can submit your solution for task using
More informationWhat s an API? Do we need standardization?
Network Interface z The network protocol stack is a part of the OS z Need an API to interface applications to the protocol stack. What s an API? Do we need standardization? z The socket interface is the
More informationsocketservertcl a Tcl extension for using SCM_RIGHTS By Shannon Noe - FlightAware
socketservertcl a Tcl extension for using SCM_RIGHTS By Shannon Noe - FlightAware Presented at the 24th annual Tcl/Tk conference, Houston Texas, October 2017 Abstract: Horizontal scaling is used to distribute
More informationC Structures in Practice
CS 2060 Use of C Structures in Unix/Linux To further illustrate C structures, we will review some uses of struct in system calls. Here is a function from BSD to get the current time (found in sys/time.h):
More informationSocket Programming Assignment 6: Video Streaming with RTSP and RTP
Socket Programming Assignment 6: Video Streaming with RTSP and RTP In this lab you will implement a streaming video server and client that communicate using the Real-Time Streaming Protocol (RTSP) and
More informationSocket Programming. Dr. -Ing. Abdalkarim Awad. Informatik 7 Rechnernetze und Kommunikationssysteme
Socket Programming Dr. -Ing. Abdalkarim Awad Informatik 7 Rechnernetze und Kommunikationssysteme Before we start Can you find the ip address of an interface? Can you find the mac address of an interface?
More informationOral. Total. Dated Sign (2) (5) (3) (2)
R N Oral Total Dated Sign (2) (5) (3) (2) Assignment Group- A_07 Problem Definition Write a program using TCP socket for wired network for following Say Hello to Each other ( For all students) File transfer
More informationUNIT IV- SOCKETS Part A
1. Define sockets - SOCKETS Part A A socket is a construct to provide a communication between computers. It hides the underlying networking concepts and provides us with an interface to communicate between
More informationThe Berkeley Sockets API. Networked Systems Architecture 3 Lecture 4
The Berkeley Sockets API Networked Systems Architecture 3 Lecture 4 The Berkeley Sockets API Widely used low-level C networking API First introduced in 4.3BSD Unix Now available on most platforms: Linux,
More informationTCP Network Programming in C
CPSC 360 Network Programming TCP Network Programming in C Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc360 1 Sockets
More informationNetwork programming(i) Lenuta Alboaie
Network programming(i) Lenuta Alboaie adria@info.uaic.ro 2017 2018 Computer Network http://www.info.uaic.ro/~computernetworks 1 Content Client/server paradigm API for network programming BSD Socket Characteristics
More informationInstruction Guide FORENSICS Practice Rounds March 3-5, 2017
Instruction Guide FORENSICS Practice Rounds March 3-5, 2017 CyberPatriot Online Forensics Challenge 1 Forensics PR Instruction Guide Introduction This document provides instructions on how to run the CyberNEXS
More informationCS 351 Week 15. Course Review
CS 351 Week 15 Course Review Objectives: 1. To review the contents from different weeks. 2. To have a complete understanding of important concepts from different weeks. Concepts: 1. Important Concepts
More informationCSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Sample Exam 2 Questions (document version 1.0)
CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Sample Exam 2 Questions (document version 1.0) Overview Exam 2 will be in class on Thursday, April 13, 2017 from 10:00-11:45AM (please arrive
More informationtransmission media and network topologies client/server architecture layers, protocols, and sockets
Network Programming 1 Computer Networks transmission media and network topologies client/server architecture layers, protocols, and sockets 2 Network Programming a simple client/server interaction the
More informationSt. MARTIN S ENGINEERING COLLEGE Dhulapally,Secunderabad DEPARTMENT OF INFORMATION TECHNOLOGY Academic year
St. MARTIN S ENGINEERING COLLEGE Dhulapally,Secunderabad-000 DEPARTMENT OF INFORMATION TECHNOLOGY Academic year 0-0 QUESTION BANK Course Name : LINUX PROGRAMMING Course Code : A0 Class : III B. Tech I
More informationM/s. Managing distributed workloads. Language Reference Manual. Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567)
1 M/s Managing distributed workloads Language Reference Manual Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567) Table of Contents 1. Introduction 2. Lexical elements 2.1 Comments 2.2
More informationLecture 7. Followup. Review. Communication Interface. Socket Communication. Client-Server Model. Socket Programming January 28, 2005
Followup symbolic link (soft link): pathname, can be across file systems, replacement of file will be active on all symbolic links, consumes at least an inode. hard link: pointers to an inode, only in
More informationSockets. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Sockets Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Internet Connections (1) Connection Clients and servers communicate by sending streams of
More informationCS 101, Spring 2014 April 1st Exam 2 Question 1. [3 points] What output is printed by the following code?
CS 101, Spring 2014 April 1st Exam 2 Name: Question 1. [3 points] What output is printed by the following code? int arr[4] = {13, 1, 9, 18; printf("%i\n", arr[3]); Question 2. [3 points] Specify a function
More informationProgramming Assignment 1
CMSC 417 Computer Networks Spring 2017 Programming Assignment 1 Assigned: February 3 Due: February 10, 11:59:59 PM. 1 Description In this assignment, you will write a UDP client and server to run a simplified
More informationOverview. Last Lecture. This Lecture. Daemon processes and advanced I/O functions
Overview Last Lecture Daemon processes and advanced I/O functions This Lecture Unix domain protocols and non-blocking I/O Source: Chapters 15&16&17 of Stevens book Unix domain sockets A way of performing
More informationServer algorithms and their design
Server algorithms and their design slide 1 many ways that a client/server can be designed each different algorithm has various benefits and problems are able to classify these algorithms by looking at
More informationSOCKET PROGRAMMING. What is a socket? Using sockets Types (Protocols) Associated functions Styles
LABORATORY SOCKET PROGRAMMING What is a socket? Using sockets Types (Protocols) Associated functions Styles 2 WHAT IS A SOCKET? An interface between application and network The application creates a socket
More informationApplication Programming Interfaces
Application Programming Interfaces The TCP/IP protocol suite provides only the protocols that can be used by processes to communicate across a network. Though standarized, how these protocols are implemented
More informationCpt S 122 Data Structures. Course Review Midterm Exam # 2
Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm
More informationLecture 8: Other IPC Mechanisms. CSC 469H1F Fall 2006 Angela Demke Brown
Lecture 8: Other IPC Mechanisms CSC 469H1F Fall 2006 Angela Demke Brown Topics Messages through sockets / pipes Receiving notification of activity Generalizing the event notification mechanism Kqueue Semaphores
More informationTopics. Lecture 8: Other IPC Mechanisms. Socket IPC. Unix Communication
Topics Lecture 8: Other IPC Mechanisms CSC 469H1F Fall 2006 Angela Demke Brown Messages through sockets / pipes Receiving notification of activity Generalizing the event notification mechanism Kqueue Semaphores
More informationInstruction Guide. FORENSICS Qualification Rounds. February 2-5, 2017 February 23-27, 2017
Instruction Guide FORENSICS Qualification Rounds February 2-5, 2017 February 23-27, 2017 CyberPatriot Online Forensics Challenge 1 Forensics PR Instruction Guide Introduction This document provides instructions
More informationFall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System
Fall 2012 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Prof. Gil Zussman due: Wed. 10/24/2012, 23:55 EST 1 Introduction In this programming assignment, you are
More informationUnix Network Programming
Introduction to Computer Networks Polly Huang EE NTU Unix Network Programming The socket struct and data handling System calls Based on Beej's Guide to Network Programming 1 The Unix Socket A file descriptor
More informationThe MPI API s baseline requirements
LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-01- E 01/26/2000 The MPI API s baseline
More informationLight & NOS. Dan Li Tsinghua University
Light & NOS Dan Li Tsinghua University Performance gain The Power of DPDK As claimed: 80 CPU cycles per packet Significant gain compared with Kernel! What we care more How to leverage the performance gain
More informationThe basic server algorithm. Server algorithms and their design. Problems with the simple server? Servers. overview ofaserver
Server algorithms and their design slide 1 The basic server algorithm slide 2 many ways that a client/server can be designed overview ofaserver each different algorithm has various benefits and problems
More informationP2P Programming Assignment
P2P Programming Assignment Overview This project is to implement a Peer-to-Peer (P2P) networking project similar to a simplified Napster. You will provide a centralized server to handle cataloging the
More informationWriting Network Applications using the TCP/IP Protocol Stack: Socket Programming
Writing Network Applications using the TCP/IP Protocol Stack: Socket Programming 1 Web Browser Network - Applications Paradigm Communicating TCP UDP IP LL PL Real Player Typical network app has two pieces:
More informationProject 1: Implement a simple P2P framework with search and retrieval features
Project 1: Implement a simple P2P framework with search and retrieval features Due date: October 16 (Monday), 2006 Requirements This exercise should be done in a group of at most two students. You will
More information