Это межсетевой протокол в сетях TCP/IP, обеспечивающий доставку пакета между двумя хостами без установления соединения. Протоколы транспортного уровня (TCP, UDP) используют IP для транспортировки данных, то есть данные этих протоколов инкапсулируются в IP пакете (датаграме). Структура пакета выглядит следующим образом:
1. Версия VERS | 4 бита |
2. Длина заголовка NLEN | 4 бита |
3. Тип службы TOS | 8 бит |
4. Общая длина пакета в байтах LENGTH | 16 бит |
5. Идентификатор фрагментов | 16 бит |
6. Флаги | 3 бита |
7. Смещение фрагмента | 13 бит |
8. Время существования TTL | 8 бит |
9. Протокол | 8 бит |
10. Контрольная сумма заголовка | 16 бит |
11. IP адрес источника | 32 бита |
12. IP адрес получателя | 32 бита |
13. Опции | |
14. Заполнение | |
15. Данные |
Назначение полей заголовка:
- Номер версии 0100;
- Длина заголовка в словах (32 бита) 0101;
- TOS определяет важность пакета в сети.
Структура поля:
Установка соответствующего бита в единицу обеспечивает выполнение указанного требования при доставке пакета сетевыми службами: минимизация задержки, максимизация производительности, максимизация надежности, минимизация стоимости.
4. Длина IP пакета включает заголовок в байтах. 216 = 64 Кбайт – max длина пакета. Так как при передачи в сети Ethernet Lmax=1,5 Кбайт, то при передачи IP датаграм происходит фрагментация пакетов. Поэтому поля 5,6,7 служат для сборки пакета из отдельных фрагментов.
Интерфейс сокетов – Это условное название Api для сетевых приложений. Первоначально сокеты были разаработаны BSOUnix в 80г для поддержки TCP/IP. Позднее поддержка сокетов была добавлена в WinSock32.dll и поддерживалось TCP/IP. Socket – это абстрактный объект обозначающий конечную точку сетевого соединения. Для обмена данными необходимо что бы каждая сетевая программа открыла свой сокет. Они могут использоваться для обмена с помощью датаграмм и сессий.