1 / 45

TCP/IP

TCP/IP. Announcements. Send group information to TA Name1, ece-login-id1 Name2, ece-login-id2 Name3, ece-login-id3 Use subject “6610 Project Group” If not able to find group-mates, send an email to the TA with only your information Video students:

Download Presentation

TCP/IP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP

  2. Announcements • Send group information to TA • Name1, ece-login-id1 • Name2, ece-login-id2 • Name3, ece-login-id3 • Use subject “6610 Project Group” • If not able to find group-mates, send an email to the TA with only your information • Video students: • please write to TA with firstfeedback information

  3. Recap • Medium Access Control • ALOHA, slotted-ALOHA, CSMA, CSMA/CD • Scheduling • FIFO, Priority, GPS, WFQ, WRR, WRR+spread, DRR, CBQ

  4. TCP/IP Protocol Suite • Physical layer • Data-link layer – ARP, RARP, SLIP • Network layer – IP, ICMP, IGMP, BootP • Transport layer _ TCP, UDP, RTP • Application layer – http, smtp, ftp

  5. Internet Protocol (IP) • Addressing • Routing • Fragmentation and Reassembly • Quality of Service • Multiplexing and Demultiplexing

  6. Addressing • Need 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)

  7. 0 netId hostId 7 bits 24 bits 1 0 netId hostId 14 bits 16 bits 1 1 0 netId hostId 21 bits 8 bits Address Classes • Class A • Class B • Class C

  8. IP Address Classes (contd.) • Two more classes • 1110 : multicast addressing • 1111 : reserved • Significance of address classes? • Why this conceptual form?

  9. 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?

  10. Special Addresses • hostId of 0 : network address • hostId of all 1’s: directed broadcast • All 1’s : limited broadcast • netId of 0 : this network • Loopback : 127.0.0.0 Dotted decimal notation: IP addresses are written as four decimal integers separated by decimal points, where each integer gives the value of one octet of the IP address.

  11. Exceptions to Addressing • Subnetting • Splitting hostId into subnetId and hostId • Achieved using subnet masks • Useful for? • 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 • Useful for?

  12. Examples • Subnetting • 192.168.1.0/24 – class C network • 192.168.1.64/26 and 192.168.1.128/26 – 2 subnetworks with upto 62 stations each! • Supernetting • 192.168.2.0/24 and 192.168.3.0/24 – 2 class C networks • 192.168.2.0/23 – 1 super network with upto 126 stations!!

  13. Weaknesses • Mobility • Switching address classes • Notion of host vs. IP address

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

  15. IP Routing Algorithm • RouteDatagram(Datagram, RoutingTable) • Extract destination IP address, D, from the datagram and compute the netID N • If N matches any directly connected network address deliver datagram to destination D over that network • Else if the table contains a host-specific route for D, send datagram to next-hop specified in table • Else if the table contains a route for network N send datagram to next-hop specified in table • Else if the table contains a default route send datagram to the default router specified in table • Else declare a routing error

  16. Routing Protocols • Interior Gateway Protocol (IGP) • Within an autonomous domain • RIP (distance vector protocol), OSPF (link state protocol) • Exterior Gateway Protocol (EGP) • Across autonomous domains • BGP (border gateway protocol)

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

  18. IP Reassembly • Fragmented packets need to be put together • Where does reassembly occur? • What are the trade-offs?

  19. Multiplexing Web Email MP3 Web Email MP3 TCP UDP TCP UDP IP IP IP datagrams IP datagrams

  20. IP Header • Used for conveying information to peer IP layers Destn Source Application Application Transport Router Router Transport IP IP IP IP DataLink DataLink DataLink DataLink Physical Physical Physical Physical

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

  22. Transmission Control Protocol (TCP)

  23. Transmission Control Protocol (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

  24. http ftp smtptelnet A1 A2 A3 TCP UDP Transport Protocol ID IP Layer Port IP address 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

  25. TCP • Connection Establishment • Connection Maintenance • Reliability • Congestion control • Flow control • Sequencing • Connection Termination

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

  27. 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

  28. data ack 1 1 2 2 3 3 3 3 4 4 4 5 3 3 4 Reliability (Loss Recovery) • Sequence Numbers • TCP uses cumulative Acknowledgments (ACKs) • Next expected in-sequence packet sequence number • Pros and cons? • Piggybacking • Timeout calculation • Rttavg = k*Rttavg + (1-k)*Rttsample • RTO = Rttavg + 4*Rttdeviation

  29. 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

  30. Why LIMD? (fairness) • W=1 • 100 10 diff = 90 • 1 1 diff = 0 • Problem? – inefficient • W=W/2 • 100 10 diff = 90 • 50 5 diff = 45 • 51 6 diff = 45 • 52 7 diff = 45 • .. • 73 28 diff = 45 • 37.5 14 diff = 23.5 • .. • 61.75 38.25 diff = 23.5 • 30.85 19.65 diff = 11.2 • ..

  31. 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)

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

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

  34. TCP Segment Format 16 bit SRC Port 16 bit DST Port 32 bit sequence number 32 bit ACK number Flags: URG, ACK, PSH, RST, SYN, FIN HL flags 16 bit window size resvd 16 bit TCP checksum 16 bit urgent pointer Options (if any) Data

  35. TCP Flavors • TCP-Tahoe • W=1 adaptation on congestion • TCP-Reno • W=W/2 adaptation on fast retransmit, W=1 on timeout • TCP-newReno • TCP-Reno + fast recovery • TCP-Vegas, TCP-SACK

  36. TCP Tahoe • Slow-start • Congestion control upon time-out or DUP-ACKs • When the sender receives 3 duplicate ACKs for the same sequence number, sender infers a loss • Congestion window reduced to 1 and slow-start performed again • Simple • Congestion control too aggressive

  37. TCP Reno • Tahoe + Fast re-transmit • Packet loss detected both through timeouts, and through DUP-ACKs • Sender reduces window by half, the ssthresh is set to half of current window, and congestion avoidance is performed (window increases only by 1 every round-trip time) • Fast recovery ensures that pipe does not become empty • Window cut-down to 1 (and subsequent slow-start) performed only on time-out

  38. TCP New-Reno • TCP-Reno with more intelligence during fast recovery • In TCP-Reno, the first partial ACK will bring the sender out of the fast recovery phase • Results in timeouts when there are multiple losses • In TCP New-Reno, partial ACK is taken as an indication of another lost packet (which is immediately retransmitted). • Sender comes out of fast recovery only after all outstanding packets (at the time of first loss) are ACKed

  39. TCP SACK • TCP (Tahoe, Reno, and New-Reno) uses cumulative acknowledgements • When there are multiple losses, TCP Reno and New-Reno can retransmit only one lost packet per round-trip time • What about TCP-Tahoe? • SACK enables receiver to give more information to sender about received packets allowing sender to recover from multiple-packet losses faster

  40. TCP SACK (Example) • Assume packets 5-25 are transmitted • Let packets 5, 12, and 18 be lost • Receiver sends back a CACK=5, and SACK=(6-11,13-17,19-25) • Sender knows that packets 5, 12, and 18 are lost and retransmits them immediately

  41. Other TCP flavors • TCP Vegas • Uses round-trip time as an early-congestion-feedback mechanism • Reduces losses • TCP FACK • Intelligently uses TCP SACK information to optimize the fast recovery mechanism further

  42. User Datagram Protocol (UDP) • Simpler cousin of TCP • No reliability, sequencing, congestion control, flow control, or connection management! • Serves solely as a labeling mechanism for demultiplexing at the receiver end • Use predominantly by protocols that do no require the strict service guarantees offered by TCP (e.g. real-time multimedia protocols) • Additional intelligence built at the application layer if needed

  43. UDP Header Src Port Dst Port Length: length of header + data (min = 8) Length Checksum

  44. Puzzle • Singly linked list • Need to find if the list has a loop • Constraint1: only read operations on the nodes of the linked-list • Constraint2: constant order memory usage

  45. Recap • TCP • Connection management • Reliability • Flow control • Congestion control • TCP flavors • UDP

More Related