School of Information Technologies Network Layer NETS 3303/3603 Week 4.

Post on 19-Dec-2015

212 views 0 download

Transcript of School of Information Technologies Network Layer NETS 3303/3603 Week 4.

School of Information Technologies

Network Layer

NETS 3303/3603

Week 4

School of Information Technologies

Problem: Link Delay Test

• Develop a UDP-based client/server system to test the round-trip delay (RTD)

• PDA is chosen to be the server, which passively open a well-known port

• Upon receiving an array of bytes, it just echo’s the bytes

School of Information Technologies

Link Client• Gets the host to connect and

number of link probes to send from command line

• Create a serialised object with current time and send to server using ObjectOutputStream

• Waits for echoed object from server• To find link RTD

– Extracted object’s time is subtracted from current time

public class Timestamp implements Serializable{

private long time;

public Timestamp(){ time =

System.currentTimeMillis();}public long getTime(){

return time;}public String toString(){ return new Long(time).toString();}

}

School of Information Technologies

while (probes > 0) {dSocket = new DatagramSocket();

time = new Timestamp(); // object to send!bos = new ByteArrayOutputStream();oos = new ObjectOutputStream(bos);oos.writeObject(time);

mBuff = bos.toByteArray();

outPkt = new DatagramPacket(mBuff, mBuff.length, host, PORT);dSocket.send(outPkt);

inPkt = new DatagramPacket(mBuff, mBuff.length);dSocket.receive(inPkt);

ois = new ObjectInputStream(new ByteArrayInputStream(inPkt.getData()));try{

time = (Timestamp)ois.readObject();}catch (ClassNotFoundException e) {}System.out.println("RTT is => "+ (System.currentTimeMillis()- time.getTime())");probes--;

}

School of Information Technologies

Test Output$ java LinkRttClient

Enter host name: pda-wifi

Enter required probes: 10RTT is => 2105 msRTT is => 43 msRTT is => 31 msRTT is => 56 msRTT is => 34 msRTT is => 57 msRTT is => 32 msRTT is => 56 msRTT is => 33 msRTT is => 69 ms

Terminating link delay test...

School of Information Technologies

Lesson Outline

• intro• IP addresses• subnetting• routing/algorithms/architecture• ARP

School of Information Technologies

Fundamental, IPv4

• fundamental TCP/IP protocol

• RFC 791, other related RFCs– Inet checksum, rfc 1071, 1141, 1624– path mtu, rfc 1191– ip datagram reassembly, rfc 815– rfc 1122, communications

School of Information Technologies

Fundamental idea

• ip implements an ip logical network on top of different kinds of network technologies where ip address is endpoint

• hw is hidden by network layer (except for a few things like MTU)

School of Information Technologies

what does IP do (and not do?)

• sends and recvs packets to/from ip addresses - ip datagrams

• no retries, doesn’t promise reliable delivery– packets due to various reasons may be lost, duplicated,

delayed, delivered out of order, or corrupted

• best effort - don’t lose them on purpose but only when nets busy => resources unavailable

School of Information Technologies

IP functions

• route packets– routing: process of determining path for data– ip routes packets when they come from

• transport layer (down stack)• link layer (up stack) - we are router and forward pkts

• fragmentation accrd. to link-layer MTU• handle ip options• send/recv ICMP error and control messages

School of Information Technologies

IP address• 32 bits, “dotted-decimal” notation

– 1.2.3.4, big-endian byte order, 0..255 is range

– associated with interface, not machine

• if machine > 1 i/f, then multi-homed– if multi-homed, not necessarily router

• ip address in UNIX assigned to i/f with#ifconfig ed0 inet 131.253.1.2 netmask 255.255.255.0

School of Information Technologies

Example Of Dotted DecimalNotation

• A 32-bit number in binary– 10000000 00001010 00000010 00000011

• The same 32-bit number expressed in dotted decimal notation– 128 . 10 . 2 . 3

School of Information Technologies

IP address structure• each address has structure in it: (network, host)• Host may be divided further into (subnet, host)• subnet mask used to determine subnet part

– operation: ipaddress & subnet mask

– (more later)

School of Information Technologies

IP Address Conventions

• When used to refer to a network– Host field contains all 0 bits

• Broadcast on the local wire– Network and host fields both contain all 1 bits

• Directed broadcast: broadcast on specific (possibly remote) network– Host field contains all 1 bits

– a packet is sent to all computers on a network

School of Information Technologies

Limited Broadcast

• All 1’s (255.255.255.255)

• Broadcast limited to local network only (no forwarding)

• Useful for bootstrapping

School of Information Technologies

IP address problems

• assigning class by first bits means class A takes 1/2 of range, class B 1/4, class C 1/8, etc.

• problems with this setup– class assignment is wasteful

– ip host addresses not necessarily utilized well

– too many networks in core routers

– running out of ip addresses ??

School of Information Technologies

Question

• How can we minimize the number of assigned network prefixes (especially class B) without abandoning the 32-bit addressing scheme?

• Subnet addressing

• Proxy ARP (later)

School of Information Technologies

Subnetting• subnet - use single IP network address to

hide multiple physical nets• subnet notion converts (net, host) into

slightly more hierarchical (net, subnet, host)

• associate subnet mask with i/f ip address• Example, class B, one byte of subnet: ip

= 148.1.1.0 subnet=255.255.255.0

School of Information Technologies

Choice Of Subnet Size

• How should host portion of address be divided?– Depends on topology at site and number of hosts per

network

• Each physical network is assigned 32-bit address mask

• One bits in mask cover network prefix plus zero or more bits of suffix portion

• Logical and between mask and destination IP address extracts the prefix and subnet portions

School of Information Technologies

Subnettingsubnetting functions:• 1. you can subnet an ip address and split it up on

separate networks across routers (conserve address space)

• 2. you hide your routing structure from remote routers, thus reducing routes in their routing tables

if (dest ip addr & subnet mask) == (my ip addr & subnet mask)dest is on same subnet

elsedifferent subnet (send pkt to router)

School of Information Technologies

Example Network

School of Information Technologies

Fixed-length Subnet Masks

• Organization uses same mask on all networks• Advantages

– Uniformity

– Ease of debugging / maintenance

• Disadvantages– Number of nets fixed for entire organization

– Size of physical nets fixed for entire organization

School of Information Technologies

IP encapsulation

School of Information Technologies

IP Header

School of Information Technologies

Routing

• routing - the process of choosing a path over which to send datagrams

• hosts and routers route• input: ip destination address• output: next hop ip address and internally an

interface to send it out• routing does not change ip dest address

School of Information Technologies

How configure routing table

• static routes - by hand, on unix with % route to_dest via_next_hop

• dynamically via routing protocol daemon, routed or gated on UNIX, protocols=RIP/OSPF/BGP

School of Information Technologies

View routing table

• unix host– % netstat -rn

• n is for NO dns, else you may cause DNS queries

• Linux– % route -n

• cisco router– (router) show ip route

School of Information Technologies

Routing table

• entries logically (destination, mask, via gateway, metric/s)

• destination - network or host address• mask - subnet mask for dst address• via gateway - next hop (maybe router)• metric/s - depends on routing table algorithm and

dynamic routing protocols

School of Information Technologies

SOME possible kinds of routes

• host, 210.1.3.21/32 (to specific host)• subnet, 131.253.1.0/24 (to specific subnet)• network, 131.253.0.0/16 (to specific net)• default route - normally the router on a net, send it

here when nothing else matches– expressed internally as 0.0.0.0

• note: host route to default route – most specific to least specific

School of Information Technologies

Manual route entries

• on FreeBSD unix host:% route add default 204.1.2.3

(default route)

% route add 1.1.1.1 2.2.2.2• 2.2.2.2 is the next-hop router for 1.1.1.1

• we must have direct connection to 2.2.2.2 (i/f must be on same subnet and must exist)

% ifconfig ed0 2.2.2.1 (our i/f must exist)

School of Information Technologies

ARP, The problem

• problem: how does ip address get mapped to ethernet address?

• 2 machines on same enet can only communicate if they know MAC/hw addr

• Applications only use Internet addresses• solutions:

– configure addresses by hand (ouch!)– encode in IP address (48 bits in 32?)– dynamic mapping

School of Information Technologies

Consequence

• Protocol software needs a mechanism that maps an IP address to equivalent hardware address

• Known as address resolution problem

School of Information Technologies

Dynamic Binding

• Needed when hardware addresses are large (e.g., Ethernet)

• Allows computer A to find computer B’s hardware address– A starts with B’s IP address– A knows B is on the local network

• Technique: broadcast query and obtain response• Note: dynamic binding only used across one

network at a time

School of Information Technologies

ARP• rfc 826• host A, wants to resolve IP addr B,

– send BROADCAST arp request– get UNICAST arp reply from B

• ethernet (or MAC) specific, although protocol designed to be extensible

• implemented in driver, not IP• intended for LAN

School of Information Technologies

Refinements

• Cannot afford to send ARP request for each packet

• Solution– Maintain a table of binding

• OS will cache arp replies in arp cache (ip , MAC, 20 minute timeout)– don’t need to do arp on every packet

School of Information Technologies

% arp -a (SunOs)# arp -abanshee.cs.pdx.edu (131.252.20.128) at 0:0:a7:0:2d:a0pdx-gwy.cs.pdx.edu (131.252.20.1) at 0:0:c:0:f9:17longshot.cs.pdx.edu (131.252.20.129) at 8:0:11:1:44:68walt-suncs.cs.pdx.edu (131.252.21.2) at 8:0:20:e:21:25walt-cs.cs.pdx.edu (131.252.20.2) at 8:0:20:e:21:25connor.cs.pdx.edu (131.252.21.179) at 0:0:c0:c5:57:10dazzler.cs.pdx.edu (131.252.21.132) at 8:0:11:1:12:82sprite.cs.pdx.edu (131.252.21.133) at 8:0:11:1:12:e7

(DNS name,ip address,Ethernet address)

School of Information Technologies

Arp command, functions

• ping someone and learn MAC address

• for debugging

• delete out of date ARP entry (you changed the IP address, and you don’t want to wait, OR somebody mucked up)

School of Information Technologies

ARP header

School of Information Technologies

Header details

• header format is not fixed, somewhat dynamic (not used though)

• hw type, ethernet == 1• protocol type, ip = 0x800• hwlen, 6 (MAC), plen 4 (ip)• operation: (used by rarp too)

– 1: arp request, 2: arp reply– 3: rarp request, 4: rarp reply

School of Information Technologies

More Details

• sender hw addr, 6 bytes– the answer, if reply

• sender ip: 4 bytes• target hw address: 6 bytes

– 0 in request

• target ip: 4 bytes

School of Information Technologies

Proxy ARP

• Allow two physical networks to share a single IP prefix

• Arrange special system to answer ARP requests and forward datagrams between networks

• Hosts think they are on same network

School of Information Technologies

Proxy ARP pros, cons

• pros– same network numbers– transparent to hosts– no change in IP routing tables

• cons– does not generalize to complex topology– can drive you nuts -- debugging– not simple and not secure

School of Information Technologies

Summary

• IP is a best-effort network

• Main IP functions– Routing, fragmentation, some error-handling

• Subnetting provide hierarchy => CIDR!

• ARP maps IP to hardware address