Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCP/UDP/IP Courtesy of Kevin Fall at UC Berkeley & Raghupathy Sivakumar at GATECH.

Similar presentations


Presentation on theme: "TCP/UDP/IP Courtesy of Kevin Fall at UC Berkeley & Raghupathy Sivakumar at GATECH."— Presentation transcript:

1 TCP/UDP/IP Courtesy of Kevin Fall at UC Berkeley & Raghupathy Sivakumar at GATECH

2 TCP/IP Protocol Suite Physical layer Data-link layer – ARP, RARP, Network layer – IP, ICMP, IGMP Transport layer – TCP, UDP, RTP Application layer – http, smtp, ftp Application Transport IP DataLink Physical

3 TCP/IP Protocol Suite IP is used for each network node (or router) Application Transport IP DataLink Physical Application Transport IP DataLink Physical IP DataLink Physical IP DataLink Physical Source Dest Router

4 Internet Protocol (IP) service model best-effort datagram model error detection in header only addressing, routing signaling (ICMP) Fragmentation and reassembly Multiplexing and Demultiplexing

5 Addressing Need a unique identifier for every host in the Internet (analogous to postal address) IP addresses are 32 bits long Hierarchical addressing scheme Conceptually … IPaddress =(NetworkAddress,HostAddress)

6 Address Classes Class A Class B Class C 0 netIdhostId 7 bits24 bits 1 0 netIdhostId 14 bits16 bits 1 1 0 netIdhostId 21 bits8 bits

7 Addresses and Hosts Since netId is encoded into IP address, each host will have a unique IP address for each of its network connections Hence, IP addresses refer to network connections and not hosts Why will hosts have multiple network connections?

8 Special Addresses Prefix (netID) Suffix (hostID) Type of AddressPurpose All 0s This computerUsed during bootstrap NetworkAll 0sNetworkIdentifies a network NetworkAll 1sDirect broadcastBroadcast on a specified net All 1s Limited broadcastBroadcast on a local net 127anyloop backtesting

9 Exceptions to Addressing Subnetting Splitting hostId into subnetId and hostId Achieved using subnet masks Supernetting (Classless Inter-domain Routing or CIDR) Combining multiple lower class address ranges into one range Achieved using 32 bit masks and max prefix routing

10 Examples Subnetting (B class) Network Host Network HostSubnet

11 IP Routing Direct If source and destination hosts are connected directly Still need to perform IP address to physical address translation Indirect Table driven routing Each entry: (NetId, RouterId)  Default router  Host-specific routes

12 IP Fragmentation The physical network layers of different networks in the Internet might have different maximum transmission units (MTUs) The IP layer performs fragmentation when the next network has a smaller MTU than the current network MTU = 1500MTU=500 IP fragmentation

13 IP Reassembly Fragmented packets need to be put together Where does reassembly occur? The router at the other end of the smaller MTU network  Router overhead: complexity, buffering  More than one path The final destination  Many fragments on the path more chance of missing packets  Utilization inefficiency (many headers)

14 IP Header Used for conveying information to peer IP layers Application Transport IP DataLink Physical Application Transport IP DataLink Physical IP DataLink Physical IP DataLink Physical Source Dest Router

15 IP Header (contd.) 16 bit total length 4 bit version 4 bit hdr length 16 bit identification 8 bit TTL8 bit protocol16 bit header checksum 3 bit flags 32 bit source IP address 32 bit destination IP address 13 bit fragment offset Options (if any) (maximum 40 bytes) data 8 bit TOS

16 Multiplexing WebEmailMP3 TCPUDP IP WebEmailMP3 TCPUDP IP IP datagrams

17 Endpoint identification how to identify a remote application/service on the Internet? [IP_address, port number, protocol] expect to find a process listening for incoming packets

18 Port numbers port numbers are in range [0..64K-1] ports below 1024 are known as well- known ports and reserved by IANA ports in range [1024..64K-1] may be registered but are not enforced

19 User datagram protocol (UDP)

20 UDP provides a datagram service model Additional intelligence built at the application layer if needed Error detection header (8bytes)

21 Sending a UDP datagram application requires that dest IP address, port number to send application chooses message size, requests send using API (e.g. sockets) API allocates OS-level buffer, leaving for some headers, copies data from user-level buffer to OS-level buffer, gives to UDP module

22 Sending a UDP datagram UDP module receives data and prepends IP and UDP headers fills in IP header info proto, len, src, dst,… fills in UDP header src_port, dst_port, len,… sets TTL and TOS sends UDP/IP packet to IP module UDP header IP header Ethernet header Application dataEthernet trailer

23 Sending a UDP datagram IP module receives packet insert options if enabled sets IP vers, IHL, offset, ID fields determines an interface/MTU fragments if needed and sends to link layer

24 Receiving a UDP datagram network adapter receives a frame, interrupts processor device driver determines frame contains IP type data, strips link layer header and gives to IP module IP checks IP header, processes options IP checks IP address (unicast, multicast, …) IP reassembles if necessary, give the whole packet to UDP based on protocol field

25 Receiving a UDP datagram UDP receives IP/UDP packet checks length and checksum locates OS PCB based on dest port, providing receiving process’ ID; generates ICMP unreachable if nobody there copies to receiving process’ buffer makes receiving process get to this *PCB: protocol control block

26 Why use UDP? downsides no error correction No flow control No congestion control App picks packet size upsides No connection establishment  stateless Broadcast/multicast more straight forward App picks packet size

27 Transmission Control Protocol (TCP)

28 TCP End-to-end transport protocol Responsible for reliability, congestion control, flow control, and sequenced delivery Applications that use TCP: http (web), telnet, ftp (file transfer), smtp (email), chat Applications that don’t: multimedia (typically) – use UDP instead

29 Ports, End-points, & Connections Thus, an end-point is represented by (IP address,Port) Ports can be re-used between transport protocols A connection is (SRC IP address, SRC port, DST IP address, DST port) Same end-point can be used in multiple connections IP Layer TCPUDP http ftp smtptelnet IP address Protocol ID A1A2A3 Transport Port

30 TCP Connection Establishment Connection Maintenance Reliability  by acknowledgement packet (ACK) Congestion control Flow control Sequencing Connection Termination

31 Fundamental Mechanism Simple stop and go protocol Timeout based reliability (loss recovery) Multiple unacknowledged packets (W) data retx ack data ack data Sliding Window Protocol: 1 2 3 4 5 6 7 8 9 10 11 12 …. RTO

32 Sliding window

33 Sliding window for flow control

34

35

36 Sliding window The sender cannot send more data

37 Active and Passive Open How do applications initiate a connection? One end (server) registers with the TCP layer instructing it to “accept” connections at a certain port The other end (client) initiates a “connect” request which is “accept”-ed by the server

38 Reliability (Loss Recovery) Sequence Numbers TCP uses cumulative Acknowledgments (ACKs) Next expected in-sequence packet sequence number Pros and cons? Piggybacking Timeout calculation Rtt avg = k*Rtt avg + (1-k)*Rtt sample RTO = Rtt avg + 4*Rtt deviation ack data 3 1 2 3 4 3 3 4

39 Retransmission (fast retransmit) after 3 duplicate ACKs, TCP sender figures out the packet is lost

40 Congestion control: slow start Initial window size W = 1 Each ACK will increase W by 1 (can be bottleneck!)

41 Congestion Control Slow Start Start with W=1 For every ACK, W=W+1 Congestion Avoidance (linear increase) For every ACK, W = W+1/W Congestion Control (multiplicative decrease) ssthresh = W/2 W = 1 Alternative: Fall to W/2 and start congestion avoidance directly

42 Why LIMD? (fairness) W=1 10010diff = 90 11diff = 0 Problem? – inefficient W=W/2 10010diff = 90 50 5diff = 45 516diff = 45 527diff = 45.. 7328diff = 45 37.514diff = 23.5.. 61.7538.25diff = 23.5 30.8519.65diff = 11.2..

43 Flow Control Prevent sender from overwhelming the receiver Receiver in every ACK advertises the available buffer space at its end Window calculation MIN( congestion control window, flow control window )

44 Sequencing Byte sequence numbers TCP receiver buffers out of order segments and reassembles them later Starting sequence number randomly chosen during connection establishment Why? 3 1 2 3 4 3 3 4 1 given to app 2 given to app Loss 4 buffered (not given to app) 3 & 4 given to app 4 discarded

45 Connection Establishment & Termination 3-way handshake used for connection establishment Delay! Randomly chosen sequence number (why?) is conveyed to the other end Similar FIN, FIN+ACK exchange used for connection termination SYN SYN+ACK ACK DATA Server does passive open Accept connection request Send acceptance Start connection Active open Send connection request

46 TCP Segment Format HL 16 bit SRC Port16 bit DST Port 32 bit sequence number 32 bit ACK number 16 bit window size Rsv’d flags 16 bit urgent pointer16 bit TCP checksum Options (if any) Data Flags: URG, ACK, PSH, RST, SYN, FIN

47 Silly window syndrome (SWS) TCP is a window-based protocol TCP receiver advertises a small amount of window; so TCP sender transmits only a short packet each time Inefficient utilization of network BW So what? Save up enough to send

48 Nagle’s algorithm Buffer all user data if any unacknowledged data is outstanding Ok to send if all is ACK’d or have a MSS size worth of data If small delay is wanted, Nagle’s algorithm should be disabled MSS size: maximum TCP payload size MTU: maximum PDU size supported by link layer MTU = MSS + 20 (TCP header) + 20 (IP header)

49 Interactive applications: Telnet Remote terminal applications (e.g., Telnet) send characters to a server. The server interprets the character and sends the output at the server to the client. For each character typed, you see three packets: 1.Client  Server: Send typed character 2.Server  Client: Echo of character (or user output) and acknowledgement for first packet 3.Client  Server: Acknowledgement for second packet

50 Why 3 packets per character? We would expect four packets per character: However, tcpdump shows this pattern: What has happened? TCP has delayed the transmission of an ACK

51 Delayed ACKS Problem: In request/response programs, you send separate ACK and Data packets for each transaction Solution: Don’t ACK data immediately Wait 200ms (must be less than 500ms – why?) Must ACK every other packet Must not delay duplicate ACKs

52 UDP-lite Error-resilient CODECs appear Over wireless links, BER is not negligible Checksumming drops corrupted packets (even 1 bit error) UDP / UDP Lite Socket Interface H.263+ Encoder RTP IP PPP Packetization RTP UDP / UDP Lite IP PPP De-packetization H.263+ Decoder Socket Interface e.g. cellular networks Fixed Host Unix BSDi 3.0 GSM Base Station GSM Network PSTN Mobile Host Unix BSDi 3.0

53 UDP-lite Error-resilient CODECs means there are redundancy or FEC It may be better to use packets with some errors In UDP-lite, there are error-sensitive and insensitive parts The size of the former part is called coverage E.g. application header can be error-sensitive part Implemented in BSDi 3.0 kernel Requires MAC-lite as well Receiver MAC should pass the data to upper layer despite errors source port # dest port # length / coverage checksum 0 7 8 15


Download ppt "TCP/UDP/IP Courtesy of Kevin Fall at UC Berkeley & Raghupathy Sivakumar at GATECH."

Similar presentations


Ads by Google