Инициализация TCP-соединения происходит в три этапа. Делается это для синхронизации отправки и получения сегментов, извещения другого узла о количестве данных, которые можно послать за один раз, и установки виртуального соединения.
Вот из каких операций состоит этот процесс: 1. Узел-отправитель запрашивает соединение, посылая сегмент с установленным флагом синхронизации (SYN). 2. Узел-адресат подтверждает получение запроса, отправляя обратно сегмент с: - Установленным флагом синхронизации. - Порядковым номером начального байта сегмента, который он может послать или номером последовательности (sequence number). - Подтверждением, включающим порядковый номер следующего сегмента, который он ожидает получить. 3. Запрашивающий узел посылает обратно сегмент с подтверждением номера последовательности и номером своего подтверждения (acknowledgement number). Для завершения соединения TCP действует аналогично. Это гарантирует, что оба узла закончат передачу и примут все данные. Протокол TCP буферизирует данные для передачи между двумя узлами, используя скользящие окна (sliding windows). Каждый TCP/IP узел поддерживает два скользящих окна: одно для приема данных, а другое - для отправки. Размер окна определяет объем данных, которые могут быть буферизированы на компьютере.
Структура TCP-пакета Все пакеты протокола TCP имеют две части - на данные и заголовок. В таблице приведены поля заголовка TCP-пакета. Поле Описание Source Port (Порт отправителя) TCP пор узла-отправителя Destination Port (Порт получателя) TCP пор узла-получателя. Определяет конечную точку соединения Sequence Number (Порядковый номер) Номер последовательности пакета. Используются для проверки получения всех байт соединения Acknowledgement Number (Номер подтверждения) Порядковый номер байта, который локальный узел планирует получить следующим Data Length (Длина данных) Длина TCP-пакета Reserved (Зарезервировано) Зарезервировано для дальнейшего использования Flags (Флаги) Это поле описывает содержимое сегмента Windows (Окно) Показывает, сколько места доступно в настоящий момент в окне протокола TCP Checksum (Контрольная сумма) Проверяет, поврежден ли заголовок Urgent Pointer (Указатель срочности) Когда отправляются срочные данные (указано в поле Flags), в этом поле задается конечная граница области срочных данных в пакете
Протокол UDP Протокол User Datagram Protocol (UDP) обеспечивает не ориентированную на соединение службу доставки датаграмм по принципу "максимального усилия”. Это означает, что получение всей датаграммы или правильной последовательности отправленных пакетов не гарантируется. Протокол UDP используется приложениями, не требующими подтверждения. Обычно такие приложения передают данные небольшого объема за один раз. Примеры служб и приложений, использующих UDP: сервис имен NetBIOS, сервис датаграмм NetBIOS и сервис SNMP. Для использования протокола UDP приложение должно знать IP-адрес и номер порта получателя. Порт - место назначения при доставке сообщений - идентифицируется уникальным номером. Порт действует как мультиплексная очередь сообщений, то есть он может получать несколько сообщений одновременно. Важно отметить, что порты протокола UDP, перечисленные в таблице, отличаются от портов TCP, несмотря на использование тех же значений номеров. Номер порта Ключевое слово Описание 15 NETSTAT Состояние сети 53 DOMAIN Сервер имен домена 69 TFTP Протокол TFTP 137 NETBIOS-NS Сервис имен NetBIOS 138 NETBIOS-DGM Сервис датаграмм NetBIOS 161 SNMP Сетевой мониторинг SNMP
Поля 8-байтного заголовка UDP-пакета перечислены в таблице: Поле Описание Source Port (Порт отправителя) UDP-пор узла-отправителя. Его задавать необязательно. Если не используется, то устанавливается равным нулю. Destination Port (Порт получателя) UDP-порт узла-получателя. Указывает конечную точку соединения. Message Length (Длина сообщения) Размер сообщения. Минимальный UPD-пакет содержит только информацию заголовка (8 байт) Checksum (Контрольная сумма) Проверяет заголовок на предмет повреждения
Список сокращений Сокращение Расшифровка ACK Acknowledgement ARP Address Resolution Protocol DARPA U.S. Department of Defence Advanced Research Projects Agency DCA Defence Communications Agency DNS Domain Name System FTP File Transfer Protocol IAB Internet Architecture Board IANA Internet Assigned Numbers Authority ICMP Internet Control Message Protocol IETF Internet Engineering Task Force IGMP Internet Group Management Protocol IP Internet Protocol IRTF Internet Research Task Force ISOC Internet Society LAN Local Area Networks LCP Link Control Protocol LPD Line Printing Daemon LPQ Line Printer Queue LPR Line Printer Remote MAN Metropolitan Area Network NCP Network Control Protocol NDIS Network Driver Interface Specification
PING Packet Internet Grouper PPP Point-to-Point Protocol RAS Remote Access Service RCP Remote Copy Protocol REXEC Remote Execution RFC Request for Comments RSH Remote Shell SLIP Serial Line Internet Protocol SNMP Simple Network Management Protocol TCP Transmission Control Protocol TFTP Trivial File Transfer Protocol UDP User Datagram Protocol WAN Wide Area Networks