1 CS4514 – B03 Project 2 Help Session Choong-Soo Lee November 24, 2003.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

TFTP (Trivial File Transfer Protocol)
Lab tutorial Lab assignment 2 Fall 2006
Transport Layer peterl. Transport level application transport network data link physical logical end-end transport application transport network data.
I/O Multiplexing Road Map: 1. Motivation 2. Description of I/O multiplexing 3. Scenarios to use I/O multiplexing 4. I/O Models  Blocking I/O  Non-blocking.
Today’s topic Issues about sending structures with TCP. Server design alternatives: concurrent server and multiplexed server. I/O multiplexing.
Global Employee Location Server Jeff Zhou 3/19/2011 CS4516 HELP Session 1 Modified based on CS4514 B05 slides.
Client 1 Client 2 Server Child Process1 Child Process2 (1) (2) (3) serverbase.txt Note: each child process keeps a separate copy of the DB.
Client 1 Client 2 Server Child Process1 Child Process2 (1) (2) (3) serverbase.txt Note: each child process keeps a separate copy of the DB.
CS4514-Help Session By Huahui Wu. Description In this project, you are supposed to implement a PAR (Positive Acknowledgement with Retransmission)
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
I/O Multiplexing© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science.
CS4514 HELP Session 3 Concurrent Server Using Go-Back-N Song Wang 12/08/2003.
Concurrent Server Using Selective Repeat Data Link Layer Mingzhe Li 12/05/2005 CS4514 HELP Session 3.
CS4514 Assignment 2 Help Session – Data Link Layer Client and Server Processes Speaker: Hao Shang Date: Nov. 11th, 2004.
CS4514 HELP Session 3 Concurrent Server Using Go-Back-N Song Wang 02/17/2004.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
1 Diagnostics Project Introduction Matt Morgan. 2 Diagnostic ’ s Project Purpose Develop the Network layer services for diagnostics on CAN for road vehicle.
Network LayerDatalink LayerPhysical LayerNetwork LayerDatalink LayerPhysical Layer ClientServer Framework.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Lecture 8 UDP Sockets & I/O Multiplexing
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
1 CS4514 Project 2 Help Session (B05) Mingzhe Li Nov 10, 2005.
IP Multiplexing Ying Zhang EECS 489 W07.
Project 2: A P2P Chat Application Review Ananth Rao.
CS4516: Medical Examiner Client/Server Evan Frenn 1.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
CS 4396 Computer Networks Lab
1 CS3516 Project 3 Help Session (B14) Dongqing Xiao Dec 04, 2014.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
Review: How to create a TCP end point? What is the right format for sin_port and sin_addr in the sockaddr_in data structure? How many different ways we.
Review:. Chapter 3: The Data Link Layer –achieve reliable, efficient communication between two physically connected machines. –Example problems to be.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer PART I: Peer-to-Peer Protocols ARQ Protocols and Reliable Data Transfer Flow Control.
TELE 402 Lecture 4: I/O multi … 1 Overview Last Lecture –TCP socket and Client-Server example –Source: Chapters 4&5 of Stevens’ book This Lecture –I/O.
CS 453 Computer Networks Lecture 9 Layer 2 – Data Link Layer.
1 I/O Multiplexing We often need to be able to monitor multiple descriptors:We often need to be able to monitor multiple descriptors: –a generic TCP client.
CSCE 515: Computer Network Programming Select Wenyuan Xu Department of Computer Science and Engineering.
Forward Error Correction vs. Active Retransmit Requests in Wireless Networks Robbert Haarman.
I/O Multiplexing. What is I/O multiplexing? When an application needs to handle multiple I/O descriptors at the same time –E.g. file and socket descriptors,
CSE 123 Discussion 10/05/2015 Updated from Anup and Narendran’s excellent notes.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology SDL_net Client-Server Example Spring 2012.
Today’s topic: UDP Reliable communication over UDP.
Transport Layer 3-1 Internet Transport Layer Lecture 8 Dr. Najla Al-Nabhan.
CMPT 471 Networking II Network Programming © Janice Regan,
Prof. Younghee Lee 1 1 Computer Networks u Lecture 5: Transport services and protocols Prof. Younghee Lee * Some part of this teaching materials are prepared.
Transport Layer: Sliding Window Reliability
1 CS3516 Project 3 Help Session (A15) Dongqing Xiao Sep 30th,2015.
© 2002, Cisco Systems, Inc. All rights reserved..
Data Link Layer. Data link layer The communication between two machines that can directly communicate with each other. Basic property – If bit A is sent.
CS 145A Reliable Communication Netlab.caltech.edu/course.
1 The utopia protocol  Unrealistic assumptions: –processing time ignored –infinite buffer space available –simplex: data transmitted in one direction.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
Computer Networking Lecture 16 – Reliable Transport.
Chapter 3: The Data Link Layer –to achieve reliable, efficient communication between two physically connected machines. –Design issues: services interface.
Chapter 3 Transport Layer
I/O Multiplexing.
Concurrent Server Using Go-Back-N
Introduction of Transport Protocols
Transport Layer Our goals:
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Overview Jaringan Komputer (2)
CS4516 Program 2 Help Session (C10)
CS4470 Computer Networking Protocols
CS4514 Project 2 Help Session (B07)
CSS432 (Link Level Protocols) Reliable Transmission Textbook Ch 2.5
CS4470 Computer Networking Protocols
Concurrent Server (in APP) Using Go-Back-N (in DLL)
The Transport Layer Reliability
Simulation of Datalink Layer Communication Speaker: Jae Chung
I/O Multiplexing We often need to be able to monitor multiple descriptors: a generic TCP client (like telnet) need to be able to handle unexpected situations,
Presentation transcript:

1 CS4514 – B03 Project 2 Help Session Choong-Soo Lee November 24, 2003

2 Description The goal is to implement a Positive Acknowledgement with Retransmission (PAR) protocol on top of an emulated physical layer.  The receiver acknowledges only the correctly received segments and the sender uses timeout to detect and send the lost segment.  Physical layer is emulated by a TCP connection plus an error module.

3 Framework Network Layer Data Link Layer Physical Layer Network Layer Data Link Layer Physical Layer ClientServer Do NOT attempt to put everything in one big main()

4 Network Layer ClientServer server.out Network Layer read (pkt) Network Layer nwl_recv(pkt) testdata.raw pkt write (pkt) pkt

5 Data Link Layer ack ClientServer Network Layer Data Link Layer dll_send(pkt) Data Link Layer dll_recv(frm) Network Layer frm pkt

6 Physical Layer TCP Connection ClientServer Datalink Layer Physical Layer phl_send(frm) phl_recv(ack) Physical Layer phl_send(ack) phl_recv() Datalink Layer frmack

7 Testdata File Pkt_numthe number of packets Packet_i_lenthe byte number of the i-th packet Packet_ithe i-th packet in raw byte form 2{one byte} 38{one byte} CS4514, computer network course, FL320{38 bytes} 31{one byte} Worcester Polytechnic Institute{31 bytes}

8 Example: Read testdata.raw /cs/cs4514/pub/example/getData.c main(int argc, char **argv) { int fp, i; unsigned char packets[205]; unsigned char byteNum; unsigned char p; if ((fp = open(argv[1], O_RDONLY)) < 0) { fprintf(stderr, "Open testData error!“); printf("Usage: %s filename\n", argv[0]); exit(-1); }

9 Example: Read testdata.raw (continued) read(fp, &p, 1); printf("The total number of packets is: %d\n\n", p); for (i = 0; i < p; i++) { read(fp, &byteNum, 1); printf("The length of %dth packet : %d\n", i+1,byteNum); read(fp, packets, byteNum); packets[byteNum] = '\0'; printf("The content of %dth packet : %s\n\n", i+1,packets); } close(fp); } Raw file: /cs/cs4514/pub/C02_proj2/miniData.raw

10 Client: dll_send(pkt, …) 2. For each payload 2.3 phl_send(frm, …) phl_send(frm, …): Force bit error every 8-th Frame client.log ack ok? 1. Split a packet into payloads 2.1 Create Frame (frm) 2.4 phl_recv(ack, …) no yes Timeout Handler: phl_send(frm, …) 2.2 Start a Timer

11 Create Frame DatafieldSeq 1. Compute Seq Number and End-Of-Packet (EOP) byte EOP SeqEOPED Bytes after stuffing SFEF 2. Error-Detection (ED) byte (XOR on Seq + EOP + Data) 3. Byte Stuffing on Seq + EOP + Data + ED 4. Add Start-Flag (SF) and End-Flag (EF) Datafield EOP: End of PacketED: Error Detection SF: Start-flagEF: End-flag

12 Server: dll_recv(frm, …) 2. Compute ED byte 1. Un-stuff frm ED ok? 3. Create ACK Frame (ack) Dup? 4. phl_send(ack, …) 5. Reassemble the packet no yes Drop frm yes no 6. nwl_recv(pkt, …) server.log phl_send(frm, …): Force bit error every 7-th Frame EOP? Return no yes

13 Create ACK Frame Seq ED Bytes after stuffing SFEF 2. Error-Detection (ED) byte (ED = Seq) 1. Compute Seq Number 3. Byte Stuffing on Seq+ED 4. Add Start-Flag (SF) and End-Flag (EF) EOP: End of PacketED: Error Detection SF: Start-flagEF: End-flag

14 Timers The client uses a timer to detect a frame loss.  The client sets a timer when it transmits a frame.  When the timer expires, the client retransmits the frame. Two kinds of timer  Select : easier to use  Signal and Timer : nicer implementation

15 Select: Monitor Given FDs (SDs) # include int select (int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); struct timeval { long tv_sec;/* seconds */ long tv_usec;/* microseconds */ }

16 Example: Select fd_set bvfdRead; int readyNo; struct timeval timeout; int sockfd; while (1) { timeout.tv_sec = 0; timeout.tv_usec = 500; FD_ZERO(&bvfdRead); FD_SET(sockfd, &bvfdRead); readyNo = select(sockfd+1, &bvfdRead, 0, 0, &timeout); if(readyNo < 0) error_handler(); else if(readyNo == 0) timeout_handler(); else { FD_ZERO(&bvfdRead); receive_handler(); }

17 Signal and Timer: Soft Interrupt Head files #include Register a function to TIMEOUT signal signal (SIGALRM, timeout); Create a timer and begin to run timer_create(); timer_settime();

18 Example: Signal and Timer timer_t timer_id; void timeout(){ printf("\n Time out!!!!\n"); exit(0); } void start_timer(){ struct itimerspec time_val; signal (SIGALRM, timeout); timer_create( CLOCK_REALTIME, NULL, &timer_id); /* set timeout to 1 second */ time_val.it_value.tv_sec = 1; time_val.it_value.tv_nsec = 0; time_val.it_interval.tv_sec = 0; time_val.it_interval.tv_nsec = 0; timer_settime(timer_id, 0, &time_val, NULL); } main(){ start_timer(); while(1); }