1 / 23

IP: putting it all together Part 2

Learn about IP fragmentation, reassembly, error reporting with ICMP, and auto-configuration in this informative guide covering key networking concepts.

scoldiron
Download Presentation

IP: putting it all together Part 2

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. IP: putting it all togetherPart 2 G53ACC Chris Greenhalgh

  2. Contents • Fragmentation • Error reporting (ICMP) • Auto-configuration • Network Address Translation

  3. Fragmentation • IP allows datagram sizes up to 64Kbytes • Physical networks often only support smaller frame types (Maximum Transmission Unit, MTU): • E.g. Ethernet 1500bytes, dialup PPP ~256bytes •  Single IP datagram may need to be divided into “fragments” for transmission…

  4. IP fragmentation • Each fragment is a (new) IP packet • Has IP header, original source & destination • Identification field same for each fragment • Fragment offset identifies what bit it is • “More Fragments” flag set in all but last fragment

  5. Fragmenting packets • May be done by sending host • May be done by intermediate router: • May be prevented with IP “Do not fragment” flag •  ICMP fragmentation required response if a router would have needed to fragment it • Used by TCP to learn path MTU and avoid fragmentation

  6. Reassembling fragments • Done ONLY by the ultimate destination of the packet • After checking header checksum and destination, but before any more processing • Maintains a pool of fragments • Discarded after a time-out • If all fragments of a datagram received the datagram is reassembled and handled as before

  7. Fragmentation and reassembly issues • Lose one segment and you lose the whole message • Bad if segment loss is likely or number of segments is large • E.g. NFS v.2 used UDP, v.3 uses TCP • because block size 8K -> 32K • many more segments! => higher effective packet loss rate with UDP and more wasted bandwidth

  8. Error reporting • IP includes Internet Control Message Protocol (ICMP) RFC 792 • ICMP messages sent in IP packets • (i.e. same protocol level as UDP or TCP) • IP protocol number 2 • Not seen by applications - between hosts or routers OSs only • Error messages • Informational messages (mostly superceded by DHCP) • NOTE: some may be dropped by firewalls to avoid possible attacks e.g. denial of service (but makes diagnosis of problems harder)

  9. ICMP message types

  10. ICMP Error messages (i) • Source Quech • router to host, please slow down (buffer overflow) • Time exceeded • datagram discarded due to TTL=0 or lost fragment • can be used to trace a route by gradually increasing TTL and seeing which router it gets to before timing out • See commands: tracert (windows), traceroute (unix)

  11. ICMP error messages (ii) • Destination unreachable • datagram discarded by router because host or network not reachable • Datagram discarded by host because UDP/TCP port not in use • Redirect • datagram sent to wrong next hop (gives alternative) • Fragmentation required • if fragmentation not allowed but necessary • can be used to determine path MTU (maximum transmission unit)

  12. ICMP informational messages • Echo Request/Reply • ICMP software sends Reply when receives Request • test computer accessible (e.g. ping) • Address mask request/reply • allow host on booting to query local router for netmask (see DHCP, later) • Gateway discovery • allow host on booting to find default router (see DHCP)

  13. Auto-configuration - low-level • ICMP address mask request/reply • => netmask • Reverse ARP (RARP) RFC 903 • send Ethernet address and a server returns your IP address • ICMP gateway discovery • => default route

  14. Auto-configuration - higher-level (i) • Bootstrap Protocol (BOOTP)RFC 951 and RFC 1542 • single BOOTP request • BOOTP server replies with IP address, Router IP address, server information • requires server configuration for each machine

  15. Auto-configuration - higher level (ii) • Dynamic Host Configuration Protocol (DHCP) RFC 1541 • conceptually an extension of BOOTP • server can maintain pool of IP addresses • no configuration for a new machine • but IP address (and therefore domain names) may change each time a machine is booted

  16. Network Address Translation: motivations • IP requires every machine to have a unique IP address • But there are not enough IPv4 addresses to go round so… • Allow sites to have their own internal private addresses • And share just a few global IP addresses between all of their machines

  17. Network Address Translation • NAT device at boundary between private network and Internet • translates to and from internal private addresses…

  18. Simple NAT • Maps between an internal private IP address and an external global IP address • E.g. for a server machine • NAT device is configured (by hand?!) with the address mapping • Re-writes IP packet headers when forwarding:

  19. Network Address and Port Translation (NAPT) • Allows a single external IP to be shared by many private IPs • By changing port numbers as well as IP addresses:

  20. Configuring NAPT • Can be statically configured • E.g. for a web server • External IP, port 80  Internal server IP, port 80 • Can be dynamically configured by outgoing connections/packets • For normal clients, e.g. accessing external servers… • NB. Does NOT allow external hosts to initiate connections to internal hosts (good security )

  21. NAPT dynamic configuration example • Internal IP IA, port PA sends a packet to external IP IB, port PB… • IP header has IPs, UDP/TCP header has ports • NAT device sees outgoing packet • Chooses a currently unused port number PC • for its own global IP address, IC • Creates a new translation mapping • IA, PA IC,PC (leaves external IP/port) • Discards mapping if unused for some time (configurable)

  22. NAT/NAPT deployment • Most ISPs • Hence need to apply specifically for “static” (globally routable) IP addresses • Many home/small office firewalls and broadband routers

  23. Additional NAT/NAPT issues • Internet server sees NAT device’s IP address and translated port number (if NAPT) • Private network client only knows its private IP address and local port •  Client IP address not transferable (correct or useful) outside the NAT device • E.g. RMI references passed from client to server will contain private IP and so won’t work for server • The client and server will disagree about what they consider the client’s IP address to be (security issue?!)

More Related