Computer Networking:ATop Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Computer Communications & Networks CSNC-2413 • N/W Architecture & Application Development Lec: 3
Network Architecture  Network communications - a complex task  To deal with this complexity… SIMPLIFY  comm task divided into modules  modules arranged in layers  each layer performs a subset of comm function  Forms a Network Architecture • multiple layers • each layer has one/more Protocols • protocols perform specific comm tasks • provide/obtain services to/from higher/lower layer 2
Example of a layered network system Network Architecture Network Architecture A structured set of protocols to implement the communications function application transport network link physical 3
Internet protocol stack  Application: support applications (network API) - FTP, SMTP, HTTP, DNS, DHCP  Transport: process-process data transfer (ports) - TCP (reliable), UDP (unreliable)  Network: global addressing (IP addr), routing of pkts from src to dest - IPv4, IPv6  Link: data transfer between neighboring network elements - Ethernet, WiFi (802.11), 3G/4G, PPP  Physical: bits “on the wire” application transport network link physical 4
TCP/IP Model  Some of the protocols & networks in TCP/IP protocol stack… 5 Ethernet WiFi PPP 3G/4G HTTP FTP SMTP DNS
Encapsulation 6  Data generated by Appl layer  When being sent, each layer appends its header  When being received, each layer removes its header Principle of Encapsulation & Decapsulation
Why Layered Architecture  Network Architecture - layered architecture  provides modularity • changes in one layer do not require changes in other layers • simplifies system maintenance & upgradation  facilitates process of network evolution • allows to change/improve underlying technologies, with increase in application demands 7
Some network apps  e-mail  web surfing  search engine  P2P file sharing  text messaging  social networking  remote login  streaming stored video (YouTube, Netflix)  IP radio,TV  multi-user N/W games  voice over IP (Skype, viber)  real-time video conferencing  ….. 8 How these appls are created…
Creating network apps Write appl programs to run only on end systems  appl comm over N/W  web browser comm with server No need to write software for network-core devices…  network-core devices function at lower layers confining appls to end systems allows rapid appl development & deployment application transport network data link physical application transport network data link physical application transport network data link physical 9
Application architectures Possible structures of applications:  client-server  peer-to-peer (P2P) 10
Client-server architecture Servers  always-on host  permanent addr (IP & port)  rely on fixed infra-structure  data centers for scaling Clients  request services from servers  intermittent host connections  dynamic addr (IP & port)  no direct comm with each other client/server 11
P2P architecture  NO always-on server  arbitrary end systems comm directly  peers request services from other peers, & also provide services  Self Scalability  new peers bring new service demands  also add new service capacity  Complex Management  peers connect intermittently  change IP addrs  min, or no reliance, on infra-structure peer-peer 12
Architectural Challenges Client Server  Infra-structure intensive  Cost of server hardware, software & access network B/W  System management needs/costs  May become a bottleneck P2P  Not ISP friendly; require high upload B/W  Security issues  Incentives; users need to volunteer storage, bandwidth & computation resource 13
How do Appls comm  Appls within same host  processes usually comm using IPC (Inter Process Comm)  use Pipes, FIFOs, shared memory 14 Applications are processes running on hosts…  Appls in distant hosts  processes comm by exchanging messages  Use sockets, RPC
 Remote processes comm thru sockets… Socket : “software interface between process & N/W”  Process sends/receives msgs to/from its socket  process reads/writes the socket to receive/send msgs 15 Sockets
Process Address  to receive msgs, process must have identifier  host device has unique IP address (32 bits) but many processes may run on same host  need another level of identifier – Port No (16 bits)  identifier includes both IP address & port number associated with a process on a host…  Socket address IP addr + Port No 16 to send HTTP msg to web server gaia.cs.umass.edu… IP address: 128.119.245.12 port number: 80
Socket Programming  Allows network applications to communicate across an Internet  Socket API mainly provides Transport layer service interface • Stream-sockets for TCP • Datagram-sockets for UDP  Based on client/server architecture Socket Interface TCP UDP IP Network Access 17
Client/Server functions  Client / Server may run on same or different hosts  Client makes Request…  sends message to server to perform a task  Server Responds…  performs task & sends back reply Client process Server process 1. Client sends request 2. Server handles request 3. Server sends response 4. Client handles response Resource 18
Servers / Services  Servers : long-running application processes (daemons)  typically created at boot-time by OS  run continuously in background  web server, or mail server  Server waits for requests on a well-known port associated with a particular service  Port 7: echo server  Port 23: telnet server  Port 25: mail server  Port 53: DNS server  Port 80: HTTP server /etc/services provides list of available services (Linux machine) 19
Clients  Client – appl launched to access some service, mostly on remote system  web browser, ftp client, telnet client, ssh client  Client does not need well known port  usually assigned ephemeral port by kernel  can also be selected by application Server - need not know client location Client - needs to know server location (port + IP address) 20
Socket  Socket is an endpoint of bidirectional comm…  identified by socket descriptor  Clients & Servers comm with each other thru sockets  open a socket  write data to socket  read data from socket App socket 3 2 1 Dest. 21
Socket Address  The pair IP Address + Port -– makes up a “socket-address” Server Client Client socket address 128.2.194.242:3479 Server socket address 208.216.181.15:53 Client IP address 128.2.194.242 Server IP address 208.216.181.15 3479 is an ephemeral port allocated by kernel (unix) 53 is a well-known port associated with DNS servers 22
TCP & UDP Ports  TCP and UDP port numbers ranges:  values 0 – 216 (65,536 ports)  Internet Assigned Numbers Authority (IANA)  Well Known Ports (0 - 1023)  used by system processes for well known services  HTTP: 80, E-mail: 25, DNS: 53  Registered Ports (1024 - 49151)  used by vendors for common applications  Web Proxy: 8080, IPSec: 1293, Kaaza: 1214  Dynamic or Ephemeral Ports (49152 - 65535)  used by clients  automatically allocated by kernel on temporary basis 23

Lecture 3 computer communications and networks

  • 1.
    Computer Networking:ATop Down Approach 6th edition Jim Kurose,Keith Ross Addison-Wesley March 2012 Computer Communications & Networks CSNC-2413 • N/W Architecture & Application Development Lec: 3
  • 2.
    Network Architecture  Networkcommunications - a complex task  To deal with this complexity… SIMPLIFY  comm task divided into modules  modules arranged in layers  each layer performs a subset of comm function  Forms a Network Architecture • multiple layers • each layer has one/more Protocols • protocols perform specific comm tasks • provide/obtain services to/from higher/lower layer 2
  • 3.
    Example of alayered network system Network Architecture Network Architecture A structured set of protocols to implement the communications function application transport network link physical 3
  • 4.
    Internet protocol stack Application: support applications (network API) - FTP, SMTP, HTTP, DNS, DHCP  Transport: process-process data transfer (ports) - TCP (reliable), UDP (unreliable)  Network: global addressing (IP addr), routing of pkts from src to dest - IPv4, IPv6  Link: data transfer between neighboring network elements - Ethernet, WiFi (802.11), 3G/4G, PPP  Physical: bits “on the wire” application transport network link physical 4
  • 5.
    TCP/IP Model  Someof the protocols & networks in TCP/IP protocol stack… 5 Ethernet WiFi PPP 3G/4G HTTP FTP SMTP DNS
  • 6.
    Encapsulation 6  Data generatedby Appl layer  When being sent, each layer appends its header  When being received, each layer removes its header Principle of Encapsulation & Decapsulation
  • 7.
    Why Layered Architecture Network Architecture - layered architecture  provides modularity • changes in one layer do not require changes in other layers • simplifies system maintenance & upgradation  facilitates process of network evolution • allows to change/improve underlying technologies, with increase in application demands 7
  • 8.
    Some network apps e-mail  web surfing  search engine  P2P file sharing  text messaging  social networking  remote login  streaming stored video (YouTube, Netflix)  IP radio,TV  multi-user N/W games  voice over IP (Skype, viber)  real-time video conferencing  ….. 8 How these appls are created…
  • 9.
    Creating network apps Writeappl programs to run only on end systems  appl comm over N/W  web browser comm with server No need to write software for network-core devices…  network-core devices function at lower layers confining appls to end systems allows rapid appl development & deployment application transport network data link physical application transport network data link physical application transport network data link physical 9
  • 10.
    Application architectures Possible structuresof applications:  client-server  peer-to-peer (P2P) 10
  • 11.
    Client-server architecture Servers  always-onhost  permanent addr (IP & port)  rely on fixed infra-structure  data centers for scaling Clients  request services from servers  intermittent host connections  dynamic addr (IP & port)  no direct comm with each other client/server 11
  • 12.
    P2P architecture  NOalways-on server  arbitrary end systems comm directly  peers request services from other peers, & also provide services  Self Scalability  new peers bring new service demands  also add new service capacity  Complex Management  peers connect intermittently  change IP addrs  min, or no reliance, on infra-structure peer-peer 12
  • 13.
    Architectural Challenges Client Server Infra-structure intensive  Cost of server hardware, software & access network B/W  System management needs/costs  May become a bottleneck P2P  Not ISP friendly; require high upload B/W  Security issues  Incentives; users need to volunteer storage, bandwidth & computation resource 13
  • 14.
    How do Applscomm  Appls within same host  processes usually comm using IPC (Inter Process Comm)  use Pipes, FIFOs, shared memory 14 Applications are processes running on hosts…  Appls in distant hosts  processes comm by exchanging messages  Use sockets, RPC
  • 15.
     Remote processescomm thru sockets… Socket : “software interface between process & N/W”  Process sends/receives msgs to/from its socket  process reads/writes the socket to receive/send msgs 15 Sockets
  • 16.
    Process Address  toreceive msgs, process must have identifier  host device has unique IP address (32 bits) but many processes may run on same host  need another level of identifier – Port No (16 bits)  identifier includes both IP address & port number associated with a process on a host…  Socket address IP addr + Port No 16 to send HTTP msg to web server gaia.cs.umass.edu… IP address: 128.119.245.12 port number: 80
  • 17.
    Socket Programming  Allowsnetwork applications to communicate across an Internet  Socket API mainly provides Transport layer service interface • Stream-sockets for TCP • Datagram-sockets for UDP  Based on client/server architecture Socket Interface TCP UDP IP Network Access 17
  • 18.
    Client/Server functions  Client/ Server may run on same or different hosts  Client makes Request…  sends message to server to perform a task  Server Responds…  performs task & sends back reply Client process Server process 1. Client sends request 2. Server handles request 3. Server sends response 4. Client handles response Resource 18
  • 19.
    Servers / Services Servers : long-running application processes (daemons)  typically created at boot-time by OS  run continuously in background  web server, or mail server  Server waits for requests on a well-known port associated with a particular service  Port 7: echo server  Port 23: telnet server  Port 25: mail server  Port 53: DNS server  Port 80: HTTP server /etc/services provides list of available services (Linux machine) 19
  • 20.
    Clients  Client –appl launched to access some service, mostly on remote system  web browser, ftp client, telnet client, ssh client  Client does not need well known port  usually assigned ephemeral port by kernel  can also be selected by application Server - need not know client location Client - needs to know server location (port + IP address) 20
  • 21.
    Socket  Socket isan endpoint of bidirectional comm…  identified by socket descriptor  Clients & Servers comm with each other thru sockets  open a socket  write data to socket  read data from socket App socket 3 2 1 Dest. 21
  • 22.
    Socket Address  Thepair IP Address + Port -– makes up a “socket-address” Server Client Client socket address 128.2.194.242:3479 Server socket address 208.216.181.15:53 Client IP address 128.2.194.242 Server IP address 208.216.181.15 3479 is an ephemeral port allocated by kernel (unix) 53 is a well-known port associated with DNS servers 22
  • 23.
    TCP & UDPPorts  TCP and UDP port numbers ranges:  values 0 – 216 (65,536 ports)  Internet Assigned Numbers Authority (IANA)  Well Known Ports (0 - 1023)  used by system processes for well known services  HTTP: 80, E-mail: 25, DNS: 53  Registered Ports (1024 - 49151)  used by vendors for common applications  Web Proxy: 8080, IPSec: 1293, Kaaza: 1214  Dynamic or Ephemeral Ports (49152 - 65535)  used by clients  automatically allocated by kernel on temporary basis 23

Editor's Notes

  • #2 The long-distance carrier system provided in the United States and throughout the world was designed to transmit voice signals over high-capacity transmission links, such as optical fiber, coaxial cable, and microwave. Part of the evolution of these telecommunications networks to digital technology has been the adoption of synchronous TDM transmission structures. In the United States, AT&T developed a hierarchy of TDM structures of various capacities; this structure is used in Canada and Japan as well as the United States. A similar, but unfortunately not identical, hierarchy has been adopted internationally under the auspices of ITU-T. The basis of the TDM hierarchy (in North America and Japan) is the DS-1 transmission format. The same DS-1 format is used to provide both multiplexed voice and digital data services. Above the DS-1 data rate of 1.544 Mbps, higher-level multiplexing is achieved by interleaving bits from DS-1 inputs. For example, the DS-2 transmission system combines four DS-1 inputs into a 6.312-Mbps stream. Data from the four sources are interleaved 12 bits at a time. Note that 1.544  4 = 6.176 Mbps. The remaining capacity is used for framing and control bits.
  • #7 The long-distance carrier system provided in the United States and throughout the world was designed to transmit voice signals over high-capacity transmission links, such as optical fiber, coaxial cable, and microwave. Part of the evolution of these telecommunications networks to digital technology has been the adoption of synchronous TDM transmission structures. In the United States, AT&T developed a hierarchy of TDM structures of various capacities; this structure is used in Canada and Japan as well as the United States. A similar, but unfortunately not identical, hierarchy has been adopted internationally under the auspices of ITU-T. The basis of the TDM hierarchy (in North America and Japan) is the DS-1 transmission format. The same DS-1 format is used to provide both multiplexed voice and digital data services. Above the DS-1 data rate of 1.544 Mbps, higher-level multiplexing is achieved by interleaving bits from DS-1 inputs. For example, the DS-2 transmission system combines four DS-1 inputs into a 6.312-Mbps stream. Data from the four sources are interleaved 12 bits at a time. Note that 1.544  4 = 6.176 Mbps. The remaining capacity is used for framing and control bits.
  • #18 Both Can run on the same machine