• 沒有找到結果。

A  Client-­‐Server  Transac8on  

N/A
N/A
Protected

Academic year: 2022

Share "A  Client-­‐Server  Transac8on  "

Copied!
33
0
0

加載中.... (立即查看全文)

全文

(1)

Internetworking  

 

15-­‐213  /  18-­‐213:  Introduc2on  to  Computer  Systems

 

20th  Lecture,  Nov.  5,  2013   Instructors:    

Randy  Bryant,  Dave  O’Hallaron,  and  Greg  Kesden  

(2)

2

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)

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)

4

Computer  Networks  

¢ 

A  network  is  a  hierarchical  system  of  boxes  and  wires   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)

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  

host   host   host   hub   100  Mb/s   100  Mb/s  

port  

(6)

6

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   100  Mb/s   bridge   100  Mb/s   hub  

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)

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)

8

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,  Fibre  Channel,  802.11*,  T1-­‐links,  DSL,  …)  

router   router   router  

LAN  1   LAN    2  

(9)

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  

router  

router  

router   router  

router   router  

host   host  

(10)

10

The  No8on  of  an  internet  Protocol  

¢ 

How  is  it  possible  to  send  bits  across  incompa8ble  LANs   and  WANs?  

¢ 

Solu8on:    

§ 

protocol  sodware  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)

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)

12

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)

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)

14

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  

(15)

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  

(16)

16

Basic  Internet  Components  

¢ 

Internet  backbone:  

§ 

collec2on  of  routers  (na2onwide  or  worldwide)  connected  by  high-­‐speed   point-­‐to-­‐point  networks  

¢ 

Internet  Exchange  Points  (IXP):  

§ 

router  that  connects  mul2ple  backbones  (oden  referred  to  as  peers)  

§ 

Also  called  Network  Access  Points  (NAP)  

¢ 

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  

(17)

Internet  Connec8on  Hierarchy  

IXP   IXP  

Backbone   Backbone   Backbone   Backbone   IXP  

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  

IXP  

(18)

18

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  

(19)

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  

(20)

20

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:    domed  decimal  string  →  IP  address  in  network  byte  order  

§ 

inet_ntoa:    IP  address  in  network  byte  order  →  domed  decimal  string  

§ 

“n”  denotes  network  representa2on  

§ 

“a”  denotes  applica2on  representa2on  

(21)

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  wrimen  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  

(22)

22

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  

(23)

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

*/

};

(24)

24

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

(25)

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: %s\n", hostp->h_name);

for (pp = hostp->h_aliases; *pp != NULL; pp++) printf("alias: %s\n", *pp);

for (pp = hostp->h_addr_list; *pp != NULL; pp++) { addr.s_addr = ((struct in_addr *)*pp)->s_addr;

printf("address: %s\n", inet_ntoa(addr));

} }

(26)

26

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.google.com address: 74.125.131.103

address: 74.125.131.104 address: 74.125.131.105 address: 74.125.131.106 address: 74.125.131.147 address: 74.125.131.99

(27)

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

(28)

28

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)

(29)

Pumng  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  

(30)

30

Evolu8on  of  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  

(31)

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:  

§ 

Laptop  at  CMU  (wired  connec2on)  

§  IP  address  128.2.213.29  (bryant-tp4.cs.cmu.edu)  

§  Assigned  sta2cally  

§ 

Laptop  at  home  

§  IP  address  192.168.1.5  

§  Only  valid  within  home  network  

(32)

32

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  

(33)

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  

參考文獻

相關文件

例如 : http ( 網頁伺服器所用的協定 ) 定義了 client 如何向 server request 網頁及 server 如何 將網頁及其中的各種內容回傳給 client 。. 提供服務給 application layer

1) Ensure that you have received a password from the Indicators Section. 2) Ensure that the system clock of the ESDA server is properly set up. 3) Ensure that the ESDA server

Note that if the server-side system allows conflicting transaction instances to commit in an order different from their serializability order, then each client-side system must apply

However, if the EAP Identity does match a client Identifier and the CredentialState is Accepted the EAP server proceeds with the authentication process and verifies the credential

This option is designed to provide students an understanding of the basic concepts network services and client-server communications, and the knowledge and skills

Multiple images from a sequence tracked with 6DOF SLAM on a client, while a localization server provides the global pose used to overlay the building outlines with transparent

The client’s web browser sends a request to the server for a web page that runs a Java servlet.

MASS::lda(Y~.,data) Linear discriminant analysis MASS::qda(Y~.,data) Quadratic Discriminant Analysis class::knn(X,X,Y,k,prob) k-Nearest Neighbour(X 為變數資料;Y 為分類)