9
Chapter 5 Socket API • 1980, a group at UC Berkeley create a interface that applications use to communicate. • Known as socket API or socket interface • System is known as Berkeley UNIX or BSD UNIC

Chapter 5 Socket API

Embed Size (px)

DESCRIPTION

Chapter 5 Socket API. 1980, a group at UC Berkeley create a interface that applications use to communicate. Known as socket API or socket interface System is known as Berkeley UNIX or BSD UNIC. Specifying a protocol interface. Two broad approaches - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 5 Socket API

Chapter 5 Socket API

• 1980, a group at UC Berkeley create a interface that applications use to communicate.

• Known as socket API or socket interface

• System is known as Berkeley UNIX or BSD UNIC

Page 2: Chapter 5 Socket API

Specifying a protocol interface

• Two broad approaches– Define functions specifically to support TCP/IP

communication

– Define functions that support network communication in general, and use parameters to make TCP/IP communication a special case.

• Because the designer at Berkeley wanted to accommodate multiple sets of communication protocol, they used the second approach.

Page 3: Chapter 5 Socket API

• In fact, they provides for generality far beyond TCP/IP. They allowed for multiple families of protocols, with all TCP/IP protocols represented as single family(family PF_INET)

• The socket API provides generalized functions that support network communication using many possible protocols as a single protocol family. The calls allow the programmer to specify the type of service required rather than the name of specific protocol.

Page 4: Chapter 5 Socket API

Socket abstraction

• File descriptors– Open function create a file descriptor– The OS maintains a separate file descriptor as

an array of pointers to internal data structure– Application program only need to remember

the descriptor and use it

Page 5: Chapter 5 Socket API

• Socket API adds a new abstraction for network communication, the socket.

• Each active socket is identified by a small integer called its socket descriptor

• OS provides a separate system function, socket, that applications call to create a socket;

• Application only use open to crate file descriptor• Once the socket has been created, an application

must make additional system calls to specify the details of its exact use.

Page 6: Chapter 5 Socket API

System data structure for sockets

Operating system

Descriptor table

( one per process)

0:

1:

3:

2:

4:

Family: PF_INET

Service:SOCK_STREAM

Local IP:

Remote IP:

Local Port:

Remote Port:

Page 7: Chapter 5 Socket API

Using sockets

• A socket used by a server to wait for an incoming connection is called a passive socket

• A socket used by a client to initiate a connection is called an active socket.

• The sockets are created the same way initially

Page 8: Chapter 5 Socket API

Endpoint address

• When a socket is created, it does not contain detailed information about how it will be used. (port number, IP address)

• ICP/IP protocols define a communication endpoint to consist of an IP address and a protocol port number.

• It allows each protocol family to specify endpoints however it likes

• TCP/IP protocols all use a single address representation, with address family AF_INET

Page 9: Chapter 5 Socket API

Generic address structure

• Struct sockaddr{

• u_char sa_len; // total length

• U_short sa_family; // type of address

• char sa_data[14]; // value of address

• }