* 3 by visualizing

Computer Networking — A Top-down Approach Chpt 3

Lu Shengliang
Programmers Don’t Read Books

--

CHAPTER 3

1. Transport-layer protocol provides for logical communication between application processes running on different hosts

2. compared to network layer — which is the logic communication between hosts

3. TCP — reliable data transfer; congestion control

4. Multiplexing & demultiplexing — transport to network & network to transport

5. port number — 0 ~ 65536; 0 ~ 1023 well know ports

6. connectionless transport — UDP; DNS service; RIP routing table updates

7. UDP segment structure — UDP checksum

8. Data transfer protocol — FSM

9. ACK & NAK — need putting sequence number

10. Stop-and-wait versus pipelined protocol — most of the time, sender is waiting. Because, sender sent the package out very fast. The most time consumption is the RTT. So we should use pipeline

11. Go-Back-N

N is often referred to as the window size and the GBN protocol itself as a sliding-window protocol.

12. Selective Repeat

As the name suggests, selective-repeat protocols avoid unnecessary retransmissions by having the sender retransmit only those packets that it suspects were received in error (that is, were lost or corrupted) at the receiver

13. Now comes to TCP; just now was general principles of reliable data transfer

14. TCP

Required knowledge: error detection, retransmissions, cumulative acknowledgments, timers and header fields for sequence and acknowledgment numbers.

TCP — connection-oriented, full-duplex service, always point-to-point, three-way handshake

TCP buffer — maximum segment size MSS or maximum transmission unit MTU

TCP Sequence number & acknowledgement number — Seq #= previous_it + MSS; Ack # = receive_id + 1 → expecting

15. RTT — use Exponential Weighted Moving Average (EWMA)

EstimatedRTT = (1 – α) * EstimatedRTT + α * SampleRTT

SampleRTT = currentRTT; changes overtime;

EstimatedRTT = smoother RTT; used to set timeout period

DevRTT is EWMA of difference between SampleRTT & EstimatedRTT

DevRTT = (1 – β) * DevRTT + β * | SampleRTT – EstimatedRTT |

16. TCP timeout

TimeoutInterval = EstimatedRTT + 4 * DevRTT

Timeout and Retransimission

17. Doubling Timeout — be polite

18. Fast Retransimit — duplicate ACK

19. TCP flow-control — 1 receive windows + 1 tcp application buffer = RcvBuffer

LastByteRead: the number of the last byte in the data stream read from the
buffer by the application process in B

LastByteRcvd: the number of the last byte in the data stream that has arrived from the network and has been placed in the receive buffer at B

For sender: LastByteSent – LastByteAcked <= rwnd

rwnd is the “windows size” in TCP header, which indicate how many data can be receive

20. TCP connection management — P253 →step 123, need to set ACK flag to 1 or not?

21. FIN flag is set to tear down the connection

22. SYN flood attack

23. Congestion Control — available bit-rate (ABR); asynchronous transfer mode (ATM)

a. large queuing delay

b. packets lost due to route buffer overflow

c. unneeded retransimission

d. due to congestion

24. Approaches to congestion control — end2end control, tcp must use; network-assisted congestion control, routers feedback to senders, network layer

25. resource-management cells — convey congestion-related information among the hosts and switches

26. TCP congestion control — end-to-end congestion control

27. LastByteSent – LastByteAcked <= min{cwnd, rwnd}

28. TCP self-clocking

29. slow start — exponential growth; ssthresh, slow start treshold;

when the value of cwnd equals ssthresh, slow start ends and TCP transitions into congestion avoidance mode

30. Congestion Avoidance — Tahoe vs Reno

31. TCP fairness

In particular, it has been shown that when multiple connections share a common bottleneck, those sessions with a smaller RTT are able to grab the available bandwidth at that link more quickly as it becomes free (that is, open their congestion windows faster) and thus will enjoy higher throughput than those connections with larger RTTs

32. Fariness & UDP — UDP are always not friendly

33. Use parallel TCP connection to dominate network

Update:

34. ssthresh is initialized to a large value; 64kB

--

--