Стек протоколов TCP/IP сетевые адаптеры, модемы, кабельная система; формирование пакетов, целостность данных целостность пакетов, потоковая передача Межузловой уровень Прикладной уровень Уровень доступа к сети регистрация, безопасность, контрольные точки; преобразование данных; API-функции Межсетевой уровень маршрутизация, адресация, сетевое подключение Последовательность сигналов Кадры IP - пакеты ICMP-, UDP-, TCP-пакеты FTP, SMTP, HTTP, DNS... Физический Канальный Сетевой Транспортный Прикладной
IP-адресация IP-адрес – это уникальный числовой адрес, однозначно идентифицирующий узел, группу узлов или сеть. IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел (так называемых «октетов»), разделенных точками – W.X.Y.Z, каждое из которых может принимать значения в диапазоне от 0 до 255, например,
Доменные имена ewgenijXXX.cn.ru novotelecom.ru ru - TLD (Top Level Domain) nsc - домен второго уровня itam - домен третьего уровня schluse - имя узла www - имя записи
.comVerisignДля коммерческих организаций..coop Национальная ассоциация кооперативного бизнесаДля бизнес-кооперативов..eduEducauseДля учебных заведений..gov Управление служб общего назначение СШАСайты правительства США. TLD Регистратор Назначение.ru,.рф Координационный центр национального домена сети Интернет Регистрация домена второго уровня в одной из доверительных компаний, например в RU-CENTER: Примеры TLD:
Панель настройки DNS-сервера: Источник:
MAC-адрес получателя MAC-адрес отправителя Данные (IP-пакет) Тип Eth CRC 6 байт ВерсияДлинаТип службы Полная длина Идентификатор 0 DF MF Смещение фрагмента Число переходов Протокол Контрольная сумма заголовка IP-адрес отправителя IP-адрес получателя Параметры (до 40 байт) Данные (до байт без заголовка) Ethernet - кадр IP-пакет: базовый пакет сетевого (межсетевого уровня)
type ip_header=packed record version:byte; // номер версии протокола tos:byte; // тип сервиса length:word; // общая длина пакета id:word; // идентификатор пакета flags:word; // флаги ttl:byte; // Время жизни пакета proto:byte; // Протокол верхнего уровня crc:word; // CRC заголовка src_addr:cardinal; // IP- адрес отправителя dst_addr:cardinal; // IP- адрес получателя end; Реализация IP-пакета (заголовок) на Pascal'е
IP-заголовок Номер порта отправителя Номер порта получателя Контрольная сумма Данные (до байт без заголовка) UDP-пакет: GET /about/index.htm HTTP/1.1 Host: User-Agent: Mozilla/5.0 Accept: text/html Accept-language: ru;en Connection: close HTTP-сообщение: пакет транспортного уровня, включает виртуальные порты, но, в отличие от TCP-пакетов, его доставка не гарантируется. формируется в соответствие с протоколом прикладного уровня HTTP для передачи данных (в виде гипертекстовых документов).
Дополнительная информация (количество RR-записей переменное) Полномочный источник (количество RR-записей переменное) Ответы (количество RR-записей переменное) Вопросы (количество вопросов переменное) Кол-во RR полномочного источника Кол-во ответных RR Дополнительная информация (количество RR-записей переменное) Полномочный источник (количество RR-записей переменное) Ответы (количество RR-записей переменное) Вопросы (количество вопросов переменное) Кол-во RR полномочного источника Кол-во дополнительных RR Кол-во вопросовКол-во ответн. RR ИдентификаторФлаги Формат сообщения DNS DNS (Domain Name System) - компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP- адреса по имени хоста и получения информации о маршрутизации почты.
сокет-клиент Создание сокета Привязка к порту Очередь ожидания Приём запросов ЗаписьЧтение Закрытие клиента Закрытие сервера сокет–сервер Создание сокета Привязка к порту Соединение с сервером ЗаписьЧтение Закрытие
#include int main(int argc, char* argv[]){ int socket_fd; struct sockaddr_in name; char buffer[10000]; ssize_t num_char; struct hostent* hostinfo; socket_fd=socket(PF_INET, SOCK_STREAM, 0); name.sin_family=AF_INET; name.sin_port=htons(80); s2pp.cpp
hostinfo=gethostbyname(argv[1]); name.sin_addr=*( (struct in_addr *) hostinfo->h_addr ); connect(socket_fd,(struct sockaddr*)&name, sizeof(struct sockaddr_in)); sprintf(buffer,"GET /\n"); write(socket_fd,buffer,strlen(buffer)); while(1){ num_char=read(socket_fd, buffer,10000); if(num_char==0) return 1; fwrite(buffer,sizeof(char), num_char, stdout); } close(socket_fd); return 0; }
@MAIL.RU: почта, новости, работа, рассылки, развлечения. - бесплатная почта #1
Список портов основных сетевых служб: Получение почтыPop3110 Основная служба wwwhttp80 Передача почтыSMTP25 Эмулятор терминала для удаленного доступаtelnet23 Шифрованный терминал удаленного доступаssh22 Передача файлов по сетиftp20, 21 Тестирование сетевых соединений (утилита ping) echo7 ОписаниеСлужбаПорт Автоматическое назначение IP-адресовDHCP67, 68 Разрешение доменных именDNS53