CS F303 (Computer Networks) : Vishal Gupta
CS F303 (Computer Networks) : Vishal Gupta
CS F303 (Computer Networks) : Vishal Gupta
(Computer Networks)
Vishal Gupta
Department of Computer Science and Information Systems
BITS Pilani Birla Institute of Technology and Science
Pilani|Dubai|Goa|Hyderabad
Pilani Campus, Pilani
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
application
Transport Layer 3-8 BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Connection-oriented demux
TCP socket identified by server host may support
4-tuple: many simultaneous TCP
source IP address
sockets:
each socket identified by
source port number its own 4-tuple
dest IP address
web servers have
dest port number different sockets for
demux: receiver uses each connecting client
all four values to direct non-persistent HTTP will
segment to appropriate have different socket for
each request
socket
Transport Layer 3-9
Connection-oriented demux: example
application
application P4 P5 P6 application
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: IP physical
address B
Transport Layer 3-11 BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Socket Programming with UDP
VISHAL GUPTA, PhD 12 BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Socket programming
Two socket types for two transport services:
– UDP: unreliable datagram
Application Example:
1. Client reads a line of characters (data) from its
keyboard and sends the data to the server.
2. The server receives the data and converts
characters to uppercase.
3. The server sends the modified data to the client.
4. The client receives the modified data and displays
the line on its screen.
Application Layer 2-13 BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Socket programming with UDP
UDP: no “connection” between client & server
• no handshaking before sending data
• sender explicitly attaches IP destination address and
port # to each packet
• rcvr extracts sender IP address and port# from
received packet
UDP: transmitted data may be lost or received
out-of-order
Application viewpoint:
• UDP provides unreliable transfer of groups of bytes
(“datagrams”) between client and server
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
Application
BITS Pilani, Deemed to be University under Section 3 of UGC Act,2-15
1956
Example app: UDP client
Python UDPClient
include Python’s socket
library
from socket import *
serverName = ‘hostname’
serverPort = 12000
create UDP socket for clientSocket = socket(socket.AF_INET,
server
VISHAL GUPTA, PhD 18 BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Socket programming with TCP
client must contact server • when contacted by client, server
• server process must first be TCP creates new socket for server
running process to communicate with
• server must have created that particular client
socket (door) that welcomes – allows server to talk with
client’s contact multiple clients
– source port numbers used to
client contacts server by: distinguish clients (more in
• Creating TCP socket, Chap 3)
specifying IP address, port
number of server process application viewpoint:
• when client creates socket: TCP provides reliable, in-order
client TCP establishes byte-stream transfer (“pipe”)
connection to server TCP between client and server
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
sentence = connectionSocket.recv(1024)
read bytes from socket (but
not address as in UDP) capitalizedSentence = sentence.upper()
close connection to this connectionSocket.send(capitalizedSentence)
client (but not welcoming
socket) connectionSocket.close()
Application Layer 2-22
BITS Pilani
Pilani|Dubai|Goa|Hyderabad