Lecture 3
Lecture 3
Communications
& Networks
CSNC-2413
Lec: 3 Computer
• N/W Architecture & Networking: A
Application Development Top 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
web surfing video
(YouTube, Netflix)
search engine IP radio, TV
P2P file sharing multi-user N/W
text messaging games
social networking voice over IP
(Skype, viber)
remote login
real-time video
conferencing
…..
How these appls are created…
8
Creating network apps
application
transport
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
11
other
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
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 Appls in distant hosts
host
processes comm by
processes usually exchanging messages
comm using IPC
Use sockets, RPC
(Inter Process Comm)
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
IP address (32 bits) number associated with
but many processes may run
a process
on same host on a host…
Socket address
need another level of
IP addr + Port No
identifier – Port No (16
bits)
16
Socket Programming
Allows network applications to communicate across
an Internet
Socket Interface
Socket API mainly provides
Transport layer service
interface
• Stream-sockets for TCP TCP UDP
• Datagram-sockets for UDP
IP
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
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 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) Server socket
Client socket address
128.2.194.242:3479 address
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