[go: up one dir, main page]

0% found this document useful (0 votes)
6 views19 pages

33 Networking

The document outlines the Internet's protocol stack, highlighting the layers from physical to application and the importance of modularity in networking. It explains key concepts such as encapsulation, IP addressing, and the differences between TCP and UDP, including their functionalities and limitations. Additionally, it details the process of creating TCP sessions and network sockets for communication between clients and servers.

Uploaded by

rperuhash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views19 pages

33 Networking

The document outlines the Internet's protocol stack, highlighting the layers from physical to application and the importance of modularity in networking. It explains key concepts such as encapsulation, IP addressing, and the differences between TCP and UDP, including their functionalities and limitations. Additionally, it details the process of creating TCP sessions and network sockets for communication between clients and servers.

Uploaded by

rperuhash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Networking 2: The Lecture

CS 241

April 16, 2014

University of Illinois

1
The Internet’s Protocol Stack

Application Anything you want...

Transport Process-to-process communication

Network Host-to-host packet delivery across the Internet

Data Link Host-to-host packet delivery across a link

Physical Host-to-host bit delivery across a link


2
Internet Architecture:
The “Hourglass” Design

FTP HTTP NV TFTP

TCP UDP

IP

Ethernet 3G wireless MPLS Modem

3
Why layering?

It’s all about modularity


• Eases maintenance, updating of system
• Change of implementation of layer’s service transparent to rest of
system
• e.g., change in transmission medium (Layer 0) has no effect on network
protocol or applications

What other examples of layering have we seen?

4
Encapsulation:
Traveling through the layers

Application Application Application Application


DATA DATA
program program program program
TCP HDR DATA TCP HDR DATA

Best effort Reliable Best effort Reliable


Service Service Service Service

Host-to-Host Host-to-Host

IP HDR TCP HDR DATA IP HDR TCP HDR DATA

IP HDR TCP HDR DATA

5
Network Packet Encapsulation

Source: http://www.tcpipguide.com/free/t_IPDatagramEncapsulation.htm 6
Understanding IP
The network layer provides “host-to-host” connectivity.
• In IP, done via IP Addresses
! Globally unique 32-bit numbers
! Usually written as four 8-bit integers: 127.0.0.1
! IPv6: 128-bits, written as eight sets of 16-bit hexadecimal
numbers (ex: 2001:0DBB:AC10:FE01:0000:0000:0000:C3D4
== 2001:0DBB:AC10:FE01::C3D4)

• IP addresses are hard to remember!


! Domain names associate easy-to-remember names that can be
translated to IP addresses via the DNS protocol.

7
Understanding TCP

TCP provides:
• Port number to identify a process
• Reliable delivery of packets
• Check data integrity via checksums
• Pipe abstraction (stream)
• Congestion control
• Flow control

TCP doesn’t provide:


• Structure to data
• Security / encryption
…while the session is active.

8
Understanding UDP

UDP provides:
• Port number for process-to-process communication
• Lower-level access to the network via discrete packets
! Greater speed and flexibility

UDP doesn’t provide:


• Everything else

9
Creating a TCP session

Server:
• Creates a socket to listen for incoming connections.
• Must listen on a specific protocol/port.

server client

TCP/80

10
Creating a TCP session

Client:
• Creates a socket to connect to a remote computer.

server client

TCP/80

11
Creating a TCP session

Client:
• Requests a connection to TCP port 80 on 74.125.225.70.

server client

TCP/80

12
Creating a TCP session

Server:
• Accepts the connection.

server client

TCP/80

13
Creating a TCP session

Server:
• Spawns a new socket to communicate directly with the newly
connected client.
• Allows other clients to connect.

server client
Two way
communications

TCP/80

14
Network Vocabulary
Socket Address
• Complete identification of the socket you are connecting to. Made up
of three pieces:
! Protocol (ex: TCP)
! Network Address (ex: 127.0.0.1)
! Port Number (ex: 80)

Port Number
• Globally shared system resource, 16-bit integer (0 to 65,535)
• A port number can only be used by one process at a time on the
entire system
• Ports below 1024 are “special”
! Associated with particular applicaitons
! Use often requires elevated privileges (e.g. root)

15
Network socket

A network socket is stream-based IPC.


Similar to a pipe:
• Uses the file descriptor interface
• Stream-based, not segment- or message-based

Different from a pipe:


• The file descriptor is bi-directional (read and write)
• Reliability based on the transport protocol used
• Special type of “server socket” that listens for incoming connections
from remove hosts and does not transmit any application data!

16
Creating a network socket (client and
server)
socket(): Create an endpoint for communication

int socket(int network_protocol,


int transport_protocol,
int sub_protocol)

IP: AF_INET IPv6: AF_INET6


TCP: SOCK_STREAM UDP: SOCK_DGRAM

17
Setting up a server socket

getaddrinfo(): network address translation


• Translates a hostname (IP address or domain name), port, and protocol
into a socket address struct.

bind(): binds an socket address to a socket


• Required in order to know what port number your socket will be
listening for new connections

listen(): places the socket in a listening state

accept(): accept a communication on a socket


• int accept(int sockfd,
struct sockaddr *addr,
socklen_t *addrlen);

18
Setting up a client socket

connect(): initiate a connection on a socket


• int connect(int sockfd,
struct sockaddr *addr,
socklen_t *addrlen);

19

You might also like