Lecture 3
Lecture 3
& 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
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…
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
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
…..
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
Complex Management
peers connect intermittently
change IP addrs
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…
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)
16
Socket Programming
Allows network applications to communicate across an Internet
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
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
19
Clients
Client – appl launched to access some service, mostly on remote
system
web browser, ftp client, telnet client, ssh client
20
Socket
Socket is an endpoint of bidirectional comm…
identified by socket descriptor
App
3 2
1
socket Dest.
21
Socket Address
The pair IP Address + Port -– makes up a “socket-address”
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