CS3502: Data and Computer Networks DATA LINK LAYER - 2 WB version data link layer : flow and error control purpose : regulate the flow of data from sender S to receiver R, so that R is neither overwhelmed nor kept idle unnecessarily. secondary purpose may also be used to avoid swamping the network or link with traffic. technique : send control information between S and R, synchronizing on buffer space, transmission rates, etc. protocols: stop-and-wait, alternating bit sliding window (go-back-N, selective repeat/reject) performance analysis of networks attempts to determine the efficiency of a network; that is, for various traffic loads, how well the network uses its resources to meet the needs of the traffic examples stop and wait alternating bit more complex networks need the use of probability and queueing theory data link layer : stop-and -wait protocol send 1 frame, then stop, and wait for an acknowledgment before sending the next. X R data ack data data link layer : stop and wait what happens if a message is lost? to tolerate losses, must add timeouts (TO) and retransmissions what happens if data is lost? what happens if ack is lost? what is the obvious solution? alternating bit protocol:add a number to data frames, to uniquely identify; enable repeated messages to be safely discarded data link layer : stop and wait protocols what is the efficiency of this S&W protocol? i.e., of the total time spent, how much is actually spent sending the data? variables td, time spent transmitting the data tp, propagation delay tproc, processing time tack, time spent transmitting the ack. U, utilization or efficiency of the protocol performance of A-B protocol td tp tp AB protocol U = td /( td + 2 tprop), error free case or U = (1-PE)td /( td + 2 tprop, )error case link utilization of AB protocol suppose we use a satellite link, tprop = 250ms; data frame is 16K bits; transmission rate is 1 Mbps. What is U ? Assume negligible error rate. eart h how might this be improved? sliding window protocols: no error send a series of data frames, without waiting for acknowledgments 1 at a time window W : the number of frames in transit between sender and receiver (max, current) each frame numbered from 0, 1, 2, ..., w receiver may ack 1 or more frames at a time X sends up to max window, then waits for acks; R uses acks to control and maximize utilization sliding window protocol : no error suppose w = 3: frame NOTE: By Convention ack# = sequence # of next d0 d1 d2 expected by receiver ack3 sliding window protocol sequencing for w = 3: d0, d1, d2 wait for ack3 d3, d0, d1 wait for ack2 etc. exercise: show all sequences possible on timing diagram for w=3. (include 3 at a time, 2 at a time, 1 at a time) sliding window protocol : no error what is the efficiency of the protocol? ie, what is the best utilization possible? (assume no errors in the channel) sliding window: no channel errors U = W td /( td + 2 tprop ), if less than 1, U = 1, otherwise. Why sliding window protocol? for large windows, what if a message is lost? what problem do you see with this? suppose w = 63: what if d61 lost? d0 d1 d61 d62 T w ack61 d6 1 sliding window: variables, nacks standard variables NS and NR : used to keep track of sequence numbers NS : send sequence number; seq. number of the next data frame to be sent . Increments modulo Wmax +1. NR : receive sequence number; seq. number of the last (most recent) nack. frame received both are local variables of the sender current window in sender is found by subtracting the difference, NS _- NR , from maximum window size - Wcurrent = Wmax - [NS _- NR ] sliding window: variables, nacks go-back-N nacks: if a frame lost, it and all subsequent frames retransmitted nack: (1) acknowledges previous frames, and (2) rejects numbered frame and all subsequent frames. Sequence numbers convention same as acks# ie. Next frame expected. when sender gets a nack, NS must be rolled back to the value of the nack, and NR must be rolled forward to the nack examples sliding window: variables, nacks Initially, NS = NR = 0 NS incremented each time a frame sent NR updated each time a nack frame received example: suppose Wmax = 5; show values after each of following: send d0, d1, d2 receive nack1 send d1, d2, d3, d4, d5 receive nack4 send d4, d5, d0 what is current window size? Calculated modulo Wmax +1 sliding window protocol Go-back-n needlessly repeats frames sliding window: selective repeat (also called selective reject) only retransmit messages which were lost window size at most half the range of sequence numbers (why?) timing diagrams disadvantage more buffers, more complex algorithm, costs more advantage higher efficiency in noisy channels data link protocol performance go-back-N, selective repeat : no channel errors U = W td /( td + 2 tprop ),if less than 1, U = 1, otherwise. performance of data link protocols selective repeat: with errors U = 1 - P, for Wtd > td + 2 tprop = (1 - P) Wtd / td + 2 tprop , otherwise go-back-N, with errors U = (1 - P)td/(td + 2tpP), W > 2tp/td + 1, = W(1 - P)td/ (2tp + td)(1 - P + WP), O.W. see Stallings Appendix 6A HDLC: high level data link control ISO standard for a data link protocol other DL standards exist, but are very similar; e.g., PPP HDLC combines various functions of the DL layer - flow control, error control, sequencing, framing, etc. - into a single protocol standard HDLC standard is broad, covering several different cases 3 general classes: station type link configuration mode of operation HDLC station types primary P secondary S combined C types P and S are for multipoint network with polling hub polling, etc. --> master/slave network type link C for point-to-point link configurations balanced : 2 combined stations on 1 direct link unbalanced : 1 P, n S’s directly connected (e.g., bus) HDLC frame types and formats I-frame(information/data) S-frame (supervisory) U-frame (data)