Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Судаков / Лекции / lec21_net.ppt
Скачиваний:
23
Добавлен:
20.03.2015
Размер:
103.42 Кб
Скачать

Разработка сетевых приложений

Судаков А.А.

“Параллельные и распределенные вычисления” Лекция 21

План

Сокеты

Удаленные вызовы процедур

CORBA

Сокеты (socket)

Сокеты – аппаратно и протокольно независимый интерфейс для создания сетевых приложений

Появились в BSD 4.4

Работа как с файлом

Создать

Открыть (привязать к адресу, соединить)

Чтение

Запись

Поддержка всех типов протоколов

сокет

Домен – семейства адресов и протоколов

Тип сокета - протокол

Домены сокетов

Сокеты могут использоваться для обмена

По сети

В рамках локальной машины

В рамках кластера

Область видимости сокета называется доменом

Домен Интернет INET

Домен Unix UNIX

Семейства протоколов

Домену соответствует набор (семейство) протоколов и адресов

Домен сокетов Интернет

Семейство протоколов и адресов Интернет (PF_INET, AF_INET)

Протокол TCP

Протокол UDP

Домен сокетов IPX

семейство протоколов и адресов IPX (PF_IPX,AF_IPX )

Протокол IPX

Протокол SPX

Примеры семейств протоколов /usr/include/linux/socket.h

/* Supported address families. */

 

 

#define AF_UNSPEC

0

 

 

 

#define AF_UNIX

1

/*

Unix domain sockets

*/

#define AF_LOCAL

1

/*

POSIX name for AF_UNIX

*/

#define AF_INET

2

/*

Internet IP Protocol

*/

#define AF_AX25

3

/*

Amateur Radio AX.25

*/

#define AF_IPX

4

/*

Novell IPX

*/

#define AF_APPLETALK

5

/*

AppleTalk DDP

*/

#define AF_NETROM

6

/*

Amateur Radio NET/ROM

*/

#define AF_BRIDGE

7

/*

Multiprotocol bridge

*/

#define AF_ATMPVC

8

/*

ATM PVCs

*/

#define AF_X25

9

/*

Reserved for X.25 project

*/

#define AF_INET6

10

/*

IP version 6

*/

#define AF_ROSE

11

/*

Amateur Radio X.25 PLP

*/

#define AF_DECnet

12

/*

Reserved for DECnet project

*/

#define AF_NETBEUI

13

/*

Reserved for 802.2LLC project*/

#define AF_SECURITY

14

/*

Security callback pseudo AF */

#define AF_KEY

15

/*

PF_KEY key management API */

 

#define AF_NETLINK

16

 

 

 

#define AF_ROUTE

AF_NETLINK

/* Alias to emulate 4.4BSD */

 

#define AF_PACKET

17

/*

Packet family

*/

#define AF_ASH

18

/*

Ash

*/

#define AF_ECONET

19

/*

Acorn Econet

*/

Типы сокетов домена Интернет

Сокеты ориентированные на соединения

Потоковый сокет

Гарантированная и надежная доставка данных

Транспортный протокол TCP или аналогичный

Тип SOCK_STREAM

Сокеты не ориентированные на соединения

Дейтаграмный сокет

Негарантированная, ненадежная, быстрая доставка данных

Транспортный протокол UDP (или аналогичный)

Тип SOCK_DGRAM

Низкоуровневый сокет

Доступ к низкоуровневым протоколам Интернет

IP

ICMP

IGMP

Заголовкам транспортных протоклов

SOCK_RAW

Доступен только администратору

Функция socket()

Создание сокета заданного домена, семейства и протокола

int socket(int domain, int type, int protocol);

int fd = socket(PF_INET,SOCK_STREAM, IPPROTO_TCP)

Привязка сокета к сетевому адресу и порту

Большинство протоколов требуют указания адреса конечной точки коммуникации

IP – сетевой адрес

TCP – порт

Тип и формат адреса зависит от протокола

Для сокетов разных семейств протоколов и адресов необходимо указывать свои параметры

Соседние файлы в папке Лекции