TCP протокол. Какво представляват портовете на компютърната мрежа? Стандартни tcp портове

TCP/IP портове

Има два вида обмен на данни от компютър към компютър - datathundersи сесии. Дейтаграмае съобщение, което не изисква потвърждение за получаване от получаващата страна, а ако такова потвърждение е необходимо, адресатът трябва сам да изпрати специално съобщение. За да обменят данни по този начин, приемащата и предаващата страна трябва стриктно да спазват определен протокол, за да избегнат загуба на информация. Всяка дейтаграма е самостоятелно съобщение и ако има няколко дейтаграми в LAN, доставката им до адресата, най-общо казано, не е гарантирана. В този случай дейтаграмата обикновено е част от съобщение и в повечето локални мрежи скоростта на предаване на дейтаграмите е много по-висока от тази на съобщенията в сесии.

IN сесияпредполага се, че се създава логическа връзка за обмен на съобщения между компютрите и получаването на съобщения е гарантирано. Въпреки че дейтаграмите могат да се предават по всяко време, в сесия сесията се прекратява преди съобщението да бъде предадено и сесията трябва да бъде затворена, когато обменът на данни приключи.

Операционните системи на повечето компютри поддържат мултипрограмен режим, т.е. няколко програми работят едновременно (няколко процеса, работещи паралелно). С известна степен на точност можем да кажем, че процесът е крайната дестинация за съобщението. Въпреки това, тъй като процесите се създават и прекратяват динамично, подателят рядко има достатъчно информация, за да идентифицира процеса на друг компютър. Следователно става необходимо да се определи дестинацията на данните въз основа на функциите, изпълнявани от процесите, без да се знае нищо за процесите, които се изпълняват от тези функции.

На практика, вместо да се мисли за процес като крайна дестинация, се смята, че всеки компютър има набор от дестинации, наречени протоколни портове. Всеки порт се идентифицира с положително цяло число (0 до 65535). В този случай операционната система предоставя комуникационен механизъм, използван от процесите, за да посочи порта, на който работят, или порта, до който имат нужда от достъп. Обикновено портовете са буферирани и данните, пристигащи на конкретен порт, преди процесът да е готов да ги получи, няма да бъдат загубени: те ще бъдат поставени на опашка, докато процесът не ги извлече.

За да разберете по-добре пристанищната технология, представете си, че отивате в банка, за да направите депозит. За да направите това, трябва да отидете на определен прозорец, където операторът ще попълни документите и ще отворите сметка. В този пример банката представлява компютър, а банковите оператори са програми, които извършват специфична работа, но прозорците са портовете и всеки прозорец в банката често е номериран (1, 2,3 ...).

Същото важи и за портовете, следователно, за да комуникира с порт на друг компютър, подателят трябва да знае както IP адреса на компютъра получател, така и номера на порта на компютъра. Всяко съобщение съдържа както номера на порта на компютъра, към който е адресирано съобщението, така и номера на порта източник на компютъра, до който трябва да бъде изпратен отговорът. Това дава възможност да се отговори на подателя за всеки процес.

TCP/IP портовете с номера от 0 до 1023 са привилегировани и се използват от мрежови услуги, които от своя страна се изпълняват с права на администратор (супер потребител). Например услугата за споделяне на файлове и папки на Windows използва порт 139, но ако не работи на компютъра, ще получите съобщение за грешка, когато се опитате да получите достъп до тази услуга (т.е. този порт).

TCP/IP портовете от 1023 до 65535 са непривилегировани и се използват от клиентски програми за получаване на отговори от сървъри. Например уеб браузърът на потребител, когато осъществява достъп до уеб сървър, използва порт 44587 на неговия компютър, но има достъп до порт 80 на уеб сървъра. След като получи заявката, уеб сървърът изпраща отговор на порт 44587, който се използва от уеб браузъра.

Относно портовете на компютърната мрежа.

Статията ясно описва какво е системен порт, защо програмите се нуждаят от него, как и какви устройства използват портове за комуникация в мрежата и какво общо имат портовете със сигурността на вашите данни. Уводна статия; Друг път ще говорим за това как да наблюдаваме системните портове, да конфигурираме и сканираме правилно, като избягваме грешки и разбираме какво се случва.

Портове за компютърна мрежа: какви са те?

Веднага щом компютрите са на път да обменят информация по мрежата, те веднага отварят информационни портали за обмен. В мрежовата архитектура комуникацията между ВСЯКИ две системи се основава на петнеизменни принципи. Така че данните „летят“ от точката Адо точката б, трябва да се знае:

  • IP адрес на източника на информация
  • IP адрес на получател
  • протокол, по който устройствата ще комуникират
  • изходен предавателен порт
  • и порта на местоназначението, използван от транспортния протокол RFC793

Порт- това е един вид виртуално разширение, добавка към мрежовия адрес (като добавка в цифри към името на улицата или къщата на адреса, на който живеете). Пощальонът ще дойде на вашата улица, но няма да достави писмото - не знае на кого, защото не знае номера на апартамента. Така че информацията ще достигне до вашия компютър чрез IP, но без правилния номер на порт информацията няма да стигне до компютъра. Компютърът просто няма да разбере как да го обработи, използвайки какво приложение. Компютърни мрежови портове- това са пътища между услугите, които се изпълняват в операционната система, инсталирана на компютъра, и процесите майка/сестра на хост компютрите, които понякога се намират на хиляди километри от вас.

Между другото,. Това са физически конектори, които за разлика от описаните могат да се докосват. Но тяхната функция е по същество една и съща: всички портове са проектирани да получават информация от други устройства.

Транспортните протоколи (най-разпространените и използвани са TCP и UDP) проникват в компютъра, използвайки в съобщението, наред с други неща, числа от общия брой портове. Когато дадено приложение иска да говори с друго устройство, то директно иска от локалната операционна система да отвори канал за предаване. Приложенията, които могат да комуникират, използвайки и двата протокола (UDP и TCP), могат да използват един и същ порт за това, но това условие не е задължително.

Какво представляват компютърните портове: колко са?

Точният брой на портовете на компютъра е 65 535 . И те имат собствена градация. И така, портове с номера до 1023 Linux и Unix-подобните операционни системи се считат за „критични“ системи за мрежови операции, така че достъпът до тях и свързаните с тях услуги често изисква коренправа. Windows също ги счита за системни и ги следи отблизо.

Портове от 1024 към 49151 са маркирани като „готови за регистрация“. Това означава, че тези портове са запазени или могат да бъдат запазени за определени услуги. За щастие или за съжаление, те не са присвоени на тези услуги със строги правила, но могат да предоставят ключ за разпознаване на работеща програма от страната на хоста. Останалите (започвайки от 49152 ) портовете не са регистрирани и се използват по преценка на потребителите на ОС и се наричат ​​„динамични“ портове. Така че запомнянето кой порт е предназначен за коя услуга често е просто безполезно (поне днес; ситуацията обаче може да се промени). Но има списък с портове, които са били използвани от конкретни услуги „от незапомнени времена“:

20 : FTP данни
21 : FTP контрол
22 : SSH
23 : Telnet<= незащищённый, так что не рекомендуется к использованию
25 : SMTP
43 : WHOIS
53 : DNS услуги
67 : DHCP услуга
68 : DHCP клиент
80 : HTTP трафик<= обычный веб трафик
110 : POP3 пощенски
113 : услуги за удостоверяване в IRC мрежи
143 : IMAP поща
161 : SNMP
194 : IRC
389 :LDAP
443 : HTTPS<= защищённый сетевой трафик
587 : SMTP<= добавление сообщений
631 : CUPS порт за виртуални принтери.

Има още нещо, което трябва да знаете, когато се запознавате какво представляват компютърните портове. Това са специални термини, които характеризират състоянието на портовете в смисъл на обмен на данни в текущия момент. Така че:

  • Порт– локализиране на мрежата в операционната система със задаване на специфична числена стойност за обмен на информация чрез подходящи протоколи
  • Интернет контакти- или просто гнезда– файлови дескриптори, указващи IP адреса и свързания номер на порт плюс специален протокол за предаване, който ще работи с данни
  • Подвързване– процесът на използване на интернет гнездо от услуга или услуга при предаване и получаване на файлове
  • Слушане– опит за свързване с услуга или услуга с порт/протокол/IP адрес или комбинация от тези компоненти на мрежовата идентификация на системата, за да се изчакат заявки от клиента на услугата
  • – проверка на състоянието на пристанищата, за да се разпознае тяхната готовност за по-нататъшни действия

Какво представляват компютърните портове? Искате ли да им се възхищавате?

Запознати сте със списъка с общи портове, но някои услуги може да използват порт, който не им е зададен по подразбиране. Или, което не е необичайно, отворените портове се използват като задна врата за нападател. Така че, ако решите сами да промените настройките на порта, трябва да сте сигурни, че спазващи закона клиент и сървър ще се намерят. В противен случай трябва да позволите на Windows да блокира порта, да конфигурирате блокирането в рутера или да разчитате на доставчика, който често блокира портове в края на деня, без да пита конкретно клиентелата.

Можете да видите на компютъра си точно сега кои портове какво правят. Въведете в терминала:

по-малко /etc/services

и превъртете с мишката до края. Ето ги в целия си блясък.

Kali Linux е полезен във всеки смисъл nmapможе също да покаже списък с тях:

По-малко /usr/share/nmap/nmap-services

Ако четете тази статия в Windows, за да видите текущо отворени портове, стартирайте командната конзола като администратор cmdи изпълнете командата в него:

Netstat -a

Въпреки това, по-обширни портове, работещи в Windows, ще ви бъдат отворени от малка програма, наречена Анализатор на процеси и портове, който може лесно да бъде изтеглен онлайн. Просто и ясно ще обясни кои портове са отворени в момента и какви програми слушат тези портове. Ето един от разделите на помощните програми:

С помощта на програмата можете лесно да проверите местоположението на този процес в системата и да определите колко безопасен е той.

Компютърни портове и мрежова сигурност

Програмите и услугите, които са описани тук, ви позволяват да видите конкретно отворените портове във вашата ОС(Windows и Linux) за някои програми, които вече работят на компютъра. Не забравяйте обаче, че в системата за пренос на информация между вашия компютър и далечен уеб сървър някъде в Холандия, все още има много устройства, които филтрират трафика по-сериозно, включително портове за наблюдение (между другото, включително този в рутера на вашата стая). Не твоя, разбира се. Но тези сървъри решават дали някакви данни ще попаднат във вашия Windows. Вашият доставчик също има пръст в това, на когото плащате пари за достъп до мрежата, блокиране на портове за целите на сигурността или за предотвратяване на ненужна мрежова активност (ами ако искате да настроите свой собствен уеб сървър у дома? - няма да т работа).

Защо се прави това? Нека продължа аналогията с къщите и улиците. Представете си, че сте решили да закупите гараж за колата си (компютър) в близката кооперация. Първото нещо, което трябва да направите, е да защитите и укрепите невъзможността за влизане в помещенията: инсталирайте добри врати и инсталирайте надеждни ключалки (затваряне на портове). Но какво друго можете да направите? Някой задава аларма (специални мрежови скенери за проверка на състоянието на портовете). Спестете пари и инсталирайте допълнителна ограда с порта (рутер свградена защитна стена), за да можете да паркирате мотоциклет вътре (таблет) . И за да не се развалят тревните площи от камиони, от своя страна таблото (доставчик) инсталира автоматична бариера (мрежаанти- филтри): всичко изглежда отворено, но непознат няма да мине. И така нататък…

Въпреки това, ако все още ще разберете как компютърът ви е видим от глобалната мрежа (например за нападатели, които се опитват да тестват силата ви), описаните тук методи са напълно неподходящи. Ще развием тази тема в бъдещи статии.

Прочетено: 2,419

Мрежовите портове могат да предоставят жизненоважна информация за приложенията, които осъществяват достъп до компютрите по мрежата. Познавайки приложенията, които използват мрежата и съответните мрежови портове, можете да създадете точни правила за защитна стена и да конфигурирате хост компютрите да позволяват само полезен трафик. Чрез изграждане на мрежов профил и внедряване на инструменти за разпознаване на мрежовия трафик можете по-ефективно да откривате нарушители - понякога просто чрез анализиране на мрежовия трафик, който генерират. Започнахме да разглеждаме тази тема в първата част на статията, публикувана в предишния брой на списанието. Той предостави основна информация за TCP/IP портовете като основа на мрежовата сигурност. Част 2 ще опише някои мрежови и хост методи, които могат да се използват за идентифициране на приложения, слушащи в мрежа. По-нататък в статията ще говорим за това как да оценим трафика, преминаващ през мрежата.

Блокиране на мрежови приложения

Повърхността на мрежова атака е често срещан термин за описание на уязвимостта на мрежата. Много мрежови атаки се извършват чрез уязвими приложения и повърхността на атаката може да бъде значително намалена чрез намаляване на броя на активните приложения в мрежата. С други думи, трябва да деактивирате неизползваните услуги, да инсталирате защитна стена на специалната система, за да проверите легитимността на трафика, и да създадете пълен списък за контрол на достъпа (ACL) за защитната стена в периметъра на мрежата.

Всеки отворен мрежов порт представлява приложение, слушащо мрежата. Повърхността на атака на всеки сървър, свързан към мрежата, може да бъде намалена чрез деактивиране на всички несъществени мрежови услуги и приложения. Windows Server 2003 е по-добър от предишните версии на операционната система, защото позволява по-малко мрежови услуги по подразбиране. Въпреки това, одитът все още е необходим за откриване на новоинсталирани приложения и промени в конфигурацията, които отварят ненужни мрежови портове.

Всеки отворен порт е потенциална задна врата за нападатели, които експлоатират пространства в хост приложението или тайно осъществяват достъп до приложението с име и парола на друг потребител (или използват друг легитимен метод за удостоверяване). Така или иначе важна първа стъпка към защитата на вашата мрежа е просто да деактивирате неизползваните мрежови приложения.

Сканиране на портове

Сканирането на портове е процес на откриване на слушащи приложения чрез активно проучване на мрежовите портове на компютър или друго мрежово устройство. Възможността да четете резултатите от сканирането и да сравнявате мрежовите отчети с резултатите от проучването на хост порт ви позволява да получите ясна картина на трафика, преминаващ през вашата мрежа. Познаването на мрежовата топология е важно изискване за изготвяне на стратегически план за сканиране на конкретни области. Например, чрез сканиране на набор от външни IP адреси можете да съберете ценни данни за интернет нападател. Затова трябва да сканирате мрежата си по-често и да затворите всички ненужни мрежови портове.

Сканирането на портове на външна защитна стена може да открие всички отговарящи услуги (като уеб или имейл), хоствани на вътрешни сървъри. Тези сървъри също трябва да бъдат защитени. Конфигурирайте познат скенер на портове (например Network Mapper - Nmap), за да сканирате желаната група UDP или TCP портове. Обикновено сканирането на TCP портове е по-надеждно от сканирането на UDP поради по-задълбочената обратна връзка от протоколите на TCP, ориентирани към свързване. Има версии на Nmap както за Windows, така и за Unix. Стартирането на основно сканиране е лесно, въпреки че програмата предлага много по-разширени функции. За да намеря отворени портове на тестовия компютър, изпълних командата

Nmap 192.168.0.161

Екран 1 показва резултатите от сесия за сканиране - в този случай компютър с Windows 2003 в стандартна конфигурация. Данните, събрани от сканирането на портове, показват, че има шест отворени TCP порта.

Екран 1: Основна сесия за сканиране на Nmap
  • Порт 135 се използва от функцията за съпоставяне на крайни точки на RPC, намираща се в много технологии на Windows - като COM/DCOM приложения, DFS, регистриране на събития, репликация на файлове, опашка за съобщения и Microsoft Outlook. Този порт трябва да бъде блокиран от защитната стена на мрежовия периметър, но е трудно да се блокира и въпреки това да се поддържа функционалността на Windows.
  • Порт 139 се използва от услугата за сесия NetBIOS, която позволява браузъра за намиране на други компютри, услугите за споделяне на файлове, влизането в мрежата и услугата сървър. Трудно се затваря, също като порт 135.
  • Порт 445 се използва от Windows за споделяне на файлове. За да затворите този порт, трябва да блокирате споделянето на файлове и принтери за мрежи на Microsoft. Затварянето на този порт не пречи на компютъра да се свързва с други отдалечени ресурси; други компютри обаче няма да могат да се свържат с тази система.
  • Портове 1025 и 1026 се отварят динамично и се използват от други системни процеси на Windows, по-специално различни услуги.
  • Порт 3389 се използва от отдалечен работен плот, който не е активиран по подразбиране, но е активен на моя тестов компютър. За да затворите порта, отидете в раздела Отдалечено в диалоговия прозорец Свойства на системата и изчистете отметката от квадратчето Разрешаване на потребителите да се свързват дистанционно към този компютър.

Не забравяйте да потърсите отворени UDP портове и затворете ненужните. Програмата за сканиране показва отворените портове на компютъра, които се виждат от мрежата. Подобни резултати могат да бъдат получени с помощта на инструменти, разположени на хост системата.

Сканиране на хост

В допълнение към използването на скенер за мрежови портове, отворените портове на хост системата могат да бъдат открити чрез следната команда (изпълнете на хост системата):

Netstat -ан

Тази команда работи както на Windows, така и на UNIX. Netstat предоставя списък с активни портове на компютър. В Windows 2003 Windows XP трябва да добавите опцията -o, за да получите съответния програмен идентификатор (PID). Фигура 2 показва изхода на Netstat за същия компютър, който е бил сканиран преди това. Моля, обърнете внимание, че няколко порта, които преди са били активни, са затворени.

Одит на журнала на защитната стена

Друг полезен начин за откриване на мрежови приложения, които изпращат или получават данни по мрежата, е събирането и анализирането на повече данни в регистрационния файл на защитната стена. Отказ на записи, които предоставят информация от предния край на защитната стена, е малко вероятно да бъдат полезни поради "шумния трафик" (напр. от червеи, скенери, ping тестване), който задръства интернет. Но ако регистрирате разрешените пакети от вътрешния интерфейс, можете да видите целия входящ и изходящ мрежов трафик.

За да видите необработените данни за трафика във вашата мрежа, можете да инсталирате мрежов анализатор, който се свързва с мрежата и записва всички открити мрежови пакети. Най-широко използваният безплатен мрежов анализатор е Tcpdump за UNIX (версията за Windows се нарича Windump), който е лесен за инсталиране на вашия компютър. След като инсталирате програмата, трябва да я конфигурирате да работи в режим на получаване на всички мрежови пакети, за да регистрира целия трафик, след което да я свържете към порт монитор на мрежовия комутатор и да наблюдавате целия трафик, преминаващ през мрежата. Настройването на порт монитор ще бъде обсъдено по-долу. Tcpdump е изключително гъвкава програма, която може да се използва за преглед на мрежовия трафик с помощта на специализирани филтри и показва само информация за IP адреси и портове или всички пакети. Трудно е да видите мрежови дъмпове в големи мрежи без помощта на подходящи филтри, но трябва да се внимава да не се загубят важни данни.

Комбиниране на компоненти

Досега разгледахме различни методи и инструменти, които могат да се използват за откриване на приложения, използващи мрежата. Време е да ги комбинираме и да покажем как да определим отворените мрежови портове. Удивително е колко бъбриви са компютрите в мрежата! Първо се препоръчва да прочетете документа на Microsoft „Преглед на услугата и изисквания за мрежови портове за системата Windows Server“ ( http://support.microsoft.com/default.aspx?scid=kb;en-us;832017), който изброява протоколите (TCP и UDP) и номерата на портовете, използвани от приложенията и повечето основни услуги на Windows Server. Документът описва тези услуги и свързаните с тях мрежови портове, които използват. Препоръчваме ви да изтеглите и отпечатате това полезно справочно ръководство за мрежови администратори на Windows.

Настройка на мрежов анализатор

По-рано беше отбелязано, че един от начините за определяне на портовете, използвани от приложенията, е да се наблюдава трафикът между компютрите с помощта на мрежов анализатор. За да видите целия трафик, трябва да свържете мрежов анализатор към хъб или порт монитор на комутатора. Всеки порт на хъб вижда целия трафик от всеки компютър, свързан към този хъб, но хъбовете са остаряла технология и повечето компании ги заменят с комутатори, които осигуряват добра производителност, но са тромави за анализ: всеки порт на комутатор приема само трафик, предназначен за един компютър, свързан към този порт. За да анализирате цялата мрежа, трябва да наблюдавате трафика, изпратен към всеки порт на комутатора.

Това изисква настройка на порт монитор (различни доставчици го наричат ​​span port или огледален порт) на комутатора. Инсталирането на монитор на порт на комутатор Cisco Catalyst от Cisco Systems е лесно. Трябва да се регистрирате на комутатора и да активирате режима на активиране, след което да отидете на конфигуриране на терминалния режим и да въведете номера на интерфейса на порта на комутатора, към който трябва да се изпраща целият наблюдаван трафик. Накрая трябва да посочите всички наблюдавани портове. Например, следните команди наблюдават три Fast Ethernet порта и препращат копие на трафика към порт 24.

Интерфейс FastEthernet0/24 порт монитор FastEthernet0/1 порт монитор FastEthernet0/2 порт монитор FastEthernet0/3 край

В този пример мрежов анализатор, свързан към порт 24, ще преглежда целия изходящ и входящ трафик от компютри, свързани към първите три порта на комутатора. За да видите създадената конфигурация, въведете командата

Напиши памет

Първоначален анализ

Нека да разгледаме пример за анализиране на данни, преминаващи през мрежа. Ако използвате компютър с Linux за мрежов анализ, можете да получите изчерпателна представа за типа и честотата на пакетите в мрежата, като използвате програма като IPTraf в статистически режим. Подробности за трафика могат да бъдат намерени с помощта на програмата Tcpdump.

Транспортен слой

Задачата на транспортния слой е да прехвърля данни между различни приложения, работещи на всички мрежови възли. След като пакетът бъде доставен чрез IP протоколкъм получаващия компютър, данните трябва да бъдат изпратени до специален процес на получател. Всеки компютър може да изпълнява множество процеси и едно приложение може да има множество входни точки, действащи като дестинация за пакети с данни.

Пакетите, пристигащи на транспортния слой на операционната система, се организират в множество опашки във входните точки на различни приложения. В TCP/IP терминологията тези входни точки се наричат ​​портове.

Протокол за контрол на предаването

Протокол за контрол на предаването(TCP) (Transmission Control Protocol) - е задължителен стандарт за протокол TCP/IP, дефиниран в стандарта RFC 793, „Протокол за контрол на предаването (TCP)“.

TCPе протокол на транспортен слой, който осигурява транспортиране (предаване) на поток от данни, като е необходимо първо да се установи връзка, като по този начин се гарантира увереност в целостта на получените данни, а също така извършва повторно искане за данни в случай на загуба на данни или корупция. Освен това TCP протоколът следи дублиращите се пакети и, ако бъдат открити, унищожава дублиращите се пакети.

За разлика от протокола UDPгарантира целостта на предадените данни и потвърждението на изпращача за резултатите от прехвърлянето. Използва се при прехвърляне на файлове, където загубата на един пакет може да повреди целия файл.

TCP постига своята надеждност чрез:

  • Данните от приложението се разделят на блокове с определен размер, които ще бъдат изпратени.
  • Когато TCP изпраща сегмент, той задава таймер, чакайки потвърждението на този сегмент да пристигне от отдалечения край. Ако не бъде получено потвърждение след изтичане на времето, сегментът се предава отново.
  • Когато TCP получава данни от отдалечената страна на връзката, той изпраща потвърждение. Това потвърждение не се изпраща веднага, но обикновено се забавя за част от секундата.
  • TCP изчислява контролна сума за своята заглавка и данни. Това е контролна сума, изчислена в края на връзката, чиято цел е да открие всяка промяна в данните по време на предаване. Ако сегмент пристигне с неправилна контролна сума, TCP го отхвърля и не се генерира потвърждение. (Очаква се подателят да изтече и да предаде отново.)
  • Тъй като TCP сегментите се предават като IP дейтаграми и IP дейтаграмите могат да пристигнат на случаен принцип, TCP сегментите също могат да пристигнат на случаен принцип. След като получи данните, TCP може да ги подреди отново според нуждите, така че приложението да получи данните в правилния ред.
  • Тъй като една IP дейтаграма може да бъде дублирана, получаващият TCP трябва да отхвърли дублираните данни.
  • TCP осигурява контрол на потока. Всяка страна на TCP връзка има специфично буферно пространство. TCP на приемащия край позволява на отдалечения край да изпраща данни само ако получателят може да ги побере в буфер. Това не позволява на бавните хостове да препълват своите буфери с бързи хостове.

  • Поредният номер служи за две цели:
    • Ако флагът SYN е зададен, тогава това е началната стойност на поредния номер - ISN (Initial Sequence Number), а първият байт данни, който ще бъде предаден в следващия пакет, ще има пореден номер, равен на ISN + 1.
    • В противен случай, ако SYN не е зададен, първият байт данни, предадени в даден пакет, има този пореден номер.
  • Номер на потвърждение - Ако флагът ACK е зададен, тогава това поле съдържа поредния номер, очакван от получателя следващия път. Маркира този сегмент като потвърждение за получаване.
  • Дължината на заглавието е посочена в 32-битови думи.
  • Размерът на прозореца е броят байтове, които получателят е готов да приеме без потвърждение.
  • Контролна сума - включва псевдо заглавка, заглавка и данни.
  • Индикатор за спешност - показва последния байт спешни данни, на които трябва да се отговори незабавно.
  • URG - флаг за спешност, включва полето "Индикатор за спешност"; ако =0, полето се игнорира.
  • ACK - флаг за потвърждение, включва полето „Номер на потвърждение“, ако е =0, полето се игнорира.
  • PSH - флагът изисква push операция, TCP модулът трябва спешно да прехвърли пакета към програмата.
  • RST - флаг за прекъсване на връзката, използван за отказ на връзка
  • SYN - флаг за синхронизиране на пореден номер, използван при установяване на връзка.
  • FIN - флаг за край на предаване от страна на подателя

Нека да разгледаме структурата на заглавката TCPс помощта на мрежов анализатор на Wireshark:


TCP портове

Тъй като няколко програми могат да работят на един и същ компютър, за да се достави TCP пакет до конкретна програма, се използва уникалният идентификатор или номер на порт на всяка програма.

Номер на порте условно 16-битово число от 1 до 65535, което показва за коя програма е предназначен пакетът.

TCP портовете използват конкретен програмен порт за доставяне на данни, предавани чрез протокола за контрол на предаването (TCP). TCP портовете са по-сложни и работят по различен начин от UDP портовете. Докато UDP портът действа като единична опашка от съобщения и като входна точка за UDP връзка, крайната входна точка за всички TCP връзки е уникална връзка. Всяка TCP връзка се идентифицира уникално от две входни точки.

Всеки отделен порт на TCP сървър може да предложи споделен достъп до множество връзки, тъй като всички TCP връзки се идентифицират с две стойности: IP адрес и TCP порт (сокет).

Всички номера на TCP портове, които са по-малки от 1024, са запазени и регистрирани в Internet Assigned Numbers Authority (IANA).

Номерата на UDP и TCP портовете не се припокриват.

TCP програмите използват запазени или добре известни номера на портове, както е показано на следващата фигура.

Установяване на TCP връзка

Нека сега да видим как се установяват TCP връзки. Да предположим, че процес, работещ на един хост, иска да установи връзка с друг процес на друг хост. Спомнете си, че хостът, който инициира връзката, се нарича "клиент", докато другият хост се нарича "сървър".

Преди да предадат каквито и да било данни, съгласно TCP протокола, страните трябва да установят връзка. Връзката се установява на три етапа (TCP процес "тройно ръкостискане").

  • Рекуестърът (обикновено наричан клиент) изпраща SYN сегмент, указващ номера на порта на сървъра, към който клиентът иска да се свърже, и оригиналния пореден номер (ISN) на клиента.
  • Сървърът отговаря със своя SYN сегмент, съдържащ оригиналния пореден номер на сървъра. Сървърът също така потвърждава пристигането на SYN на клиента с помощта на ACK (ISN + 1). За SYN се използва един пореден номер.
  • Клиентът трябва да потвърди пристигането на SYN от сървъра със своите SYN сегменти, съдържащи оригиналния пореден номер на клиента (ISN+1) и използвайки ACK (ISN+1). Битът SYN е настроен на 0, защото връзката е установена.

След като TCP връзката е установена, тези два хоста могат да предават данни един на друг, тъй като TCP връзката е пълен дуплекс, те могат да предават данни едновременно.