SlideShare a Scribd company logo
1 of 38
Download to read offline
Carnegie Mellon
Internetworking	
  	
  
	
  
15-­‐213/18-­‐213:	
  Introduc2on	
  to	
  Computer	
  Systems	
  
20th	
  Lecture,	
  April.	
  2,	
  2013	
  
Instructors:	
  	
  
Anthony	
  Rowe,	
  Seth	
  Goldstein,	
  and	
  Gregory	
  Kesden	
  
Carnegie Mellon
A	
  Client-­‐Server	
  Transac8on	
  
Client	
  
process	
  
Server	
  
process	
  
1.	
  Client	
  sends	
  request	
  
2.	
  Server	
  	
  
handles	
  
request	
  
3.	
  Server	
  sends	
  response	
  
4.	
  Client	
  	
  
handles	
  
response	
  
Resource	
  
¢ Most	
  network	
  applica8ons	
  are	
  based	
  on	
  the	
  client-­‐server	
  
model:	
  
§ A	
  server	
  process	
  and	
  one	
  or	
  more	
  client	
  processes	
  
§ Server	
  manages	
  some	
  resource	
  
§ Server	
  provides	
  service	
  by	
  manipula2ng	
  resource	
  for	
  clients	
  
§ Server	
  ac2vated	
  by	
  request	
  from	
  client	
  (vending	
  machine	
  analogy)	
  
Note:	
  clients	
  and	
  servers	
  are	
  processes	
  running	
  on	
  hosts	
  	
  
(can	
  be	
  the	
  same	
  or	
  different	
  hosts)	
  
Carnegie Mellon
Hardware	
  Organiza8on	
  of	
  a	
  Network	
  Host	
  
main	
  
memory	
  
I/O	
  	
  
bridge	
  
MI	
  
ALU	
  
register	
  file	
  
CPU	
  chip	
  
system	
  bus	
   memory	
  bus	
  
disk	
  	
  
controller	
  
graphics	
  
adapter	
  
USB	
  
controller	
  
mouse	
  keyboard	
   monitor	
  
disk	
  
I/O	
  bus	
  
Expansion	
  slots	
  
network	
  
adapter	
  
network	
  
Carnegie Mellon
Computer	
  Networks	
  
¢ A	
  network	
  is	
  a	
  hierarchical	
  system	
  of	
  boxes	
  and	
  wires	
  (or	
  
not)	
  organized	
  by	
  geographical	
  proximity	
  
§ SAN	
  (System	
  Area	
  Network)	
  spans	
  cluster	
  or	
  machine	
  room	
  
§ Switched	
  Ethernet,	
  Quadrics	
  QSW,	
  …	
  
§ LAN	
  (Local	
  Area	
  Network)	
  	
  spans	
  a	
  building	
  or	
  campus	
  
§ Ethernet	
  is	
  most	
  prominent	
  example	
  
§ WAN	
  (Wide	
  Area	
  Network)	
  spans	
  country	
  or	
  world	
  
§ Typically	
  high-­‐speed	
  point-­‐to-­‐point	
  phone	
  lines	
  
¢ An	
  internetwork	
  (internet)	
  is	
  an	
  interconnected	
  set	
  of	
  
networks	
  
§ The	
  Global	
  IP	
  Internet	
  (uppercase	
  “I”)	
  is	
  the	
  most	
  famous	
  example	
  
of	
  an	
  internet	
  (lowercase	
  “i”)	
  
¢ Let’s	
  see	
  how	
  an	
  internet	
  is	
  built	
  from	
  the	
  ground	
  up	
  
Carnegie Mellon
Lowest	
  Level:	
  Ethernet	
  Segment	
  
¢ Ethernet	
  segment	
  consists	
  of	
  a	
  collec8on	
  of	
  hosts	
  connected	
  
by	
  wires	
  (twisted	
  pairs)	
  to	
  a	
  hub	
  
¢ Spans	
  room	
  or	
  floor	
  in	
  a	
  building	
  
¢ Opera8on	
  
§ Each	
  Ethernet	
  adapter	
  has	
  a	
  unique	
  48-­‐bit	
  address	
  (MAC	
  address)	
  
§ E.g.,	
  00:16:ea:e3:54:e6	
  
§ Hosts	
  send	
  bits	
  to	
  any	
  other	
  host	
  in	
  chunks	
  called	
  frames	
  
§ Hub	
  slavishly	
  copies	
  each	
  bit	
  from	
  each	
  port	
  to	
  every	
  other	
  port	
  
§ Every	
  host	
  sees	
  every	
  bit	
  
§ Note:	
  Hubs	
  are	
  on	
  their	
  way	
  out.	
  Bridges	
  (switches,	
  routers)	
  became	
  cheap	
  enough	
  
to	
  replace	
  them	
  (means	
  no	
  more	
  broadcas2ng)	
  
host	
   host	
   host	
  
hub
	
  
100	
  Mb/s	
  
100	
  Mb/s	
  
port	
  
Carnegie Mellon
Next	
  Level:	
  Bridged	
  Ethernet	
  Segment	
  
¢ Spans	
  building	
  or	
  campus	
  
¢ Bridges	
  cleverly	
  learn	
  which	
  hosts	
  are	
  reachable	
  from	
  which	
  
ports	
  and	
  then	
  selec8vely	
  copy	
  frames	
  from	
  port	
  to	
  port	
  
host	
   host	
   host	
   host	
   host	
  
hub	
   hub	
  
bridge	
  
100	
  Mb/s	
   100	
  Mb/s	
  
host	
   host	
  
hub	
  
100	
  Mb/s	
   100	
  Mb/s	
  
1	
  Gb/s	
  
host	
   host	
   host	
  
bridge	
  
host	
  
host	
  
hub	
  
A	
   B	
  
C	
  
X	
  
Y	
  
Carnegie Mellon
Conceptual	
  View	
  of	
  LANs	
  
¢ For	
  simplicity,	
  hubs,	
  bridges,	
  and	
  wires	
  are	
  oZen	
  shown	
  as	
  a	
  
collec8on	
  of	
  hosts	
  a[ached	
  to	
  a	
  single	
  wire:	
  
host	
   host	
   host	
  
...	
  
Carnegie Mellon
Next	
  Level:	
  internets	
  
¢ Mul8ple	
  incompa8ble	
  LANs	
  can	
  be	
  physically	
  connected	
  by	
  
specialized	
  computers	
  called	
  routers	
  
¢ The	
  connected	
  networks	
  are	
  called	
  an	
  internet	
  
host	
   host	
   host	
  
...	
   host	
   host	
   host	
  
...	
  
WAN	
   WAN	
  
LAN	
  1	
  and	
  LAN	
  2	
  might	
  be	
  completely	
  different,	
  totally	
  incompaHble	
  	
  
(e.g.,	
  Ethernet	
  and	
  Wifi,	
  802.11*,	
  T1-­‐links,	
  DSL,	
  …)	
  
router	
   router	
   router	
  
LAN	
   LAN	
  
Carnegie Mellon
Logical	
  Structure	
  of	
  an	
  internet	
  
¢ Ad	
  hoc	
  interconnec8on	
  of	
  networks	
  
§ No	
  par2cular	
  topology	
  
§ Vastly	
  different	
  router	
  &	
  link	
  capaci2es	
  
¢ Send	
  packets	
  from	
  source	
  to	
  des8na8on	
  by	
  hopping	
  through	
  
networks	
  
§ Router	
  forms	
  bridge	
  from	
  one	
  network	
  to	
  another	
  
§ Different	
  packets	
  may	
  take	
  different	
  routes	
  
router	
  
router	
  
router	
  
router	
  
router	
  
router	
  
host	
  
host	
  
Carnegie Mellon
The	
  No8on	
  of	
  an	
  internet	
  Protocol	
  
¢ How	
  is	
  it	
  possible	
  to	
  send	
  bits	
  across	
  incompa8ble	
  LANs	
  
and	
  WANs?	
  
¢ Solu8on:	
  	
  
§ protocol	
  sobware	
  running	
  on	
  each	
  host	
  and	
  router	
  	
  
§ smooths	
  out	
  the	
  differences	
  between	
  the	
  different	
  networks	
  
¢ Implements	
  an	
  internet	
  protocol	
  (i.e.,	
  set	
  of	
  rules)	
  
§ governs	
  how	
  hosts	
  and	
  routers	
  should	
  cooperate	
  when	
  they	
  
transfer	
  data	
  from	
  network	
  to	
  network	
  
§ TCP/IP	
  is	
  the	
  protocol	
  for	
  the	
  global	
  IP	
  Internet	
  
Carnegie Mellon
What	
  Does	
  an	
  internet	
  Protocol	
  Do?	
  
¢ Provides	
  a	
  naming	
  scheme	
  
§ An	
  internet	
  protocol	
  defines	
  a	
  uniform	
  format	
  for	
  host	
  addresses	
  
§ Each	
  host	
  (and	
  router)	
  is	
  assigned	
  at	
  least	
  one	
  of	
  these	
  internet	
  
addresses	
  that	
  uniquely	
  iden2fies	
  it	
  
¢ Provides	
  a	
  delivery	
  mechanism	
  
§ An	
  internet	
  protocol	
  defines	
  a	
  standard	
  transfer	
  unit	
  (packet)	
  
§ Packet	
  consists	
  of	
  header	
  and	
  payload	
  
§ Header:	
  contains	
  info	
  such	
  as	
  packet	
  size,	
  source	
  and	
  des2na2on	
  
addresses	
  
§ Payload:	
  contains	
  data	
  bits	
  sent	
  from	
  source	
  host	
  
Carnegie Mellon
LAN2	
  
Transferring	
  Data	
  Over	
  an	
  internet	
  
protocol	
  
soZware	
  
client	
  
LAN1	
  
adapter	
  
Host	
  A	
  
LAN1	
  
data	
  
(1)	
  
data	
   PH	
   FH1	
  
(4)	
  
data	
   PH	
   FH2	
  
(6)	
  
data	
  
(8)	
  
data	
   PH	
   FH2	
   (5)	
  
LAN2	
  frame	
  
protocol	
  
soZware	
  
LAN1	
  
adapter	
  
LAN2	
  
adapter	
  
Router	
  
data	
   PH	
  
(3)	
   FH1	
  
data	
   PH	
   FH1	
  
(2)	
  
internet	
  packet	
  
LAN1	
  frame	
  
(7)	
   data	
   PH	
   FH2	
  
protocol	
  
soZware	
  
server	
  
LAN2	
  
adapter	
  
Host	
  B	
  
PH:	
  Internet	
  packet	
  header	
  
FH:	
  LAN	
  frame	
  header	
  
Carnegie Mellon
Other	
  Issues	
  
¢ We	
  are	
  glossing	
  over	
  a	
  number	
  of	
  important	
  ques8ons:	
  
§ What	
  if	
  different	
  networks	
  have	
  different	
  maximum	
  frame	
  sizes?	
  
(segmenta2on)	
  
§ How	
  do	
  routers	
  know	
  where	
  to	
  forward	
  frames?	
  
§ How	
  are	
  routers	
  informed	
  when	
  the	
  network	
  topology	
  changes?	
  
§ What	
  if	
  packets	
  get	
  lost?	
  
¢ These	
  (and	
  other)	
  ques8ons	
  are	
  addressed	
  by	
  the	
  area	
  of	
  	
  
systems	
  known	
  as	
  computer	
  networking	
  
Carnegie Mellon
If	
  you	
  are	
  interested	
  in	
  networking…	
  
15/18-­‐213	
  
15-­‐437
	
  
(Web	
  apps)
	
  
15-­‐440
	
  
(Dist.	
  Systems)
	
  
15-­‐441
	
  
(Networks)
	
  
15-­‐610
	
  
(Eng.	
  Dist	
  Systems)
	
  
18-­‐450
	
  
(Digital	
  Comm.)
	
  
18-­‐345
	
  
(Telecom.)
	
  
18-­‐756
	
  
(Packet	
  Switching)
	
  
18-­‐759
	
  
(Wireless	
  Networks)
	
  
18-­‐748
	
  
(WSN)
	
  
18-­‐842
	
  
(Dist.	
  System)
	
  
18-­‐487
	
  
(Intr.	
  Comp	
  Security)
	
  
18-­‐551
	
  
(Digital	
  Comm.	
  
+	
  Signals)
	
  
18-­‐731
	
  
(Network	
  Security)
	
  
Carnegie Mellon
Global	
  IP	
  Internet	
  
¢ Most	
  famous	
  example	
  of	
  an	
  internet	
  
¢ Based	
  on	
  the	
  TCP/IP	
  protocol	
  family	
  
§ IP	
  (Internet	
  protocol)	
  :	
  	
  
§ Provides	
  basic	
  naming	
  scheme	
  and	
  unreliable	
  delivery	
  capability	
  	
  
of	
  packets	
  (datagrams)	
  from	
  host-­‐to-­‐host	
  
§ UDP	
  (Unreliable	
  Datagram	
  Protocol)	
  
§ Uses	
  IP	
  to	
  provide	
  unreliable	
  datagram	
  delivery	
  from	
  	
  
process-­‐to-­‐process	
  
§ TCP	
  (Transmission	
  Control	
  Protocol)	
  
§ Uses	
  IP	
  to	
  provide	
  reliable	
  byte	
  streams	
  from	
  process-­‐to-­‐process	
  
over	
  connec2ons	
  
¢ Accessed	
  via	
  a	
  mix	
  of	
  Unix	
  file	
  I/O	
  and	
  func8ons	
  from	
  the	
  
sockets	
  interface	
  
Carnegie Mellon
Hardware	
  and	
  SoZware	
  Organiza8on	
  	
  
of	
  an	
  Internet	
  Applica8on	
  
TCP/IP	
  
Client	
  
Network	
  
adapter	
  
Global	
  IP	
  Internet	
  
TCP/IP	
  
Server	
  
Network	
  
adapter	
  
Internet	
  client	
  host	
   Internet	
  server	
  host	
  
Sockets	
  interface	
  
(system	
  calls)	
  
Hardware	
  interface	
  
(interrupts)	
  
User	
  code	
  
Kernel	
  code	
  
Hardware	
  
and	
  firmware	
  
Carnegie Mellon
Protocol	
  Layers	
  
TCP,	
  UDP
	
  
IP,	
  ICMP
	
  
Ethernet	
  MAC
	
  
Twisted	
  Pair	
  Wire
	
  
HTTP,	
  SSL,	
  NTP,	
  …
	
  
Carnegie Mellon
Basic	
  Internet	
  Components	
  
¢ Internet	
  backbone:	
  
§ collec2on	
  of	
  routers	
  (na2onwide	
  or	
  worldwide)	
  connected	
  by	
  high-­‐speed	
  
point-­‐to-­‐point	
  networks	
  
¢ Network	
  Access	
  Point	
  (NAP):	
  
§ router	
  that	
  connects	
  mul2ple	
  backbones	
  (oben	
  referred	
  to	
  as	
  peers)	
  
¢ Regional	
  networks:	
  
§ smaller	
  backbones	
  that	
  cover	
  smaller	
  geographical	
  areas	
  	
  
(e.g.,	
  ci2es	
  or	
  states)	
  	
  
¢ Point	
  of	
  presence	
  (POP):	
  
§ machine	
  that	
  is	
  connected	
  to	
  the	
  Internet	
  
¢ Internet	
  Service	
  Providers	
  (ISPs):	
  
§ provide	
  dial-­‐up	
  or	
  direct	
  access	
  to	
  POPs	
  
Carnegie Mellon
NAP-­‐Based	
  Internet	
  Architecture	
  
¢ NAPs	
  link	
  together	
  commercial	
  backbones	
  provided	
  by	
  
companies	
  such	
  as	
  AT&T	
  and	
  Worldcom	
  
¢ Currently	
  in	
  the	
  US	
  there	
  are	
  about	
  50	
  commercial	
  
backbones	
  connected	
  by	
  ~12	
  NAPs	
  (peering	
  points)	
  
¢ Similar	
  architecture	
  worldwide	
  connects	
  na8onal	
  networks	
  
to	
  the	
  Internet	
  
Carnegie Mellon
Internet	
  Connec8on	
  Hierarchy	
  
NAP	
   NAP	
  
Backbone	
   Backbone	
  
Backbone	
  
Backbone	
  
NAP	
  
POP	
  	
  
POP	
   POP	
  
Regional	
  net	
  	
  
POP	
  
POP	
   POP	
  
POP	
  
POP	
  
Small	
  Business	
  
Big	
  Business	
  
ISP	
  
POP	
  	
  
POP	
   POP	
   POP	
  
Pgh	
  employee	
  
Cable	
  
modem	
  
DC	
  employee	
  
POP	
  
T3	
  
T1	
  	
  
ISP	
  (for	
  individuals)	
  
POP	
  
DSL	
  
T1	
  
ColocaHon	
  
sites	
  
Private	
  
“peering”	
  
agreements	
  
between	
  
two	
  backbone	
  
companies	
  
o[en	
  bypass	
  
NAP	
  
Carnegie Mellon
Naming	
  and	
  Communica8ng	
  on	
  the	
  Internet	
  
¢ Original	
  Idea	
  
§ Every	
  node	
  on	
  Internet	
  would	
  have	
  unique	
  IP	
  address	
  
§ Everyone	
  would	
  be	
  able	
  to	
  talk	
  directly	
  to	
  everyone	
  
§ No	
  secrecy	
  or	
  authen2ca2on	
  
§ Messages	
  visible	
  to	
  routers	
  and	
  hosts	
  on	
  same	
  LAN	
  
§ Possible	
  to	
  forge	
  source	
  field	
  in	
  packet	
  header	
  
¢ Shortcomings	
  
§ There	
  aren't	
  enough	
  IP	
  addresses	
  available	
  
§ Don't	
  want	
  everyone	
  to	
  have	
  access	
  or	
  knowledge	
  of	
  all	
  other	
  hosts	
  
§ Security	
  issues	
  mandate	
  secrecy	
  &	
  authen2ca2on	
  
Carnegie Mellon
Evolu8on	
  of	
  Internet:	
  Naming	
  
¢ Dynamic	
  address	
  assignment	
  
§ Most	
  hosts	
  don't	
  need	
  to	
  have	
  known	
  address	
  
§ Only	
  those	
  func2oning	
  as	
  servers	
  
§ DHCP	
  (Dynamic	
  Host	
  Configura2on	
  Protocol)	
  
§ Local	
  ISP	
  assigns	
  address	
  for	
  temporary	
  use	
  
¢ Example:	
  
§ My	
  laptop	
  at	
  CMU	
  (wired	
  connec2on)	
  
§ IP	
  address	
  128.237.207.3	
  (corvina.ece.cmu.edu)	
  
§ Assigned	
  sta2cally	
  
§ My	
  laptop	
  at	
  home	
  
§ IP	
  address	
  192.168.1.5	
  
§ Only	
  valid	
  within	
  home	
  network	
  
Carnegie Mellon
Evolu8on	
  of	
  Internet:	
  Firewalls	
  
¢ Firewalls	
  
§ Hides	
  organiza2ons	
  nodes	
  from	
  rest	
  of	
  Internet	
  
§ Use	
  local	
  IP	
  addresses	
  within	
  organiza2on	
  
§ For	
  external	
  service,	
  provides	
  proxy	
  service	
  
1. Client	
  request:	
  src=10.2.2.2,	
  dest=216.99.99.99	
  
2. Firewall	
  forwards:	
  src=176.3.3.3,	
  dest=216.99.99.99	
  
3. Server	
  responds:	
  src=216.99.99.99,	
  dest=176.3.3.3	
  
4. Firewall	
  forwards	
  response:	
  src=216.99.99.99,	
  dest=10.2.2.2	
  
Corpora8on	
  X	
  
Firewall
	
  
Internet	
  
10.2.2.2	
  
1	
  
4	
   2	
  
3	
  
176.3.3.3	
  
216.99.99.99	
  
Carnegie Mellon
Virtual	
  Private	
  Networks	
  
¢ Suppor8ng	
  road	
  warrior	
  
§ Employee	
  working	
  remotely	
  with	
  assigned	
  IP	
  address	
  198.3.3.3	
  
§ Wants	
  to	
  appear	
  to	
  rest	
  of	
  corpora2on	
  as	
  if	
  working	
  internally	
  
§ From	
  address	
  10.6.6.6	
  
§ Gives	
  access	
  to	
  internal	
  services	
  (e.g.,	
  ability	
  to	
  send	
  mail)	
  
¢ Virtual	
  Private	
  Network	
  (VPN)	
  
§ Overlays	
  private	
  network	
  on	
  top	
  of	
  regular	
  Internet	
  
Corpora8on	
  X	
  
Internet	
  
10.x.x.x	
  
198.3.3.3	
  
Firewall
	
   10.6.6.6	
  
Carnegie Mellon
A	
  Programmer’s	
  View	
  of	
  the	
  Internet	
  
¢ Hosts	
  are	
  mapped	
  to	
  a	
  set	
  of	
  32-­‐bit	
  IP	
  addresses	
  
§ 128.2.203.179	
  
¢ The	
  set	
  of	
  IP	
  addresses	
  is	
  mapped	
  to	
  a	
  set	
  of	
  iden8fiers	
  
called	
  Internet	
  domain	
  names	
  
§ 128.2.203.179	
  is	
  mapped	
  to	
  	
  www.cs.cmu.edu	
  	
  
¢ A	
  process	
  on	
  one	
  Internet	
  host	
  can	
  communicate	
  with	
  a	
  
process	
  on	
  another	
  Internet	
  host	
  over	
  a	
  connecHon	
  
Carnegie Mellon
IP	
  Addresses	
  
¢ 32-­‐bit	
  IP	
  addresses	
  are	
  stored	
  in	
  an	
  IP	
  address	
  struct	
  
§ IP	
  addresses	
  are	
  always	
  stored	
  in	
  memory	
  in	
  network	
  byte	
  order	
  	
  
(big-­‐endian	
  byte	
  order)	
  
§ True	
  in	
  general	
  for	
  any	
  integer	
  transferred	
  in	
  a	
  packet	
  header	
  from	
  one	
  
machine	
  to	
  another.	
  
§ E.g.,	
  the	
  port	
  number	
  used	
  to	
  iden2fy	
  an	
  Internet	
  connec2on.	
  
/* Internet address structure */
struct in_addr {
unsigned int s_addr; /* network byte order (big-endian) */
};
Useful	
  network	
  byte-­‐order	
  conversion	
  func8ons	
  (“l”	
  =	
  32	
  bits,	
  “s”	
  =	
  16	
  bits)	
  
htonl:	
  convert	
  uint32_t	
  from	
  host	
  to	
  network	
  byte	
  order	
  
htons:	
  convert	
  uint16_t	
  from	
  host	
  to	
  network	
  byte	
  order	
  
ntohl:	
  convert	
  uint32_t	
  from	
  network	
  to	
  host	
  byte	
  order	
  
ntohs:	
  convert	
  uint16_t	
  from	
  network	
  to	
  host	
  byte	
  order	
  
Carnegie Mellon
Do[ed	
  Decimal	
  Nota8on	
  
¢ By	
  conven8on,	
  each	
  byte	
  in	
  a	
  32-­‐bit	
  IP	
  address	
  is	
  represented	
  
by	
  its	
  decimal	
  value	
  and	
  separated	
  by	
  a	
  period	
  
§ IP	
  address: 0x8002C2F2 = 128.2.194.242	
  
¢ Func8ons	
  for	
  conver8ng	
  between	
  binary	
  IP	
  addresses	
  and	
  
do[ed	
  decimal	
  strings:	
  
§ inet_aton:	
  	
  doned	
  decimal	
  string	
  →	
  IP	
  address	
  in	
  network	
  byte	
  order	
  
§ inet_ntoa:	
  	
  IP	
  address	
  in	
  network	
  byte	
  order	
  →	
  doned	
  decimal	
  string	
  
§ “n”	
  denotes	
  network	
  representa2on	
  
§ “a”	
  denotes	
  applica2on	
  representa2on	
  
Carnegie Mellon
IP	
  Address	
  Structure	
  
¢ IP	
  (V4)	
  Address	
  space	
  divided	
  into	
  classes:	
  
¢ Network	
  ID	
  Wri[en	
  in	
  form	
  w.x.y.z/n	
  
§ n	
  =	
  number	
  of	
  bits	
  in	
  host	
  address	
  
§ E.g.,	
  CMU	
  wrinen	
  as	
  128.2.0.0/16	
  
§ Class	
  B	
  address	
  
¢ Unrouted	
  (private)	
  IP	
  addresses:	
  
	
  10.0.0.0/8	
  	
  	
  172.16.0.0/12	
  	
  	
  192.168.0.0/16	
  
Class	
  A	
  
Class	
  B	
  
Class	
  C	
  
Class	
  D	
  
Class	
  E	
  
0	
  1	
  2	
  3	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  8	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  16	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  24	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  31	
  
0	
   Net	
  ID	
   Host	
  ID	
  
Host	
  ID	
  
Host	
  ID	
  
Net	
  ID	
  
Net	
  ID	
  
Mul2cast	
  address	
  
Reserved	
  for	
  experiments	
  
1	
  0	
  
1	
  0	
  
1	
  
1	
   1	
  0	
  
1	
  
1	
   1	
  1	
  
1	
  
Carnegie Mellon
Internet	
  Domain	
  Names	
  
.net	
   .edu	
   .gov	
   .com	
  
cmu	
   berkeley	
  
mit	
  
cs	
   ece	
  
greatwhite	
  
128.2.220.10	
  
ics
	
  
unnamed	
  root	
  
sp	
  
i386-­‐f7	
  
128.2.200.47	
  
amazon	
  
www	
  
2007.171.166.252	
  
First-­‐level	
  domain	
  names	
  
Second-­‐level	
  domain	
  names	
  
Third-­‐level	
  domain	
  names	
  
Carnegie Mellon
Domain	
  Naming	
  System	
  (DNS)	
  
¢ The	
  Internet	
  maintains	
  a	
  mapping	
  between	
  IP	
  addresses	
  and	
  
domain	
  names	
  in	
  a	
  huge	
  worldwide	
  distributed	
  database	
  called	
  
DNS	
  
§ Conceptually,	
  programmers	
  can	
  view	
  the	
  DNS	
  database	
  as	
  a	
  collec2on	
  of	
  
millions	
  of	
  host	
  entry	
  structures:	
  
¢ Func8ons	
  for	
  retrieving	
  host	
  entries	
  from	
  DNS:	
  
§ gethostbyname:	
  query	
  key	
  is	
  a	
  DNS	
  domain	
  name.	
  
§ gethostbyaddr:	
  query	
  key	
  is	
  an	
  IP	
  address.
/* DNS host entry structure */
struct hostent {
char *h_name; /* official domain name of host */
char **h_aliases; /* null-terminated array of domain names */
int h_addrtype; /* host address type (AF_INET) */
int h_length; /* length of an address, in bytes */
char **h_addr_list; /* null-terminated array of in_addr structs
*/
};
Carnegie Mellon
Proper8es	
  of	
  DNS	
  Host	
  Entries	
  
¢ Each	
  host	
  entry	
  is	
  an	
  equivalence	
  class	
  of	
  domain	
  names	
  and	
  	
  
IP	
  addresses	
  
¢ Each	
  host	
  has	
  a	
  locally	
  defined	
  domain	
  name	
  localhost	
  
which	
  always	
  maps	
  to	
  the	
  loopback	
  address	
  127.0.0.1	
  
¢ Different	
  kinds	
  of	
  mappings	
  are	
  possible:	
  
§ Simple	
  case:	
  one-­‐to-­‐one	
  mapping	
  between	
  domain	
  name	
  and	
  IP	
  address:	
  
§ greatwhile.ics.cs.cmu.edu	
  	
  	
  maps	
  to	
  128.2.220.10	
  
§ Mul2ple	
  domain	
  names	
  mapped	
  to	
  the	
  same	
  IP	
  address:	
  
§ eecs.mit.edu and cs.mit.edu both map to 18.62.1.6
§ Mul2ple	
  domain	
  names	
  mapped	
  to	
  mul2ple	
  IP	
  addresses:	
  
§ google.com maps	
  to	
  mul2ple	
  IP	
  addresses	
  
§ Some	
  valid	
  domain	
  names	
  don’t	
  map	
  to	
  any	
  IP	
  address:	
  
§ for	
  example:	
  ics.cs.cmu.edu
Carnegie Mellon
A	
  Program	
  That	
  Queries	
  DNS	
  
int main(int argc, char **argv) { /* argv[1] is a domain name */
char **pp; /* or dotted decimal IP addr */
struct in_addr addr;
struct hostent *hostp;
if (inet_aton(argv[1], &addr) != 0)
hostp = Gethostbyaddr((const char *)&addr, sizeof(addr),
AF_INET);
else
hostp = Gethostbyname(argv[1]);
printf("official hostname: %sn", hostp->h_name);
for (pp = hostp->h_aliases; *pp != NULL; pp++)
printf("alias: %sn", *pp);
for (pp = hostp->h_addr_list; *pp != NULL; pp++) {
addr.s_addr = ((struct in_addr *)*pp)->s_addr;
printf("address: %sn", inet_ntoa(addr));
}
}
Carnegie Mellon
Using	
  DNS	
  Program
linux> ./dns greatwhite.ics.cs.cmu.edu
official hostname: greatwhite.ics.cs.cmu.edu
address 128.2.220.10
linux> ./dns 128.2.220.11
official hostname: ANGELSHARK.ICS.CS.CMU.EDU
address: 128.2.220.11
linux> ./dns www.google.com
official hostname: www.l.google.com
alias: www.google.com
address: 72.14.204.99
address: 72.14.204.103
address: 72.14.204.104
address: 72.14.204.147
linux> dig +short -x 72.14.204.103
iad04s01-in-f103.1e100.net.
Carnegie Mellon
Querying	
  DIG
¢ Domain	
  Informa8on	
  Groper	
  (dig)	
  provides	
  a	
  scriptable	
  	
  
command	
  line	
  interface	
  to	
  DNS	
  
linux> dig +short greatwhite.ics.cs.cmu.edu
128.2.220.10
linux> dig +short -x 128.2.220.11
ANGELSHARK.ICS.CS.CMU.EDU.
linux> dig +short google.com
72.14.204.104
72.14.204.147
72.14.204.99
72.14.204.103
linux> dig +short -x 72.14.204.103
iad04s01-in-f103.1e100.net.
Carnegie Mellon
More	
  Exo8c	
  Features	
  of	
  DIG
¢ Provides	
  more	
  informa8on	
  than	
  you	
  would	
  ever	
  want	
  about	
  
DNS	
  
linux> dig www.phys.msu.ru a +trace
128.2.220.10
linux> dig www.google.com a +trace
Carnegie Mellon
Internet	
  Connec8ons	
  
¢ Clients	
  and	
  servers	
  communicate	
  by	
  sending	
  streams	
  of	
  bytes	
  
over	
  connecHons:	
  
§ Point-­‐to-­‐point,	
  full-­‐duplex	
  (2-­‐way	
  communica2on),	
  and	
  reliable.	
  
¢ A	
  socket	
  is	
  an	
  endpoint	
  of	
  a	
  connec8on	
  
§ Socket	
  address	
  is	
  an	
  IPaddress:port	
  	
  pair	
  
¢ A	
  port	
  is	
  a	
  16-­‐bit	
  integer	
  that	
  iden8fies	
  a	
  process:	
  
§ Ephemeral	
  port:	
  Assigned	
  automa2cally	
  on	
  client	
  when	
  client	
  makes	
  a	
  
connec2on	
  request	
  
§ Well-­‐known	
  port:	
  Associated	
  with	
  some	
  service	
  provided	
  by	
  a	
  server	
  
(e.g.,	
  port	
  80	
  is	
  associated	
  with	
  Web	
  servers)	
  
¢ A	
  connec8on	
  is	
  uniquely	
  iden8fied	
  by	
  the	
  socket	
  addresses	
  
of	
  its	
  endpoints	
  (socket	
  pair)	
  
§ (cliaddr:cliport, servaddr:servport)
Carnegie Mellon
Purng	
  it	
  all	
  Together:	
  	
  
Anatomy	
  of	
  an	
  Internet	
  Connec8on	
  
Connec8on	
  socket	
  pair	
  
(128.2.194.242:51213,	
  208.216.181.15:80)	
  
Server	
  
(port	
  80)	
  
Client	
  
Client	
  socket	
  address	
  
128.2.194.242:51213	
  
Server	
  socket	
  address
	
  
208.216.181.15:80
	
  
Client	
  host	
  address	
  
128.2.194.242	
  	

Server	
  host	
  address	
  
208.216.181.15	
  
Carnegie Mellon
Next	
  Time	
  
¢ How	
  to	
  use	
  	
  the	
  sockets	
  interface	
  to	
  establish	
  Internet	
  
connec8ons	
  between	
  clients	
  and	
  servers	
  	
  
¢ How	
  to	
  use	
  Unix	
  I/O	
  to	
  copy	
  data	
  from	
  one	
  host	
  to	
  
another	
  over	
  an	
  Internet	
  connec8on	
  

More Related Content

More from EidTahir

enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
EidTahir
 
x-introduction-to-project-management-110720031057-phpapp01 (1).pdf
x-introduction-to-project-management-110720031057-phpapp01 (1).pdfx-introduction-to-project-management-110720031057-phpapp01 (1).pdf
x-introduction-to-project-management-110720031057-phpapp01 (1).pdf
EidTahir
 
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdfintroductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
EidTahir
 

More from EidTahir (20)

009577496.pdf
009577496.pdf009577496.pdf
009577496.pdf
 
009478419.pdf
009478419.pdf009478419.pdf
009478419.pdf
 
009445185.pdf
009445185.pdf009445185.pdf
009445185.pdf
 
009705432.pdf
009705432.pdf009705432.pdf
009705432.pdf
 
009694598.pdf
009694598.pdf009694598.pdf
009694598.pdf
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
 
010118565.pdf
010118565.pdf010118565.pdf
010118565.pdf
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
005432796.pdf
005432796.pdf005432796.pdf
005432796.pdf
 
009586150.pdf
009586150.pdf009586150.pdf
009586150.pdf
 
009551323.pdf
009551323.pdf009551323.pdf
009551323.pdf
 
009723779.pdf
009723779.pdf009723779.pdf
009723779.pdf
 
005443266.pdf
005443266.pdf005443266.pdf
005443266.pdf
 
005237663.pdf
005237663.pdf005237663.pdf
005237663.pdf
 
005614116.pdf
005614116.pdf005614116.pdf
005614116.pdf
 
x-introduction-to-project-management-110720031057-phpapp01 (1).pdf
x-introduction-to-project-management-110720031057-phpapp01 (1).pdfx-introduction-to-project-management-110720031057-phpapp01 (1).pdf
x-introduction-to-project-management-110720031057-phpapp01 (1).pdf
 
025218911.pdf
025218911.pdf025218911.pdf
025218911.pdf
 
015001816.pdf
015001816.pdf015001816.pdf
015001816.pdf
 
IEC.ppt
IEC.pptIEC.ppt
IEC.ppt
 
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdfintroductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
 

20-internet.pdf

  • 1. Carnegie Mellon Internetworking       15-­‐213/18-­‐213:  Introduc2on  to  Computer  Systems   20th  Lecture,  April.  2,  2013   Instructors:     Anthony  Rowe,  Seth  Goldstein,  and  Gregory  Kesden  
  • 2. Carnegie Mellon A  Client-­‐Server  Transac8on   Client   process   Server   process   1.  Client  sends  request   2.  Server     handles   request   3.  Server  sends  response   4.  Client     handles   response   Resource   ¢ Most  network  applica8ons  are  based  on  the  client-­‐server   model:   § A  server  process  and  one  or  more  client  processes   § Server  manages  some  resource   § Server  provides  service  by  manipula2ng  resource  for  clients   § Server  ac2vated  by  request  from  client  (vending  machine  analogy)   Note:  clients  and  servers  are  processes  running  on  hosts     (can  be  the  same  or  different  hosts)  
  • 3. Carnegie Mellon Hardware  Organiza8on  of  a  Network  Host   main   memory   I/O     bridge   MI   ALU   register  file   CPU  chip   system  bus   memory  bus   disk     controller   graphics   adapter   USB   controller   mouse  keyboard   monitor   disk   I/O  bus   Expansion  slots   network   adapter   network  
  • 4. Carnegie Mellon Computer  Networks   ¢ A  network  is  a  hierarchical  system  of  boxes  and  wires  (or   not)  organized  by  geographical  proximity   § SAN  (System  Area  Network)  spans  cluster  or  machine  room   § Switched  Ethernet,  Quadrics  QSW,  …   § LAN  (Local  Area  Network)    spans  a  building  or  campus   § Ethernet  is  most  prominent  example   § WAN  (Wide  Area  Network)  spans  country  or  world   § Typically  high-­‐speed  point-­‐to-­‐point  phone  lines   ¢ An  internetwork  (internet)  is  an  interconnected  set  of   networks   § The  Global  IP  Internet  (uppercase  “I”)  is  the  most  famous  example   of  an  internet  (lowercase  “i”)   ¢ Let’s  see  how  an  internet  is  built  from  the  ground  up  
  • 5. Carnegie Mellon Lowest  Level:  Ethernet  Segment   ¢ Ethernet  segment  consists  of  a  collec8on  of  hosts  connected   by  wires  (twisted  pairs)  to  a  hub   ¢ Spans  room  or  floor  in  a  building   ¢ Opera8on   § Each  Ethernet  adapter  has  a  unique  48-­‐bit  address  (MAC  address)   § E.g.,  00:16:ea:e3:54:e6   § Hosts  send  bits  to  any  other  host  in  chunks  called  frames   § Hub  slavishly  copies  each  bit  from  each  port  to  every  other  port   § Every  host  sees  every  bit   § Note:  Hubs  are  on  their  way  out.  Bridges  (switches,  routers)  became  cheap  enough   to  replace  them  (means  no  more  broadcas2ng)   host   host   host   hub   100  Mb/s   100  Mb/s   port  
  • 6. Carnegie Mellon Next  Level:  Bridged  Ethernet  Segment   ¢ Spans  building  or  campus   ¢ Bridges  cleverly  learn  which  hosts  are  reachable  from  which   ports  and  then  selec8vely  copy  frames  from  port  to  port   host   host   host   host   host   hub   hub   bridge   100  Mb/s   100  Mb/s   host   host   hub   100  Mb/s   100  Mb/s   1  Gb/s   host   host   host   bridge   host   host   hub   A   B   C   X   Y  
  • 7. Carnegie Mellon Conceptual  View  of  LANs   ¢ For  simplicity,  hubs,  bridges,  and  wires  are  oZen  shown  as  a   collec8on  of  hosts  a[ached  to  a  single  wire:   host   host   host   ...  
  • 8. Carnegie Mellon Next  Level:  internets   ¢ Mul8ple  incompa8ble  LANs  can  be  physically  connected  by   specialized  computers  called  routers   ¢ The  connected  networks  are  called  an  internet   host   host   host   ...   host   host   host   ...   WAN   WAN   LAN  1  and  LAN  2  might  be  completely  different,  totally  incompaHble     (e.g.,  Ethernet  and  Wifi,  802.11*,  T1-­‐links,  DSL,  …)   router   router   router   LAN   LAN  
  • 9. Carnegie Mellon Logical  Structure  of  an  internet   ¢ Ad  hoc  interconnec8on  of  networks   § No  par2cular  topology   § Vastly  different  router  &  link  capaci2es   ¢ Send  packets  from  source  to  des8na8on  by  hopping  through   networks   § Router  forms  bridge  from  one  network  to  another   § Different  packets  may  take  different  routes   router   router   router   router   router   router   host   host  
  • 10. Carnegie Mellon The  No8on  of  an  internet  Protocol   ¢ How  is  it  possible  to  send  bits  across  incompa8ble  LANs   and  WANs?   ¢ Solu8on:     § protocol  sobware  running  on  each  host  and  router     § smooths  out  the  differences  between  the  different  networks   ¢ Implements  an  internet  protocol  (i.e.,  set  of  rules)   § governs  how  hosts  and  routers  should  cooperate  when  they   transfer  data  from  network  to  network   § TCP/IP  is  the  protocol  for  the  global  IP  Internet  
  • 11. Carnegie Mellon What  Does  an  internet  Protocol  Do?   ¢ Provides  a  naming  scheme   § An  internet  protocol  defines  a  uniform  format  for  host  addresses   § Each  host  (and  router)  is  assigned  at  least  one  of  these  internet   addresses  that  uniquely  iden2fies  it   ¢ Provides  a  delivery  mechanism   § An  internet  protocol  defines  a  standard  transfer  unit  (packet)   § Packet  consists  of  header  and  payload   § Header:  contains  info  such  as  packet  size,  source  and  des2na2on   addresses   § Payload:  contains  data  bits  sent  from  source  host  
  • 12. Carnegie Mellon LAN2   Transferring  Data  Over  an  internet   protocol   soZware   client   LAN1   adapter   Host  A   LAN1   data   (1)   data   PH   FH1   (4)   data   PH   FH2   (6)   data   (8)   data   PH   FH2   (5)   LAN2  frame   protocol   soZware   LAN1   adapter   LAN2   adapter   Router   data   PH   (3)   FH1   data   PH   FH1   (2)   internet  packet   LAN1  frame   (7)   data   PH   FH2   protocol   soZware   server   LAN2   adapter   Host  B   PH:  Internet  packet  header   FH:  LAN  frame  header  
  • 13. Carnegie Mellon Other  Issues   ¢ We  are  glossing  over  a  number  of  important  ques8ons:   § What  if  different  networks  have  different  maximum  frame  sizes?   (segmenta2on)   § How  do  routers  know  where  to  forward  frames?   § How  are  routers  informed  when  the  network  topology  changes?   § What  if  packets  get  lost?   ¢ These  (and  other)  ques8ons  are  addressed  by  the  area  of     systems  known  as  computer  networking  
  • 14. Carnegie Mellon If  you  are  interested  in  networking…   15/18-­‐213   15-­‐437   (Web  apps)   15-­‐440   (Dist.  Systems)   15-­‐441   (Networks)   15-­‐610   (Eng.  Dist  Systems)   18-­‐450   (Digital  Comm.)   18-­‐345   (Telecom.)   18-­‐756   (Packet  Switching)   18-­‐759   (Wireless  Networks)   18-­‐748   (WSN)   18-­‐842   (Dist.  System)   18-­‐487   (Intr.  Comp  Security)   18-­‐551   (Digital  Comm.   +  Signals)   18-­‐731   (Network  Security)  
  • 15. Carnegie Mellon Global  IP  Internet   ¢ Most  famous  example  of  an  internet   ¢ Based  on  the  TCP/IP  protocol  family   § IP  (Internet  protocol)  :     § Provides  basic  naming  scheme  and  unreliable  delivery  capability     of  packets  (datagrams)  from  host-­‐to-­‐host   § UDP  (Unreliable  Datagram  Protocol)   § Uses  IP  to  provide  unreliable  datagram  delivery  from     process-­‐to-­‐process   § TCP  (Transmission  Control  Protocol)   § Uses  IP  to  provide  reliable  byte  streams  from  process-­‐to-­‐process   over  connec2ons   ¢ Accessed  via  a  mix  of  Unix  file  I/O  and  func8ons  from  the   sockets  interface  
  • 16. Carnegie Mellon Hardware  and  SoZware  Organiza8on     of  an  Internet  Applica8on   TCP/IP   Client   Network   adapter   Global  IP  Internet   TCP/IP   Server   Network   adapter   Internet  client  host   Internet  server  host   Sockets  interface   (system  calls)   Hardware  interface   (interrupts)   User  code   Kernel  code   Hardware   and  firmware  
  • 17. Carnegie Mellon Protocol  Layers   TCP,  UDP   IP,  ICMP   Ethernet  MAC   Twisted  Pair  Wire   HTTP,  SSL,  NTP,  …  
  • 18. Carnegie Mellon Basic  Internet  Components   ¢ Internet  backbone:   § collec2on  of  routers  (na2onwide  or  worldwide)  connected  by  high-­‐speed   point-­‐to-­‐point  networks   ¢ Network  Access  Point  (NAP):   § router  that  connects  mul2ple  backbones  (oben  referred  to  as  peers)   ¢ Regional  networks:   § smaller  backbones  that  cover  smaller  geographical  areas     (e.g.,  ci2es  or  states)     ¢ Point  of  presence  (POP):   § machine  that  is  connected  to  the  Internet   ¢ Internet  Service  Providers  (ISPs):   § provide  dial-­‐up  or  direct  access  to  POPs  
  • 19. Carnegie Mellon NAP-­‐Based  Internet  Architecture   ¢ NAPs  link  together  commercial  backbones  provided  by   companies  such  as  AT&T  and  Worldcom   ¢ Currently  in  the  US  there  are  about  50  commercial   backbones  connected  by  ~12  NAPs  (peering  points)   ¢ Similar  architecture  worldwide  connects  na8onal  networks   to  the  Internet  
  • 20. Carnegie Mellon Internet  Connec8on  Hierarchy   NAP   NAP   Backbone   Backbone   Backbone   Backbone   NAP   POP     POP   POP   Regional  net     POP   POP   POP   POP   POP   Small  Business   Big  Business   ISP   POP     POP   POP   POP   Pgh  employee   Cable   modem   DC  employee   POP   T3   T1     ISP  (for  individuals)   POP   DSL   T1   ColocaHon   sites   Private   “peering”   agreements   between   two  backbone   companies   o[en  bypass   NAP  
  • 21. Carnegie Mellon Naming  and  Communica8ng  on  the  Internet   ¢ Original  Idea   § Every  node  on  Internet  would  have  unique  IP  address   § Everyone  would  be  able  to  talk  directly  to  everyone   § No  secrecy  or  authen2ca2on   § Messages  visible  to  routers  and  hosts  on  same  LAN   § Possible  to  forge  source  field  in  packet  header   ¢ Shortcomings   § There  aren't  enough  IP  addresses  available   § Don't  want  everyone  to  have  access  or  knowledge  of  all  other  hosts   § Security  issues  mandate  secrecy  &  authen2ca2on  
  • 22. Carnegie Mellon Evolu8on  of  Internet:  Naming   ¢ Dynamic  address  assignment   § Most  hosts  don't  need  to  have  known  address   § Only  those  func2oning  as  servers   § DHCP  (Dynamic  Host  Configura2on  Protocol)   § Local  ISP  assigns  address  for  temporary  use   ¢ Example:   § My  laptop  at  CMU  (wired  connec2on)   § IP  address  128.237.207.3  (corvina.ece.cmu.edu)   § Assigned  sta2cally   § My  laptop  at  home   § IP  address  192.168.1.5   § Only  valid  within  home  network  
  • 23. Carnegie Mellon Evolu8on  of  Internet:  Firewalls   ¢ Firewalls   § Hides  organiza2ons  nodes  from  rest  of  Internet   § Use  local  IP  addresses  within  organiza2on   § For  external  service,  provides  proxy  service   1. Client  request:  src=10.2.2.2,  dest=216.99.99.99   2. Firewall  forwards:  src=176.3.3.3,  dest=216.99.99.99   3. Server  responds:  src=216.99.99.99,  dest=176.3.3.3   4. Firewall  forwards  response:  src=216.99.99.99,  dest=10.2.2.2   Corpora8on  X   Firewall   Internet   10.2.2.2   1   4   2   3   176.3.3.3   216.99.99.99  
  • 24. Carnegie Mellon Virtual  Private  Networks   ¢ Suppor8ng  road  warrior   § Employee  working  remotely  with  assigned  IP  address  198.3.3.3   § Wants  to  appear  to  rest  of  corpora2on  as  if  working  internally   § From  address  10.6.6.6   § Gives  access  to  internal  services  (e.g.,  ability  to  send  mail)   ¢ Virtual  Private  Network  (VPN)   § Overlays  private  network  on  top  of  regular  Internet   Corpora8on  X   Internet   10.x.x.x   198.3.3.3   Firewall   10.6.6.6  
  • 25. Carnegie Mellon A  Programmer’s  View  of  the  Internet   ¢ Hosts  are  mapped  to  a  set  of  32-­‐bit  IP  addresses   § 128.2.203.179   ¢ The  set  of  IP  addresses  is  mapped  to  a  set  of  iden8fiers   called  Internet  domain  names   § 128.2.203.179  is  mapped  to    www.cs.cmu.edu     ¢ A  process  on  one  Internet  host  can  communicate  with  a   process  on  another  Internet  host  over  a  connecHon  
  • 26. Carnegie Mellon IP  Addresses   ¢ 32-­‐bit  IP  addresses  are  stored  in  an  IP  address  struct   § IP  addresses  are  always  stored  in  memory  in  network  byte  order     (big-­‐endian  byte  order)   § True  in  general  for  any  integer  transferred  in  a  packet  header  from  one   machine  to  another.   § E.g.,  the  port  number  used  to  iden2fy  an  Internet  connec2on.   /* Internet address structure */ struct in_addr { unsigned int s_addr; /* network byte order (big-endian) */ }; Useful  network  byte-­‐order  conversion  func8ons  (“l”  =  32  bits,  “s”  =  16  bits)   htonl:  convert  uint32_t  from  host  to  network  byte  order   htons:  convert  uint16_t  from  host  to  network  byte  order   ntohl:  convert  uint32_t  from  network  to  host  byte  order   ntohs:  convert  uint16_t  from  network  to  host  byte  order  
  • 27. Carnegie Mellon Do[ed  Decimal  Nota8on   ¢ By  conven8on,  each  byte  in  a  32-­‐bit  IP  address  is  represented   by  its  decimal  value  and  separated  by  a  period   § IP  address: 0x8002C2F2 = 128.2.194.242   ¢ Func8ons  for  conver8ng  between  binary  IP  addresses  and   do[ed  decimal  strings:   § inet_aton:    doned  decimal  string  →  IP  address  in  network  byte  order   § inet_ntoa:    IP  address  in  network  byte  order  →  doned  decimal  string   § “n”  denotes  network  representa2on   § “a”  denotes  applica2on  representa2on  
  • 28. Carnegie Mellon IP  Address  Structure   ¢ IP  (V4)  Address  space  divided  into  classes:   ¢ Network  ID  Wri[en  in  form  w.x.y.z/n   § n  =  number  of  bits  in  host  address   § E.g.,  CMU  wrinen  as  128.2.0.0/16   § Class  B  address   ¢ Unrouted  (private)  IP  addresses:    10.0.0.0/8      172.16.0.0/12      192.168.0.0/16   Class  A   Class  B   Class  C   Class  D   Class  E   0  1  2  3                    8                                      16                                      24                                        31   0   Net  ID   Host  ID   Host  ID   Host  ID   Net  ID   Net  ID   Mul2cast  address   Reserved  for  experiments   1  0   1  0   1   1   1  0   1   1   1  1   1  
  • 29. Carnegie Mellon Internet  Domain  Names   .net   .edu   .gov   .com   cmu   berkeley   mit   cs   ece   greatwhite   128.2.220.10   ics   unnamed  root   sp   i386-­‐f7   128.2.200.47   amazon   www   2007.171.166.252   First-­‐level  domain  names   Second-­‐level  domain  names   Third-­‐level  domain  names  
  • 30. Carnegie Mellon Domain  Naming  System  (DNS)   ¢ The  Internet  maintains  a  mapping  between  IP  addresses  and   domain  names  in  a  huge  worldwide  distributed  database  called   DNS   § Conceptually,  programmers  can  view  the  DNS  database  as  a  collec2on  of   millions  of  host  entry  structures:   ¢ Func8ons  for  retrieving  host  entries  from  DNS:   § gethostbyname:  query  key  is  a  DNS  domain  name.   § gethostbyaddr:  query  key  is  an  IP  address. /* DNS host entry structure */ struct hostent { char *h_name; /* official domain name of host */ char **h_aliases; /* null-terminated array of domain names */ int h_addrtype; /* host address type (AF_INET) */ int h_length; /* length of an address, in bytes */ char **h_addr_list; /* null-terminated array of in_addr structs */ };
  • 31. Carnegie Mellon Proper8es  of  DNS  Host  Entries   ¢ Each  host  entry  is  an  equivalence  class  of  domain  names  and     IP  addresses   ¢ Each  host  has  a  locally  defined  domain  name  localhost   which  always  maps  to  the  loopback  address  127.0.0.1   ¢ Different  kinds  of  mappings  are  possible:   § Simple  case:  one-­‐to-­‐one  mapping  between  domain  name  and  IP  address:   § greatwhile.ics.cs.cmu.edu      maps  to  128.2.220.10   § Mul2ple  domain  names  mapped  to  the  same  IP  address:   § eecs.mit.edu and cs.mit.edu both map to 18.62.1.6 § Mul2ple  domain  names  mapped  to  mul2ple  IP  addresses:   § google.com maps  to  mul2ple  IP  addresses   § Some  valid  domain  names  don’t  map  to  any  IP  address:   § for  example:  ics.cs.cmu.edu
  • 32. Carnegie Mellon A  Program  That  Queries  DNS   int main(int argc, char **argv) { /* argv[1] is a domain name */ char **pp; /* or dotted decimal IP addr */ struct in_addr addr; struct hostent *hostp; if (inet_aton(argv[1], &addr) != 0) hostp = Gethostbyaddr((const char *)&addr, sizeof(addr), AF_INET); else hostp = Gethostbyname(argv[1]); printf("official hostname: %sn", hostp->h_name); for (pp = hostp->h_aliases; *pp != NULL; pp++) printf("alias: %sn", *pp); for (pp = hostp->h_addr_list; *pp != NULL; pp++) { addr.s_addr = ((struct in_addr *)*pp)->s_addr; printf("address: %sn", inet_ntoa(addr)); } }
  • 33. Carnegie Mellon Using  DNS  Program linux> ./dns greatwhite.ics.cs.cmu.edu official hostname: greatwhite.ics.cs.cmu.edu address 128.2.220.10 linux> ./dns 128.2.220.11 official hostname: ANGELSHARK.ICS.CS.CMU.EDU address: 128.2.220.11 linux> ./dns www.google.com official hostname: www.l.google.com alias: www.google.com address: 72.14.204.99 address: 72.14.204.103 address: 72.14.204.104 address: 72.14.204.147 linux> dig +short -x 72.14.204.103 iad04s01-in-f103.1e100.net.
  • 34. Carnegie Mellon Querying  DIG ¢ Domain  Informa8on  Groper  (dig)  provides  a  scriptable     command  line  interface  to  DNS   linux> dig +short greatwhite.ics.cs.cmu.edu 128.2.220.10 linux> dig +short -x 128.2.220.11 ANGELSHARK.ICS.CS.CMU.EDU. linux> dig +short google.com 72.14.204.104 72.14.204.147 72.14.204.99 72.14.204.103 linux> dig +short -x 72.14.204.103 iad04s01-in-f103.1e100.net.
  • 35. Carnegie Mellon More  Exo8c  Features  of  DIG ¢ Provides  more  informa8on  than  you  would  ever  want  about   DNS   linux> dig www.phys.msu.ru a +trace 128.2.220.10 linux> dig www.google.com a +trace
  • 36. Carnegie Mellon Internet  Connec8ons   ¢ Clients  and  servers  communicate  by  sending  streams  of  bytes   over  connecHons:   § Point-­‐to-­‐point,  full-­‐duplex  (2-­‐way  communica2on),  and  reliable.   ¢ A  socket  is  an  endpoint  of  a  connec8on   § Socket  address  is  an  IPaddress:port    pair   ¢ A  port  is  a  16-­‐bit  integer  that  iden8fies  a  process:   § Ephemeral  port:  Assigned  automa2cally  on  client  when  client  makes  a   connec2on  request   § Well-­‐known  port:  Associated  with  some  service  provided  by  a  server   (e.g.,  port  80  is  associated  with  Web  servers)   ¢ A  connec8on  is  uniquely  iden8fied  by  the  socket  addresses   of  its  endpoints  (socket  pair)   § (cliaddr:cliport, servaddr:servport)
  • 37. Carnegie Mellon Purng  it  all  Together:     Anatomy  of  an  Internet  Connec8on   Connec8on  socket  pair   (128.2.194.242:51213,  208.216.181.15:80)   Server   (port  80)   Client   Client  socket  address   128.2.194.242:51213   Server  socket  address   208.216.181.15:80   Client  host  address   128.2.194.242   Server  host  address   208.216.181.15  
  • 38. Carnegie Mellon Next  Time   ¢ How  to  use    the  sockets  interface  to  establish  Internet   connec8ons  between  clients  and  servers     ¢ How  to  use  Unix  I/O  to  copy  data  from  one  host  to   another  over  an  Internet  connec8on