Application Transport Network Link Physical NUS.SOC.CS2105 Ooi Wei Tsang you are here Application Transport (process-to-process) Network (unreliable, host-to-host) NUS.SOC.CS2105 Ooi Wei Tsang Transport (process-to-process) Network (unreliable, host-to-host) NUS.SOC.CS2105 Ooi Wei Tsang Transport (process-to-process) Network (unreliable, host-to-host) NUS.SOC.CS2105 Ooi Wei Tsang src port dst port : NUS.SOC.CS2105 Ooi Wei Tsang UDP vs TCP NUS.SoC.CS2105 Ooi Wei Tsang ConnectionOriented Socket (Src Port, Src Addr, Dest Port, Dest Addr) NUS.SoC.CS2105 Ooi Wei Tsang Connectionless Socket (Dest Addr, Dest Port) NUS.SoC.CS2105 Ooi Wei Tsang UDP Segment Header src port dst port length checksum NUS.SOC.CS2105 Ooi Wei Tsang UDP Checksum 0110011001100000 0101010101010101 NUS.SOC.CS2105 Ooi Wei Tsang UDP Checksum 1011101110110101 1000111100001100 NUS.SOC.CS2105 Ooi Wei Tsang UDP Checksum 0100101011000010 NUS.SOC.CS2105 Ooi Wei Tsang UDP detects errors (no recovery) NUS.SoC.CS2105 Ooi Wei Tsang Reliable Data Transfer rdt1.0, rdt2.0, rdt3.0 NUS.SoC.CS2105 Ooi Wei Tsang Application rdt_send() Transport udt_send() Network NUS.SOC.CS2105 Ooi Wei Tsang Application deliver_data() Transport rdt_recv() Network Finite State Machine Event Action NUS.SOC.CS2105 Ooi Wei Tsang hungry get up & eat sleep awake stomach full go back to bed NUS.SOC.CS2105 Ooi Wei Tsang rdt 1.0 underlying channel is reliable NUS.SoC.CS2105 Ooi Wei Tsang rdt 1.0 sender wait for call NUS.SOC.CS2105 Ooi Wei Tsang rdt_send(data) pkt = make_pkt(data) udt_send(pkt) rdt 1.0 receiver wait for call NUS.SOC.CS2105 Ooi Wei Tsang rdt_recv(pkt) extract(pkt, data) deliver_data(data) send data send pkt wait for call NUS.SOC.CS2105 Ooi Wei Tsang recv pkt deliver wait for call rdt 2.0 channels with bit-errors NUS.SoC.CS2105 Ooi Wei Tsang ARQ : Automatic Repeat reQuest 1. Error detection 2. Receiver feedback (ACK NAK) 3. Retransmission NUS.SoC.CS2105 Ooi Wei Tsang rdt 2.0 sender wait for call NUS.SOC.CS2105 Ooi Wei Tsang wait for ACK/NAK rdt 2.0 receiver wait for call NUS.SOC.CS2105 Ooi Wei Tsang NUS.SOC.CS2105 Ooi Wei Tsang Stop-and-Wait NUS.SoC.CS2105 Ooi Wei Tsang What if ACK/NAK is corrupted? NUS.SoC.CS2105 Ooi Wei Tsang Idea : Retransmit if ACK/NAK is corrupted NUS.SoC.CS2105 Ooi Wei Tsang NUS.SOC.CS2105 Ooi Wei Tsang rdt 2.1 channels with bit-errors NUS.SoC.CS2105 Ooi Wei Tsang rdt 2.1 sender wait for call 0 NUS.SOC.CS2105 Ooi Wei Tsang wait for ACK/NAK 0 wait for call 0 wait for ACK/NAK 1 NUS.SOC.CS2105 Ooi Wei Tsang wait for ACK/NAK 0 wait for call 1 rdt 2.1 receiver wait for 0 NUS.SOC.CS2105 Ooi Wei Tsang wait for 1 wait for call 0 wait for 0 wait for wait for 1 ACK/NAK 0 wait for ACK/NAK 1 wait for call 1 NUS.SOC.CS2105 Ooi Wei Tsang wait for call 0 wait for 0 wait for wait for 1 ACK/NAK 0 wait for ACK/NAK 1 wait for call 1 NUS.SOC.CS2105 Ooi Wei Tsang rdt 2.2 NAK-free NUS.SoC.CS2105 Ooi Wei Tsang No NAK Send ACK of last correctly received packet instead NUS.SoC.CS2105 Ooi Wei Tsang rdt 3.0 lossy channels with bit-errors NUS.SoC.CS2105 Ooi Wei Tsang How to tell if a packet is loss? (can’t know for sure) NUS.SoC.CS2105 Ooi Wei Tsang Use Timeout (may lead to dup. packets) NUS.SoC.CS2105 Ooi Wei Tsang NUS.SOC.CS2105 Ooi Wei Tsang rdt 3.0 sender wait for call 0 NUS.SOC.CS2105 Ooi Wei Tsang wait for ACK 0 Alternating-bit Protocol NUS.SoC.CS2105 Ooi Wei Tsang R = 6000 kbps L = 1500 bytes RTT = 300 ms NUS.SoC.CS2105 Ooi Wei Tsang
© Copyright 2026 Paperzz