IP : Internet Protocols Agenda • • • • • IP functions IP header format IP routing Fragmentation IPng’s overview Connectionless Delivery System Most fundamental internet service consists of a packet delivery system Service is defined as Unreliable Best-effort Connectionless Purpose Of Internet Protocol Protocol that defines the unreliable, connectionless delivery mechanism is called Internet Protocol and usually called IP IP has 3 important definitions Basic unit of data transfer used throughout a TCP/IP internet IP software perform the routing function Including a set of rule that embody the idea of unreliable packet delivery IP layer defines a single virtual network on top of different kinds of hardware platform using IP address functions of IP route packet fragmentation handle type of services send and receive error and control message using ICMP IP attributes handle data unit called IP datagrams connectionless protocol - doesn’t promise reliable delivery best effort delivery packets may be lost, out out sequence, or duplicated due to various reasons IP encapsulation with Ethernet frame IP datagrams Ethernet hdr IP header data IP reframing • IP will reframe the packet when A send data to B IP 158.108.33.1 MAC 0:0:c:6:13:4a MAC dest MAC src type IP source IP dest IP 158.108.2.1 MAC 0:0:c:6:12:40 0:0:c:6:13:4a 0:0:e8:15:cc:c 0x800 158.108.33.4 158.108.2.71 MAC dest MAC src type IP source IP dest packet to router A IP 158.108.33.4 MAC 0:0:e8:15:cc:c B 0:0:33:10:a:c 0:0:c:6:12:40 0x800 158.108.33.4 158.108.2.71 packet from router IP 158.108.2.71 MAC 0:0:33:10:a:c Change MAC address, IP address be the same IP datagrams 0 15 16 vers:4 hlen:4 TOS:8 total length:16 identification:16 20 bytes time to live:8 31 flags:3 protocol:8 frag offset:13 header checksum :16 source address :32 destination address :32 options and padding :32 data : IP header details (1) • vers - version = 4 • hlen - header length in 32-bit words, – with no options, hlen = 5 = 20 bytes • TOS - type of service, desired quality of services 0 1 Prec. bits 0-2 3 4 5 6-7 2 3 4 5 6 7 D T R 0 0 if 0 if 1 Precedence Normal delay Low delay Normal throughput High throughput Normal Reliability High reliability Reserved IP header details (2) Total length - length of datagrams (incl. header), max datagrams is 64K identification, flags, fragmentation - use to segmentation and reassembly packet TTL - Time to live, defining max number of routers through which the datagrams may pass (hop count) ttl-- decrease each router it passes a router normally set to 30 if ttl == 0 discard and send ICMP TTL exceeded to source IP (prevent looping) IP header details (3) Protocol - higher-level protocol that provides data 1 = datagrams carries an ICMP messages 6 = datagrams carries an TCP segments 17 = datagrams carries an UDP datagrams header checksum - 16 bit one’s compliment, note that there is no data checksum source address - 32 bit IP source address destination address - 32 bit IP destination address option and padding - additional info to control functions such as routing and security Routing routing is a process of choosing a path over which to send datagrams IP routes packet by looking at the IP network number routing components determine what path are available selecting the best path for a particular purpose using those paths to reach other networks devices which perform routing are routers (historically call IP gateways) Routing Table Every router contains a routing table of the network numbers The table records which connection can be used to reach a particular network plus some indication of the performance or cost of using connection Routing Table form • Routing Table form – <network, gateways, others> % netstat -rn Destination Gateway Genmask Flags MSS Window irtt Iface 158.108.32.0 0.0.0.0 255.255.255.192 U 1500 127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0.0.0.0 158.108.32.1 0.0.0.0 UG 1500 0 0 0 0 eth0 0 lo 0 e How to create routing table IP does not create routing table by itself Normal 3 ways to create routing table static route - by hand % route add 158.108.20.0 158.108.33.1 dynamic routes - via routing protocol via ICMP redirect Routing Protocol Routing protocol manages and updates routing table on each network node often implemented in UNIX using one of the two daemons: routed : basic routing daemon for interior routing, normally with RIP gated : sophisticated daemon for interior and exterior routing, with additional protocol such as OSPF, BGP MTU revisited for fragmentation The upper limit number of data byte in data link frame is call MTU (Maximum Transfer Unit) Typical MTU (bytes) FDDI : 4325 Ethernet : 1500 802.3 : 1492 Point-to-Point : 296 If #bytes of datagrams to send>link layer’s MTU, IP breaks the datagrams up into smaller pieces (fragmentation) Fragmentation fragmentation = processed used by IP to reduced size of datagram that are too big for link connection MTU e.g. fragment 2000 bytes to Ethernet (MTU=1500) fragments should be reassembled at the final destination (expensive process) How ? each fragment has its own header each fragment carries the same 16 bit identification number Each fragment must be aligned with an eight-octet boundary Fragmentation flag Identification number 16 bits integer value used to identify all fragments This id is not a sequence number! flags - 3 bits control fragmentation 0= may fragment 1= don’t fragment reserve, must be 0 R 0= last fragment 1= more fragments DF MF fragment offset - indicate the distance of fragment data from the start of the original datagram, measure in 8 octets unit Fragmentation sample other header original ident flags offset ……. 232 0 0..2000 20 bytes 20 bytes Ethernet with MTU ... 111 1 of 1500 0 data 0 0..1479 ... 111 0 185 1480..2000 identification number more fragment post 0 last fragment post 185*8=1480 Problem in fragmentation The end node has no way of knowing how many fragments there be. It has to manage enough buffer space to handle reassembly process. If any fragments lost, all datagram must be discarded End node starts a timer when received the first fragment, if any fragments fails to arrive (usually 30 secs), all datagrams must be discarded Since the IP service is connection's. No attempt is made by IP to recover these situations, though ICMP error message may be generated Path MTU Path MTU : the smallest MTU of data link between two distance hosts Need not to be constant because routing mechanism Avoid fragmentation by discover PATH MTU (RFC1191) Use ICMP to determine PATH MTU Avoiding fragmentation For datagrams within the same physical network, the MTU is known. TCP/UDP then use the MTU to limit the message size pass to IP; messages will never be fragmented. For datagrams passed to diff net, not easy to know the MTU! standard recommends that all networks supporting TCP/IP have an MTU of at least 576 bytes 512 bytes data+20 bytes TCP hdr + 20 bytes IP hdr with options TO GUARANTEED THAT A PACKET OF 576 BYTES OR LESS IS NEVER FRAGMENTED IPng Problem of current IP address : limitation of 32 bit address space 1990 : IETF defined a new version of IP, generally called IP Next Generation or IPng Spring 1992 : IAB issues IPv7, proposed the OSI CLNP (connectionless Network Protocol) as the basis of IPv7. Finally rejected by IETF and working groups IPV6 End 1992: 7 proposals for IPng CNAT, IP Encaps, Nimrod, Simple CLNP, P Internet Protocol, SIP, and TP/IX resolution to 3 possibilities : SIP+ TP/IX => TUBA (TCP and UDP with bigger Address: RFC 1347) TP/IX => CATNIP (Common Architecture for the Next Generation Internet Protocol :RFC1707) SIP+IP encaps+PIP=> SIPP (Simple Internet Protocol Plus: RFC1710) Mid 1994 : SIPP was chosen, known as IP version 6 (IPv6) IPv6 Header 0 15 16 vers:4 40 bytes 31 flow lable:28 payload length:16 next hdr:8 hop limit:8 destination address :128 source address :128 40 bytes fixed length header, no checksum, options are replace by additional extension header IPV6 address representation 16 bits eight hexadecimal value e.g. 4210:30:127F:9111:7801:DA0A:3232:44 5510:0:0:0:0:0:0:44 or 5510::44 Address with mixed environment of v4 and v6 x:x:x:x:x:x:d.d.d.d e.g. 0:0:0:0:0:0.158.108.2.71 IPV6 key advantages 16 bytes fix length IP address support ~1000 million networks IPv4 compatibility self-configuration of workstations support mobile workstations improved security features