0% found this document useful (0 votes)
18 views

Lecture 3

Uploaded by

Hamza tariq
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Lecture 3

Uploaded by

Hamza tariq
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Computer Communications

& Networks
CSNC-2413

Lec: 3
• N/W Architecture & Computer
Networking: A Top
Application Development Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
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
Network Architecture
Network Architecture
A structured set of protocols to implement the
communications function

application
Example of a layered
transport
network system
network

link

physical

3
Internet protocol stack
 Application: support applications (network API)
- FTP, SMTP, HTTP, DNS, DHCP
application
 Transport: process-process data transfer (ports)
- TCP (reliable), UDP (unreliable)
transport
 Network: global addressing (IP addr), routing of
pkts from src to dest network
- IPv4, IPv6
link
 Link: data transfer between neighboring
network elements
physical
- Ethernet, WiFi (802.11), 3G/4G, PPP
 Physical: bits “on the wire”

4
TCP/IP Model
 Some of the protocols & networks in TCP/IP protocol stack…

HTTP FTP SMTP DNS

Ethernet WiFi 3G/4G PPP

5
Encapsulation  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

6
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  streaming stored video
(YouTube, Netflix)
 web surfing
 IP radio, TV
 search engine
 multi-user N/W games
 P2P file sharing
 voice over IP
 text messaging (Skype, viber)
 social networking  real-time video
 remote login conferencing
 …..

How these appls are created…


8
Creating network apps
application
transport

Write appl programs to run only on network


data link
physical
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 application
transport
network
data link application

confining appls to end systems physical transport


network
data link
allows rapid appl development & physical

deployment

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
client/server  request services from servers
 intermittent host connections
 dynamic addr (IP & port)
 no direct comm with each other

11
P2P architecture
 NO always-on server peer-peer
 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

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
Applications are processes running on hosts…

 Appls within same host  Appls in distant hosts


 processes usually comm  processes comm by
using IPC exchanging messages
(Inter Process Comm)
 Use sockets, RPC
 use Pipes, FIFOs, shared
memory

14
Sockets
 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
Process Address
 to receive msgs, process must
have identifier
 identifier includes both
 host device has unique
IP address & port number
IP address (32 bits)
associated with a process
but many processes may run on a host…
on same host  Socket address
 need another level of identifier IP addr + Port No
– Port No (16 bits)

to send HTTP msg to web server gaia.cs.umass.edu…


IP address: 128.119.245.12 port number: 80

16
Socket Programming
 Allows network applications to communicate across an Internet

 Socket API mainly provides


Socket Interface
Transport layer service
interface
• Stream-sockets for TCP
• Datagram-sockets for UDP TCP UDP

IP
 Based on client/server
architecture 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

1. Client sends request


Client Server
process process Resource
4. Client 3. Server sends response 2. Server
handles handles
response request

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 /etc/services
 Port 23: telnet server provides list of available
 Port 25: mail server services
 Port 53: DNS server (Linux machine)
 Port 80: HTTP server

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
3 2
1
socket Dest.

21
Socket Address
 The pair IP Address + Port -– makes up a “socket-address”

Client IP address Server IP address


128.2.194.242 208.216.181.15

Client Server

3479 is an 53 is a well-known
ephemeral port port associated with
allocated by DNS servers
kernel (unix)
Client socket address Server socket address
128.2.194.242:3479 208.216.181.15:53

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

You might also like