Introduction to Networking Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Distributed File Systems Operating Systems In Depth XXVII 2 Copyright 2017 Thomas W. Doeppner. All rights reserved.
What We Cover Communication protocols Remote procedure call protocols Distributed file systems Operating Systems In Depth XXVII 3 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Communication Operating Systems In Depth XXVII 4 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Some Issues Quantity: how many are communicating? unicast broadcast multicast Quality: how good/reliable is the communication? best effort fully reliable guaranteed bandwidth and delay Operating Systems In Depth XXVII 5 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Some More Issues Naming and addressing www.cs.brown.edu vs. 128.148.32.110 Routing Congestion Operating Systems In Depth XXVII 6 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Circuits vs. Packets Circuit switching reserve a circuit between communicating entities Packet switching break data into packets transmit each packet separately each packet could travel a different route Operating Systems In Depth XXVII 7 Copyright 2017 Thomas W. Doeppner. All rights reserved.
ISO OSI Reference Model 7 application application 6 presentation presentation 5 session session 4 transport transport 3 network link network link network link network link 2 data link data link data link data link 1 physical physical physical physical Operating Systems In Depth XXVII 8 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Internet Architecture OSI Layer 5-7 Application Application End-to-End OSI Layer 4 End-to-End OSI Layer 3 Internet Internet Internet Internet Net Interface OSI Layers 1-2 Net Interface Net Interface Net Interface Operating Systems In Depth XXVII 9 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Internetworking with TCP/IP user user TCP TCP i/f IP IP i/f LAN i/f IP i/f i/f IP i/f LAN WAN Operating Systems In Depth XXVII 10 Copyright 2017 Thomas W. Doeppner. All rights reserved.
IP Header vers hlen type of serv total length identification flags fragment offset time-to-live protocol header checksum source address destination address options padding data Operating Systems In Depth XXVII 11 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Class-Based Internet Addresses Class A 0 network host 7 bits 24 bits Class B 10 network host 14 bits 16 bits Class C 110 network host 21 bits 8 bits Class D 1110 multicast group ID 28 bits Operating Systems In Depth XXVII 12 Copyright 2017 Thomas W. Doeppner. All rights reserved.
User Datagram Protocol vers hlen type of serv total length identification flags fragment offset time-to-live protocol header checksum source address destination address options padding data Source Port Destination Port Length UDP Checksum Operating Systems In Depth XXVII 13 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Transmission Control Protocol (TCP) A multiplexing service built on top of IP A full-duplex reliable stream protocol Provides reliable data transfer Packet boundaries are not seen by the application it sees a sequence of bytes, not a sequence of packets A connection must be established for communication to take place connections are flow-controlled connections are congestion-controlled Operating Systems In Depth XXVII 14 Copyright 2017 Thomas W. Doeppner. All rights reserved.
TCP Header Components source port destination port sequence number acknowledgment sequence number offset reserved flags window size checksum urgent pointer options data padding Operating Systems In Depth XXVII 15 Copyright 2017 Thomas W. Doeppner. All rights reserved.
active open: init state send SYN TCP State Diagram closed passive open: init state syn closed sent recv SYN: send ACK syn closed rcvd recv SYN: send SYN,ACK closed listen recv ACK of SYN recv SYN, ACK: send ACK closed estab recv ACK fin wait 1 fin wait 2 CLOSE: send FIN recv FIN, ACK: send ACK closing recv FIN: send ACK recv FIN: send ACK CLOSE: send FIN close wait last ack recv ACK recv ACK of FIN recv FIN: send ACK time wait timeout closed Operating Systems In Depth XXVII 16 Copyright 2017 Thomas W. Doeppner. All rights reserved.
closed syn-sent Connection Initiation seq=100 ctl=syn seq=100 ctl=syn seq=300 ack=101 ctl=syn,ack listen listen syn-rcvd syn-sent seq=300 ack=101 ctl=syn,ack estab seq=101 ack=301 ctl=ack seq=101 ack=301 ctl=ack syn-rcvd estab Operating Systems In Depth XXVII 17 Copyright 2017 Thomas W. Doeppner. All rights reserved.
estab close fin-wait -1 fin-wait-1 fin-wait-2 fin-wait-2 time-wait Shutdown seq=100 ack=300 ctl=fin,ack seq=100 ack=300 ctl=fin,ack seq=300 ack=101 ctl=ack seq=300 ack=101 ctl=ack seq=300 ack=101 ctl=fin,ack seq=300 ack=101 ctl=fin,ack seq=101 ack=301 ctl=ack estab close-wait close-wait close last-ack 2 MSL delay seq=101 ack=301 ctl=ack last-ack closed time-wait closed Operating Systems In Depth XXVII 18 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Sliding-Window Protocol Used for: reliable delivery flow control Windows send receive Operating Systems In Depth XXVII 19 Copyright 2017 Thomas W. Doeppner. All rights reserved.
TCP Receive Window 36,000 38,000 42,000 32,001 35,001 37,001 acknowledged data ok to receive data beyond window buffer size (10,000 bytes) Operating Systems In Depth XXVII 20 Copyright 2017 Thomas W. Doeppner. All rights reserved.
TCP Send Window 34,000 39,000 42,000 sent and acknowledged data sent but unacknowledged data ok to send data beyond window advertised receive-window size (8,000 bytes) Operating Systems In Depth XXVII 21 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Coping With Lost Data Operating Systems In Depth XXVII 22 Copyright 2017 Thomas W. Doeppner. All rights reserved.
When to Retransmit? After waiting significantly longer than the average ( smoothed ) roundtrip time How much longer? significantly longer than the average deviation What if one retransmission doesn t do it? transmit again When? use exponential backoff When does one give up? eventually Operating Systems In Depth XXVII 23 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Ack Clocking Operating Systems In Depth XXVII 24 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Fast Start Operating Systems In Depth XXVII 25 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Slow Start Operating Systems In Depth XXVII 26 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Congestion Control (1) 1) 2) 3) Operating Systems In Depth XXVII 27 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Congestion Control (2) 4) 5) Operating Systems In Depth XXVII 28 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Idealized Congestion Window Size Congestion-Window Size Time Operating Systems In Depth XXVII 29 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Actual Congestion Window Size Congestion-Window Size Time Operating Systems In Depth XXVII 30 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Fast Retransmit and Recovery Waiting an entire RTO before retransmitting causes the pipeline to become empty must slow-start to get going again If one receives three acks that all repeat the same sequence number: some data is getting through one segment is lost immediately retransmit the lost segment halve the congestion window (i.e., perform congestion control) don t slow-start (there is still data in the pipeline) Operating Systems In Depth XXVII 31 Copyright 2017 Thomas W. Doeppner. All rights reserved.