* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Accompanying slides for Project 3
Remote Desktop Services wikipedia , lookup
Computer network wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Deep packet inspection wikipedia , lookup
Parallel port wikipedia , lookup
SIP extensions for the IP Multimedia Subsystem wikipedia , lookup
Airborne Networking wikipedia , lookup
Network tap wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
CS415 Minithreads Project 3 Overview Adrian Bozdog (Adi) [email protected] What you have to do Implement unreliable communication Simulate IP/UDP protocol No UDP check-sum No UDP fragmentation There is an IP layer that sends and receives messages (see network.c) Start using Jornada systems Run Project 3 on both PC desktops and Jornada systems CS414 Minithreads overview 2 Networking pseudo-device (1) It allows communication between minithreads systems Does not control which thread processes a received packet Interrupt-driven implementation Network_handler executed for each received packet Uses the stack of the current thread It should finish as soon as possible Initialized using network_initialize function CS414 Minithreads overview 3 Networking pseudo-device (2) Network_handler receives a structure: typedef struct { network_address_t addr; - sender char buffer[MAX_NETWORK_PKT_SIZE]; - the body of entire message int size; - the length of the entire message } network_interrupt_arg_t; Call Network_initialize function After clock_initialize() Before enabling interrupts and running threads CS414 Minithreads overview 4 Networking functions Network_send_pkt – sends a packet Destination Header (body, length) Data (body,length) Header: Extra information About the sender About the receiver As small as possible CS414 Minithreads overview 5 Minimsg Layer Identifies the end-points of the communication (ports) The sender assembles the header used to identifies the endpoints The receiver examines the header Identifies destination Enqueues the packet in the right place CS414 Minithreads overview 6 Minimsg Functions Minimsg_send: Non-blocking Parameters: local and remote ports The message and its length Appends the header to the message Sends the entire data using network_send Minimsg_receive: Blocks the thread until it receives a message on the specified port Receives information about the remote port – used to reply CS414 Minithreads overview 7 Miniports Data structures that represents endpoints Local ports: Usually, used for listening Remote ports: Created when a packet is received Bound to a sending “remote” port Allows the receiver to reply CS414 Minithreads overview 8 Miniports Example Ports 2,3 – local ports A,B - Threads Sender A sends a message to Receiver B 2 A Sender CS414 Minithreads overview 3 B Receiver 9 Miniports Example Creates the remote port 100 B receives the message; Minithreads system creates the remote port 100 2 A Sender CS414 Minithreads overview 3 100 B Receiver 10 Miniports Example B replies to A B uses the remote port as the destination of the message; the message is relayed to the sending port 2 A Sender CS414 Minithreads overview 3 100 B Receiver 11 Miniports – hints Local communication Be aware of miniport_destroy function called by the receiver Remote_miniport – pointer to the local port Miniport_send implemented based on the “remote port” Miniports Identified by numbers Assigned them successive numbers Local miniports – starts from 0 Remote miniports – starts from 32768 CS414 Minithreads overview 12 Implementation hints Do not add unnecessary data to the header (ex: header length) Include the address of the sender (used by the routing protocol later) Port operations must be O(1) Do not waste resources Remote miniports are destroyed by the application Build other test cases Network_initialize returns the ip address of the machine Due Date: March 3, 12 pm CS414 Minithreads overview 13 Jornada systems Every group must have at least a Jornada system Come to my office (Upson 5152) I’ll post an announcement You must fill check-out forms Information for using Jornada in the assignment description CS414 Minithreads overview 14