Recitation 6 Midterm 1’s solution Project 2 IP Forwarding CIDR
Project 2 Environment Expand your project 1 1 tracker, 2 seeds and 2 leeches Expand your project 1 Download from multiple peers. Be able to upload. Be able to accept incoming connections. Connect to 2 leeches and upload your available pieces to leeches.
Protocol State machine: am_choking: this client is choking the peer am_interested: this client is interested in the peer peer_choking: peer is choking this client peer_interested: peer is interested in this client bitfield: <len=0001+X><id=5><bitfield> SEND+RECV keep-alive: <length prefix> is 0 choke: <len=0001><id=0> unchoke: <len=0001><id=1> interested: <len=0001><id=2> not interested: <len=0001><id=3> have: <len=0005><id=4><piece index> request: <len=0013><id=6><index><begin><length> SEND+RECV piece: <len=0009+X><id=7><index><begin><block> SEND+RECV
Notes After handshake, seeds should send the bitfield with “all of bit 1s”. Leeches may not send “bitfields” or bitfield with “all of bit 0s” After downloading & verifying a piece, your program should advertise the piece by sending a “have” to peers. Don’t send a “have” to peers having it already.
Sample Question: Subnetting Consider a conventional class B network. A network administrator decides to give all subnets in the class B network a sub-net mask of 255.255.248.0. (5 points) How many sub-nets can the administrator use if all sub-nets use this mask? (5 points) How many hosts are possible on each sub-net? (5 points) The administrator just heard that she only needs 16 sub-nets for the class B address. What sub-net mask maximizes the number of hosts on each sub-net?
ARP (from IP add. to MAC add.) Application doesn’t know MAC address !!! Application works with IP address: ssh 128.6.171.162 (ssh cereal.rutgers.edu) ping 192.168.1.1 Recall: Ethernet Frame Structure “A” knows IP X of “C”, how can A send an ethernet frame to C? How does A know MAC of C?? MAC Dest. address MAC Source address Type DATA …. CRC Send broadcast MAC A -> FF: …FF, Type=ARP Who has IP X ???? HUB NIC -> EISA, ISA, PCI card Maybe separate into several slide !!! MAC C -> MAC A, type=ARP Hey guy, I have IP X !!! MAC A-> MAC C, type=IP IP packet A B C D
Multi-Hop Forwarding Example X sends an IP packet to Y?? 3. R2b->Y 1.X-> R1a 2. R1b->R2a a b a b R1 R2 N1 N2 N3 x Y 1. X sends to its gateway (IP of R1a) MAC X -> MAC R1a IP X -> IP Y DATA 2. R1 forwards the packet to R2 MAC R1b -> MAC R2a IP X -> IP Y DATA 3. R2 forwards the packet to Y MAC R2b -> MAC Y IP X -> IP Y DATA
Multi-Hop Forwarding Example Dest Next hop N1 N2 N3 N4 R1 Deliver directly (ARP) R3 Routing table @ R2 Actual routing table contains IP addresses, Flags indicating type of entries, net mask etc.
IP forwarding ROUTING TABLE AT A ROUTER: Destination Gateway Genmask Flags Metric Ref Use Iface 128.6.5.0 A 255.255.255.128 U 0 0 0 eth0 128.6.5.128 B 255.255.255.128 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 128.6.5.1 0.0.0.0 UG 0 0 0 eth0 (default) 128.6.5.1 0.0.0.0 UG 0 0 0 eth0 Question1: Packet with dest IP = 128.6.5.200, what is the next-hop (gateway)? For each entry: if ( <dest IP> AND <netmask> == <destination field>) { choose the next hop = the corresponding gateway; break; } Question2: How many networks does the router connect to?
Network programming in Java TCP/IP stack Application Layer Transport Network Host-to- Net Layer Host A Host B Application Protocol Application Layer Data Transport Protocols (UDP and TCP) Transport Layer TCP/UDP header Data IP IP IP Network Layer Network Layer Network Layer IP header TCP/UDP header Data Host-to- Net Layer Host-to- Net Layer Host-to- Net Layer
Sample Question: IP Forwarding The following table is a routing table using CIDR. Address bytes are in hexadecimal. The notation “/12” defines the length of the mask in bits. For example, for C4.50.0.0/12, the mask is 12 bits, or FF.F0.0.0 in hexadecimal notation. For each of the following destination IP addresses (in hexadecimal), state what the next hop will be by using the routing table above (2 points each): C4.4B.31.2E : C4.5E.05.09 : C4.4D.31.2E : C4.5E.03.87 : C4.5E.7E.12 : C4.5E.D1.02 : Dest. Next Hop C4.5E.2.0/23 A C4.5E.4.0/22 B C4.5E.C0.0/19 C C4.5E.40.0/18 D C4.4C.0.0/14 E C0.0.0.0/2 F 80.0.0.0/1 G default H
Reducing Routing Table Size Without CIDR: service provider 200.71.0.0 200.71.1.0 200.71.2.0 ….. 200.71.255.0 Routing table With CIDR: 200.71.0.0 200.71.1.0 200.71.2.0 ….. 200.71.255.0 service provider Routing table 200.71.0.0/16
Sample Question: CIDR The company X has 4 offices, each office has one subnet. All subnets connect to a router (Router 1 in the figure). This router connects to the ISP router. The subnets are described in the figure.
Sample Question: CIDR (cont.) A. Fill out the routing table for the router 1: Destination Netmask Nexthop Interface Eth1 Eth2 Eth3 Eth4 192.168.1.0 255.255.255.0 192.168.1.2 Eth0 0.0.0.0 192.168.1.3
Sample Question: CIDR (cont.) B. Assume that the ISP router forwards to the router 1 an IP packet that has the destination address 139.200.1.135. Which subnet will the packet be forwarded to? Based on the routing table in (1), what is the interface that the router 1 will forward the packet through? C. Assume that the ISP router implement CIDR. What is the routing entry for all subnets of the company X in the routing table of the ISP router? Destination Netmask Nexthop Interface Eth1