Содержание
- Общие сведения о профилях брандмауэра
- Что такое маска адреса (подсеть)
- Что такое протокол TCP?
- Порты TCP/UDP, используемые в среде Cisco CallManager
- Что есть MAC-адрес
- Что такое IP-адрес
- Протокол UDP: что это и как работает?
- Как в Windows узнать, какая программа прослушивает порт
- Основные сведения о брандмауэрах
- TCP— Transmission Control Protocol
Общие сведения о профилях брандмауэра
В соответствии с профилями брандмауэра операционная система определяет и запоминает каждую из сетей по следующим параметрам: возможность подключения, имеющиеся подключения и категория.
Брандмауэр Windows в режиме повышенной безопасности делит сети на три типа.
- Домен. Windows может выполнить проверку подлинности доступа к контроллеру домена, в который включен компьютер.
- Общедоступные. В эту категорию первоначально попадают все сети, не входящие в домены. Сети, которые представляют прямые соединения с Интернетом, являются открытыми (аэропорты, кафе и другие места открытого доступа).
- Частные. Сеть, определенная пользователем или приложением как личная. Только доверенные сети могут быть определены как частные. Обычно в качестве частной сети определяется сеть малого предприятия, домашняя сеть и т. п.
Администратор может создать профиль для каждого типа сети и задать для этих профилей разные политики брандмауэра. Одномоментно применим только один профиль. Профили применяются в следующем порядке.
- Профиль домена применяется, когда все интерфейсы проходят проверку подлинности на контроллере домена, членом которого является компьютер.
- Если все интерфейсы либо прошли проверку подлинности к контроллеру домена, либо соединены с сетями, которые определены как частные, применяется частный профиль.
- В противном случае применяется открытый профиль.
Просмотреть и настроить профили брандмауэра можно с помощью оснастки «Брандмауэр Windows в режиме повышенной безопасности». Элемент Брандмауэр Windows на панели управления позволяет настраивать только текущий профиль.
Что такое маска адреса (подсеть)
Понятие подсети введено, чтобы можно было выделить часть IP-адресов одной организации, часть другой и тд. Подсеть представляет собой диапазон IP-адресов, которые считаются принадлежащими одной локальной сети. При работе в локальной сети информация пересылается непосредственно получателю. Если данные предназначены компьютеры с IP-адресом, не принадлежащим локальной сети, то к ним применяются специальные правила для вычисления маршрута для пересылки из одной сети в другую.
Маска — это параметр, который сообщает программному обеспечению о том, сколько компьютеров объединено в данную группу (подсеть). Маска адреса имеет такую же структуру как и сам IP-адрес: это набор из четырех групп чисел, каждое из которых может быть в диапазоне от 0 до 255. При этом, чем меньше значение маски, тем больше компьютеров объединено в данную подсеть. Для сетей небольших компаний маска обычно имеет вид 255.255.255.x (например, 255.255.255.224). Маска сети присваивается компьютеру одновременно с IP-адресом. Так, например, сеть 192.168.0.0 с маской 255.255.255.0 может содержать в себе компьютеры с адресами от 192.168.0.1 до 192.168.254. А сеть 192.168.0.0 с маской 255.255.255.128 допускает адреса от 192.168.0.1 до 192.168.0.127. Думаю, смысл понятен. Как правило сети с небольшим возможным числом компьютеров используются провайдерами с целью экономии IP-адресов. Например, клиенту, может быть назначен адрес с маской 255.255.255.252. Такая подсеть содержит в себе только два компьютера.
После того как компьютер получил IP-адрес и ему стало известно значение маски подсети, программа может начать работу в данной локальной подсети. Однако же, чтобы обмениваться информацией с другими компьютерами в глобальной сети, необходимо знать правила, куда пересылать информацию для внешней сети. Для этого служит такая характеристика как адрес шлюза (Gateway).
Что такое протокол TCP?
TCP — это протокол транспортного уровня, предоставляющий транспортировку (передачу) потока данных, с необходимостью предварительного установления соединения, благодаря чему гарантирует уверенность в целостности получаемых данных, также выполняет повторный запрос данных в случае потери данных или искажения. Помимо этого протокол TCP отслеживает дублирование пакетов и в случае обнаружения — уничтожает дублирующиеся пакеты. TCP — это аббревиатура от Transmission Control Protocol (Протокол Управления Передачей) — является обязательным протоколом стандарт TCP/IP, определенный в стандарте RFC 793, «Transmission Control Protocol (TCP)».
В отличие от протокола UDP гарантирует целостность передаваемых данных и подтверждения отправителя о результатах передачи. Используется при передаче файлов, где потеря одного пакета может привести к искажению всего файла.
TCP обеспечивает свою надежность благодаря следующему:
- Данные от приложения разбиваются на блоки определенного размера, которые будут отправлены.
- Когда TCP посылает сегмент, он устанавливает таймер, ожидая, что с удаленного конца придет подтверждение на этот сегмент. Если подтверждение не получено по истечении времени, сегмент передается повторно.
- Когда TCP принимает данные от удаленной стороны соединения, он отправляет подтверждение. Это подтверждение не отправляется немедленно, а обычно задерживается на доли секунды
- TCP осуществляет расчет контрольной суммы для своего заголовка и данных. Это контрольная сумма, рассчитываемая на концах соединения, целью которой является выявить любое изменение данных в процессе передачи. Если сегмент прибывает с неверной контрольной суммой, TCP отбрасывает его и подтверждение не генерируется. (Ожидается, что отправитель отработает тайм-аут и осуществит повторную передачу.)
- Так как TCP сегменты передаются в виде IP датаграмм, а IP датаграммы могут прибывать беспорядочно, также беспорядочно могут прибывать и TCP сегменты. После получения данных TCP может по необходимости изменить их последовательность, в результате приложение получает данные в правильном порядке.
- Так как IP датаграмма может быть продублирована, принимающий TCP должен отбрасывать продублированные данные.
- TCP осуществляет контроль потока данных. Каждая сторона TCP соединения имеет определенное пространство буфера. TCP на принимающей стороне позволяет удаленной стороне посылать данные только в том случае, если получатель может поместить их в буфер. Это предотвращает от переполнения буферов медленных хостов быстрыми хостами.
Порты TCP/UDP, используемые в среде Cisco CallManager
В этой таблице представлены порты TCP/UDP, используемые в среде Cisco CallManager.
Протокол |
Удаленный исходящий порт |
Порт назначения CallManager |
Исходящий порт CallManager |
Порт назначения удаленного устройства |
Удаленные устройства |
Примечания |
---|---|---|---|---|---|---|
DTC |
TCP 135 |
Устройства CallManager в одном кластере |
||||
SSH |
TCP 22 |
Клиент Secure Shell |
||||
Telnet |
TCP 23 |
Клиент Telnet |
||||
DNS |
UDP 53 |
Серверы DNS |
||||
DHCP |
UDP 68 |
UDP 67 |
Сервер DHCP |
|||
DHCP |
UDP 68 |
UDP 67 |
Клиент DHCP |
|||
TFTP |
UDP 69 |
Динамические порты, используемые после первого подключения |
||||
HTTP |
Веб-браузеры администратора / пользователя |
Страницы CCMAdmin и CCMUser |
||||
OSI (DAP, DSP, DISP) |
TCP или UDP 120 |
Каталог DCD |
||||
NTP |
UDP 123 |
|||||
WINS |
UDP 137-139 |
Сервер WINS |
Служба имен Интернет для Windows |
|||
SNMP |
UDP 161 |
|||||
Сообщение SNMP |
UDP 162 |
|||||
LDAP |
TCP 389 |
TCP 389 |
Службы каталога |
При интегрировании с Corporate Directory |
||
HTTPS / SSL |
TCP 443 |
|||||
SMB |
TCP 445 |
TCP 445 |
Несколько CallManager в одном кластере |
|||
Syslog |
TCP 514 |
UDP 514 |
Служба системного журнала |
|||
RMI |
TCP 1099-1129 |
Служба RMI. Консоль оператора |
||||
MS SQL |
TCP 1433 |
TCP 1433 |
Несколько CallManager в одном кластере |
|||
H.323 RAS |
UDP 1718 |
Обнаружение Привратника |
||||
H.323 RAS |
UDP 1719 |
Привратник RAS |
CallManager до версии 3.3. Cisco Conference Connection |
|||
H.323 RAS |
UDP 1024-4999 |
UDP 1719 |
Привратник RAS |
CallManager версии 3.3 |
||
H.323 H.225 |
TCP 1720 |
TCP 1720 |
Шлюзы H.323 / анонимное устройство Cisco Conference Connection / неуправляемая Привратником магистраль H.323 |
|||
H.323 H.225/ICT |
TCP 1024-4999 |
Магистрали H.323, управляемые Привратником CallManager |
CallManager версии 3.3 |
|||
H.323 H.245 |
TCP 1024-4999 |
TCP 1024-4999 |
Шлюзы H.323 CallManager / анонимное устройство / магистрали H.323 |
|||
H.323 H.245 |
TCP 11000-65535 |
Шлюзы IOS H.323 Cisco Conference Connection |
||||
SCCP |
TCP 2000 |
Skinny-клиенты (IP-телефоны) |
||||
Skinny-шлюз (аналоговый) |
TCP 2001 |
Аналоговый Skinny-шлюз |
Устарело |
|||
Skinny-шлюз (цифровой) |
TCP 2002 |
Цифровой Skinny-шлюз |
Устарело |
|||
Управление MGCP |
UDP 2427 |
Управление шлюзом MGCP |
||||
Соединение с MGCP |
TCP 2428 |
Соединение со шлюзами MGCP |
||||
RTS Serv |
2500 |
|||||
Cisco Extended Service |
TCP 2551 |
Определение активного / резервного |
||||
Cisco Extended Service |
TCP 2552 |
Уведомление об изменении DB |
||||
Сборщик данных RIS |
TCP 2555 |
Связь между RIS |
||||
Сборщик данных RIS |
TCP 2556 |
Используется клиентами (IIS) для связи с RIS |
||||
CTI/QBE |
TCP 2748 |
Приложения TAPI/JTAPI |
Подключается к CTI Manager. Используется приложениями IVR, CCC, PA, Cisco Softphone, CRS, ICD, IPCC, IPMA, Attendant Console и любыми другими, которые используют TAPI или плагин J/TAPI / TSP. |
|||
Служба IPMA |
TCP 2912 |
Консоль помощника IPMA |
||||
Приложение потоковой передачи медиаинформации |
UDP 3001 |
Уведомление об изменении |
||||
SCCP |
TCP 3224 |
Медиаресурсы |
Мосты для конференций / Xcoder |
|||
Терминальные службы MS |
TCP 3389 |
Терминальные службы Windows |
||||
Агент HID Entercept |
TCP 5000 |
Консоль обнаружения несанкционированного доступа к хосту |
||||
CallManager SIP |
TCP/UDP 5060 |
TCP 5060 |
Порт по умолчанию магистрали SIP |
Может использовать TCP 1024 — 65535 |
||
Помощник VNC http |
TCP 580x |
Удаленное управление |
||||
VNC Display |
TCP 690x |
Дисплей компьютера виртуальной сети |
Удаленное управление |
|||
Уведомление об изменениях CallManager |
TCP 7727 |
Уведомление об изменении CallManager. Монитор уровня базы данных Cisco, Cisco TFTP, Cisco IP поток медиаданных, Cisco TCD, Cisco MOH |
Уведомление об изменении RealTime |
|||
Служба IPMA |
TCP 8001 |
IP Manager Assistant |
Уведомление об изменении |
|||
ICCS |
TCP 8002 |
TCP 8002 |
Несколько CallManager в одном кластере |
Внутрикластерная связь |
||
CTIM |
TCP 8003 |
|||||
Cisco Tomcat |
TCP 8007 |
Веб-запросы |
||||
Cisco Tomcat |
TCP 8009 |
Веб-запросы |
||||
Cisco Tomcat |
TCP 8111 |
IIS, веб-запросы рабочего потока IPMA |
||||
Cisco Tomcat |
TCP 8222 |
IIS, веб-запросы рабочего потока приложения EM |
||||
Cisco Tomcat |
TCP 8333 |
IIS, веб-запросы рабочего потока приложения WebDialer |
||||
DC Directory |
TCP 8404 |
Встроенные службы каталога |
Используется для служб каталога. Аутентификация / настройка приложения. Журнал SoftPhone. Журнал пользователя. |
|||
Cisco Tomcat |
TCP 8444 |
IIS, веб-запросы рабочего потока службы EM |
||||
Cisco Tomcat |
TCP 8555 |
IIS, веб-запросы рабочего потока Apache SOAP |
||||
Cisco Tomcat |
TCP 8998 |
Веб-запросы |
||||
Cisco Tomcat |
TCP 9007 |
IIS, веб-запросы рабочего потока CAR |
||||
RTP |
UDP 16384-32767 |
UDP 16384-32767 |
Голосовое медиа |
IP IVR Media. CCC IVR Media, Cisco SoftPhone, приложение Media Streaming |
||
Агент Cisco SNMP |
UDP 61441 |
Интерфейс аварийных сигналов Cisco |
Принимает некоторые аварийные сигналы SNMP в формате XML. |
Другие продукты AVVID
Описание других портов, используемых преимущественно между Microsoft Exchange и Cisco Unity и не приведенных в данной таблице см. в документе Cisco Unity и Quality of Service (QoS). Фактические голосовые порты Cisco Unity регистрируются у поставщика услуг TAPI (TSP) с использованием Skinny-протокола (порт TCP 2000).
Что есть MAC-адрес
Дело в том, что пересылаемые пакеты в сети адресуются компьютерам не по их именам и не на IP-адрес. Пакет предназначается устройству с конкретным адресом, который и называется MAC-адресом.
MAC-адрес — это уникальный адрес сетевого устройства, который заложен в него изготовителем оборудования, т.е. это этакий проштампованный номер Вашей сетевой карты. Первая половина MAC-адрес представляет собой идентификатор изготовителя, вторая — уникальный номер данного устройства.
Как правило MAC-адрес бывает требуется для идентификации, скажем, у провайдера (если провайдер использует привязку по мак-адресу вместо логина-пароля) или при настройке маршрутизатора.
Что такое IP-адрес
У всех он есть, но не все имеют представление что за адрес такой и почему вообще без него нельзя. Рассказываю.
IP-адрес — 32-х битное число, используемое для идентификации компьютера в сети. Адрес принято записывать десятичными значениями каждого октета этого числа с разделением полученных значений точками. Например, 192.168.101.36
IP-адреса уникальны, — это значит, что каждый компьютер имеет свое собственное сочетание цифр, и в сети не может быть двух компьютеров с одинаковыми адресами. IP-адреса распределяются централизованно, интернет-провайдеры делают заявки в национальные центры в соответствии со своими потребностями. Полученные провайдерами диапазоны адресов распределяются дальше между клиентами. Клиенты, в свою очередь, сами могут выступать в роли провайдера и распределять полученные IP-адреса между субклиентами и т.д. При таком способе распределения IP-адресов компьютерная система точно знает «расположение» компьютера, имеющего уникальный IP-адрес; — ей достаточно переслать данные в сеть «владельца», а провайдер в свою очередь проанализирует пункт назначения и, зная, кому отдана эта часть адресов, отправит информацию следующему владельцу поддиапазона IP-адресов, пока данные не поступят на компьютер назначения.
Для построения же локальных сетей выделены спец.диапазоны адресов. Это адреса 10.x.x.x, 192.168.x.x, 10.x.x.x, c 172.16.x.x по 172.31.x.x, 169.254.x.x, где под x- имеется ввиду любое число это от 0 до 254. Пакеты, передаваемые с указанных адресов, не маршрутизируется, иными словами, попросту не пересылаются через Интернет, а поэтому в различных локальных сетях компьютеры могут иметь совпадающие адреса из указанных диапазонов. Т.е., в компании ООО «Рога и копыта» и ООО «Вася и компания» могут находится два компьютера с адресами 192.168.0.244, но не могут, скажем, с адресами 85.144.213.122, полученными от провайдера интернета, т.к. в интернете не может быть два одинаковых IP-адреса. Для пересылки информации с таких компьютеров в Интернет и обратно используются спец.программы и устройства, которые заменяют локальные адреса реальными при работе с интернетом. Иными словами, данные в Сеть пересылаются с реального IP-адреса, а не с локального. Этот процесс происходит не заметно для пользователя и называется трансляцией адресов. Хочется так же упомянуть, что в рамках одной сети, скажем, компании, ООО «Рога и копыта», не может быть два компьютера с одним локальным IP-адресом, т.е., в указанном выше примере имелось ввиду, что один компьютер с адресом 192.168.0.244 в одной компании, второй с таким же адресом — в другой. В одной же компании два компьютера с адресом 192.168.0.244 попросту не уживутся.
Вы наверняка слышали такие термины как внешний IP и внутренний IP, постоянный (статический IP) и переменный (динамический) IP. В двух словах о них:
- внешний IP — это как раз тот самый IP, который выдает Вам провайдер, т.е. Ваш уникальный адрес в интернете, например, — 85.144.24.122
- внутренний IP, — это локальный IP, т.е. Ваш IP в локальной сети, например, — 192.168.1.3
- статический IP — это IP, который не меняется с каждым подключением, т.е. закреплен за Вами твердо и навсегда
- динамический IP, — это плавающий IP-адрес, который меняется с каждым подключением
Тип Вашего IP (статический или динамический) зависит от настроек провайдера.
Протокол UDP: что это и как работает?
Освободи Себя Протокол UDP (протокол пользовательских дейтаграмм) является одним из основных протоколов в Интернете, он позволяет приложениям обмениваться данными с гарантиями независимо от нижних уровней модели TCP / IP. Это означает, что маршрутизаторы (сетевой уровень в модели TCP / IP) должны отправлять только дейтаграммы (единица измерения в UDP). UDP поддерживает несколько протоколов прикладного уровня, например, популярный DNS и даже протокол DHCP для автоматического получения (и предоставления) IP-адресации.
основные черты
Протокол UDP позволяет отправлять дейтаграммы без необходимости устанавливать соединение, необходимо лишь открыть сокет в месте назначения, чтобы принимать дейтаграммы источника. UDP — это протокол, не ориентированный на установление соединения, то есть это происходит не так, как в TCP, где есть фаза установления соединения, здесь они отправляются напрямую без «предупреждения» предварительного установления.
Этот протокол не обеспечивает какого-либо типа управления потоком Если одно устройство быстрее другого и отправляет информацию, вполне возможно, что информация будет потеряна, поскольку она будет разрушаться при самой низкой скорости, и нам придется перейти к пересылке информации
Важной деталью является то, что управление пересылкой дейтаграмм осуществляется транспортным уровнем, поскольку UDP очень прост и не имеет механизмов управления для пересылки дейтаграмм, поскольку он был потерян
UDP также не обеспечивает любой тип контроля скопление если в сети есть перегрузка, пакеты могут быть потеряны, и, конечно, он не будет отвечать за их повторную отправку, как это происходит с TCP. Следовательно, UDP не имеет контроля перегрузки, контроля потока или контроля ошибок, можно сказать, что UDP является ненадежным протоколом. Кроме того, он не предоставляет порядок в отправленных дейтаграммах и информацию о том, правильно ли поступила дейтаграмма, поскольку нет подтверждения доставки или получения. Любой тип гарантий передачи информации должен быть реализован на более высоких уровнях.
Этот протокол в основном используется в DHCP и DNS, где скорость важнее надежности. UDP широко используется в задачах управления передачей аудио и видео по сети. UDP только добавляет мультиплексирование приложения и добавление контрольной суммы в заголовок и полезную нагрузку.
Заголовок UDP
UDP добавляет 8-байтовый заголовок в каждой дейтаграмме. В этом заголовке UDP мы найдем порт источника и порт назначения соединения (сокета), длину дейтаграммы и контрольную сумму упомянутой дейтаграммы, чтобы убедиться, что в ней нет ошибок ни заголовка, ни данных дейтаграммы. порты (исходный порт и порт назначения) необходимы для правильного функционирования UDP. UDP использует эти номера портов для идентификации сокета, то есть приложения, которое передает данные или получает данные.
Как в Windows узнать, какая программа прослушивает порт
Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами
Поэтому при анализе полученных данных также важно знать, какая именно служба прослушивает определённый порт.. Для поиска службы, можно добавить к приведённой команде опцию -b, которая означает показать исполнимый файл, прослушивающий порт:
Для поиска службы, можно добавить к приведённой команде опцию -b, которая означает показать исполнимый файл, прослушивающий порт:
netstat -anb
Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:
cmd
чтобы перейти в обычную командную строку.
Там запустите команду вида:
for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":80" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m
Эта команда найдёт службы, которые прослушивают 80 порт. Чтобы найти информацию о другом порте, замените в команде цифру 80 на интересующий вас порт.
Пример вывода в моём случае:
C:\Windows\system32>echo 0.0.0.0:80 LISTENING & 0.0.0.0:80 LISTENING httpd.exe 3576 Services 0 16 764 КБ C:\Windows\system32>echo :80 LISTENING & :80 LISTENING httpd.exe 3576 Services 0 16 764 КБ
Запись 0.0.0.0:80 означает, порт 80 для любых IPv4 адресов прослушивает служба httpd.exe (веб-сервер Apache). А запись :80 — означает, что порт 80 для любых IPv6 адресов прослушивает та же самая служба httpd.exe (веб-сервер Apache). Мы ещё вернёмся к более подробному анализу данных далее в этой статье.
Менять порт в длинной команде не всегда удобно, поэтому рекомендую создать текстовый файл с именем port.bat, в этот файл скопируйте:
@ECHO OFF for /f "tokens=1,2,3,4,5*" %%i in ('netstat -aon ^| findstr ":%1" ^| findstr /i listening') do echo %%j %%l & @tasklist | findstr %%m
Сохраните и закройте этот файл.
Теперь в Windows PowerShell или в командной строке Windows с помощью команды cd перейдите в папку, куда вы сохранили файл. Например, я его сохранил в папку C:\Users\Alex\Documents\, тогда для перехода туда я выполняю:
cd C:\Users\Alex\Documents\
Теперь запустите файл командой вида:
.\port.bat
Где замените на интересующий вас порт, например, меня интересует порт 80, тогда:
.\port.bat 80
Вновь получаю аналогичный результат.
Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».
Основные сведения о брандмауэрах
Брандмауэр проверяет входящие пакеты на соответствие следующему набору правил:
- Если пакет соответствует стандартам, заданным правилами, то брандмауэр передает его протоколу TCP/IP для дальнейшей обработки.
- Пакет не соответствует стандартам, заданным в правилах.
Список разрешенного трафика заполняется одним из следующих способов.
-
Автоматически. Когда защищенный брандмауэром компьютер инициирует соединение, брандмауэр добавляет в список запись, чтобы разрешить ответ. Ответ считается запрашиваемым трафиком, и ничего настраивать не требуется.
-
Вручную. Работа администратора заключается в настройке исключений в работе брандмауэра. Это открывает доступ к определенным программам или портам на вашем компьютере. В этом случае компьютер принимает весь входящий трафик, выполняя роль сервера, прослушивателя или однорангового узла. Настройку необходимо выполнить для подключения к SQL Server.
Выбор стратегии брандмауэра является более сложной задачей и не сводится лишь к открытию или закрытию портов. При выборе стратегии брандмауэра для предприятия необходимо обязательно рассмотреть все доступные правила и параметры конфигурации. В этой статье не рассматриваются все возможные параметры брандмауэра. Рекомендуем ознакомиться со следующими документами:
Руководство по развертыванию брандмауэра WindowsРуководство по проектированию для брандмауэра Windows Основные сведения об изоляции серверов и доменов
TCP— Transmission Control Protocol
Обмен данными, ориентированный на соединения, может использовать надежную связь, для обеспечения которой протокол уровня 4 посылает подтверждения о получении данных и запрашивает повторную передачу, если данные не получены или искажены. Протокол TCP использует именно такую надежную связь. TCP используется в таких прикладных протоколах, как HTTP, FTP, SMTP и Telnet.
Протокол TCP требует, чтобы перед отправкой сообщения было открыто соединение. Серверное приложение должно выполнить так называемое пассивное открытие (passive open), чтобы создать соединение с известным номером порта, и, вместо того чтобы отправлять вызов в сеть, сервер переходит в ожидание поступления входящих запросов. Клиентское приложение должно выполнить активное открытие (active open), отправив серверному приложению синхронизирующий порядковый номер (SYN), идентифицирующий соединение. Клиентское приложение может использовать динамический номер порта в качестве локального порта.
Сервер должен отправить клиенту подтверждение (ACK) вместе с порядковым номером (SYN) сервера. В свою очередь клиент отвечает АСК, и соединение устанавливается.
После этого может начаться процесс отправки и получения сообщений. При получении сообщения в ответ всегда отправляется сообщение АСК. Если до получения АСК отправителем истекает тайм-аут, сообщение помещается в очередь на повторную передачу.
Поля заголовка TCP перечислены в следующей таблице:
Поле | Длина | Описание |
---|---|---|
Порт источника | 2 байта | Номер порта источника |
Порт назначения | 2 байта | Номер порта назначения |
Последовательный номер | 4 байта | Последовательный номер генерируется источником и используется назначением, чтобы переупорядочить пакеты для создания исходного сообщения и отправить подтверждение источнику. |
Номер подтверждения | 4 байта | Если установлен бит АСК поля «Управление», в данном поле содержится следующий ожидаемый последовательный номер. |
Смещение данных | 4 бита | Информация о начале пакета данных. |
Резерв | 6 битов | Резервируются для будущего использования. |
Управление | 6 битов | Биты управления содержат флаги, указывающие, верны ли поля подтверждения (АСК), указателя срочности (URG), следует ли сбрасывать соединение (RST), послан ли синхронизирующий последовательный номер (SYN) и т. д. |
Размер окна | 2 байта | В этом поле указывается размер приемного буфера. Используя подтверждающие сообщения, получатель может информировать отправителя о максимальном размере данных, которые тот может отправить. |
Контрольная сумма | 2 байта | Контрольная сумма заголовка и данных; по ней определяется, был ли искажен пакет. |
Указатель срочности | 2 байта | В этом поле целевое устройство получает информацию о срочности данных. |
Опции | переменная | Необязательные значения, которые указываются при необходимости. |
Дополнение | переменная | В поле дополнения добавляется столько нулей, чтобы заголовок заканчивался на 32-битной границе. |
TCP — это сложный, требующий больших затрат времени протокол, что объясняется его механизмом установления соединения, но он берет на себя заботу о гарантированной доставке пакетов, избавляя нас от необходимости включать эту функциональную возможность в прикладной протокол.
Протокол TCP имеет встроенную возможность надежной доставки. Если сообщение не отправлено корректно, мы получим сообщение об ошибке. Протокол TCP определен в RFC 793.