Порт в комп'ютерних мережах являє собою натуральне число, яке записується в заголовку протоколу OSI. Він призначений для ідентифікації процесу-одержувача пакета в одному хості.
Як правило, в просторі користувача на хості з встановленою ОС відбувається кілька процесів одночасно, і в кожному з них працює певна програма. Якщо ж ці програми зачіпають комп'ютерну мережу, «оболонка» час від часу отримує через неї IP-пакет, який призначається для однієї з програм.
Як це працює?
Якщо програма використовує обмін даними через мережу, цей процес може відбуватися наступним чином: У ОС запитується певний номер порту. При цьому система може як надати його програмі, так і заборонити передачу (це відбувається у випадках, якщо цей номер порту вже використовується іншим додатком). У ОС запитується не конкретизований номер порту, в будь-який вільний. Система сама вибирає його і надає програмі. Як відкрити порт (808080 і так далі)? Всередині мережі обмін інформацією відбувається згідно з визначеним протоколом (між двома процесами). Щоб з'єднання було встановлено, потрібно наступне: IP-адреси хостів одержувача та відправника (необхідні, щоб між ними був побудований маршрут); Номер протоколу; Номери обох портів (одержувача і відправника). Якщо з'єднання відбувається за протоколом TCP, то порт відправника застосовується як ОС одержувача для передачі підтвердження отриманих даних, так і процесом одержувачем для передачі відповіді.
Відкриті і закриті порти
З боку відправника хост і номер порту виступають в якості аналога зворотної адреси, який зазначається на конвертах. Такий номер називають зворотним. У випадках, коли який-небудь процес на хості на постійній основі використовує один і той же номер порту, такий порт вважається відкритим. Наприклад, програма, пов'язана з сервером, може весь час використовувати 80 або 8080 для зв'язку. Коли процес не може відкрити порт, той вважається закритим.
Номери портів
Всі порти мають свої номери, зареєстровані в установленому порядку. Кожен з них призначений для своєї специфічної мети. Так, при роботі в інтернеті часто можна побачити порт 8080. Для чого потрібен такий функціонал? Згідно з офіційними даними, цей порт працює по протоколу TCP і призначений для використання з HTTP. Неофіційно він також використовується контейнер сервлетів Tomcat, написаних на мові Java.
TCP-порт 8080 може використовувати певний протокол для зв'язку, в залежності від програми. Протокол являє собою набір формалізованих правил, який пояснює, як дані передаються по мережі. Це можна представити як мови, який застосовується між комп'ютерами, щоб допомогти їм спілкуватися більш ефективно. Протокол HTTP, який працює через 8080 визначає формат зв'язку між інтернет-браузери і веб-сайтами. Іншим прикладом є протокол IMAP, який визначає зв'язок між поштовими серверами IMAP і клієнтами або, нарешті, протокол SSL, в якому вказується формат, використовуваний для зашифрованих повідомлень.
Передача даних
Таким чином, TCP-порт 8080 використовує протокол управління передачею. Він є одним з основних протоколів в мережах TCP/IP. У той час як протокол IP має справу тільки з пакетами, TCP дозволяє двом хостам встановлювати з'єднання та обмінюватися потоками даних. Він гарантує їх доставку, а також те, що пакунки будуть доставлені на порт 8080 у тому ж порядку, в якому вони були відправлені. Гарантована зв'язок з 8080 - це ключова відмінність між TCP і UDP. UDP 8080 не гарантував би з'єднання так само.
Як відкрити порт 8080 в Windows 7?
Для цього необхідно зайти в меню «Пуск» і знайти Панель управління. В ній потрібно натиснути на пункт «Мережа» і знайти в ньому «Бранмауэр». У вкладці «Винятки» знайдіть пункт «Додати порт». У вас відкриється діалогове вікно, в якому потрібно буде ввести номер порту. Переконайтеся в тому, що в налаштуваннях вказаний TCP, після чого виберіть ОК. Як закрити порт 8080? Для цього достатньо налаштувати підключення на інший визначений порт.
Розширені налаштування проксі-сервера HTTP і TCP
Протокол HTTP працює поверх протоколу TCP, але надає додаткову інформацію про призначення повідомлення. З цієї причини два проксі налаштовуються по-різному. HTTP-трафік включає в себе цільовий хост і порт для повідомлення. Він вирушає TCP-з'єднання з кінцевою точкою TCP, тобто між певним хостом і портом. Як правило, HTTP-повідомлення вказує на ту ж кінцеву точку, що і TCP-з'єднання. Якщо ви змінюєте конфігурацію клієнта для використання проксі-сервера HTTP, з'єднання виконується з іншим хостом і портом, замість зазначеного в URL-адресах HTTP. Це означає, що кінцева точка TCP в повідомленні відрізняється від тієї кінцевої, до якої вона підключена.
Наприклад, якщо HTTP-запит відправлений на сторінку http://19202.1:8080/operation запит включає в себе «19202.1:8080» в заголовку «Host» HTTP-повідомлення, що відправляється на порт 8080 на хості 19202.1.
Однак, якщо ви налаштуєте HTTP-клієнт на використання проксі-сервера, базова TCP-з'єднання переходить до кінцевої точки TCP для нього, час як повідомлення все ще містять вихідну кінцеву точку. Наприклад, якщо ви налаштуєте клієнт на відправку повідомлень на проксі-сервер за адресою 1982811001 порт 3128 а клієнт надсилає запит для http://19202.1:8080/operation, повідомлення не містить «19202.1: 8080 »в заголовку« Host », а тепер також у полі« Request-Line ». Однак це повідомлення тепер відправляється через TCP-з'єднання за адресою 19851100.1:3128. Таким чином, HTTP-проксі може отримувати повідомлення на одному порту проксі-порт 8080) і може пересилати їх декільком різним службам на основі інформації про одержувача.
Як налаштувати прийом підключення через порт 8080?
Отже, заголовок «Host» був доданий в HTTP/1.1. З'єднання HTTP/1.0 не включає його в себе. З цієї причини такі з'єднання, які не проходять через проксі, не включають в себе хост і порт для повідомлення. Однак інформація з HTTP/1.0 відправлена через проксі-сервер, як і раніше містить цільової хост і порт в рядку запиту». Тому відсутність заголовка «Host» не викликає проблеми для проксі.
Щоб включити проксі-сервер TCP, ви повинні змінити конфігурацію клієнта з кінцевої точки TCP в реальному часі на замінну кінцеву точку. На відміну від HTTP, цей протокол не забезпечує вбудовану можливість використання проксі. Тобто, якщо ви підключаєтеся до проксі-сервера через TCP, для передачі інформації кінцевому адресату не передбачено будь-який механізм.
Як налаштувати множинне з'єднання з допомогою 8080?
Єдиний спосіб для проксі-сервера TCP дозволити з'єднання з декількома системами (тобто з кінцевими точками призначення), незалежно від того, який трафік буде відправлений за цим з'єднанням, - це прослуховування іншого порту для кожної з систем. Це дозволяє підключати і підтримувати інформацію про те, який з її номерів портів відповідає кожній кінцевій точці. Потім клієнт налаштовується з проксі-портом, що відповідає кожній системі, з якої йому потрібно з'єднатися. Проксі-TCP для прослуховування і відповідні їм кінцеві точки змінюються в операторах у файлі конфігурації проксі, RTCP_install_dir /httptcp /registration.xml. В першу чергу, необхідно перевірити порт 8080 – якщо він відкритий за замовчуванням, подальші налаштування будуть зроблені за кілька хвилин. У цьому прикладі 19851100.1 є IP-адресу проксі-сервера. Будь-який трафік, відправлений на порт 3333 на проксі-сервер, відправляється на порт 8080 за адресою: www. Example. com: Тому ви повинні змінювати файл конфігурації клієнта всякий раз, коли ви додаєте новий пункт призначення для трафіку. Це обмеження не поширюється на HTTP-проксі.
Взаємодія між HTTP і TCP
Щоб зрозуміти, як порти обробляються проксі-серверах HTTP і TCP, припустимо, що у вас є дві служби: на 19202.1:8080 і 19202.1:8081 і проксі-сервер, що працює на 19851100.1. Якщо ж вони відрізняються за IP-адресою, а не за номером порту, цей приклад буде таким же, за винятком відповідного адреси для кожної служби. Якщо вони очікують HTTP-трафік на один HTTP-проксі-порт, запити на обидві кінцеві точки TCP можуть бути відправлені на нього. Коли HTTP бачить, що повідомлення адресоване 19202.1:8080 проксі перенаправляє повідомлення на цю адресу або застосовує будь-які правила, які він має для цієї служби. Ця ж процедура застосовується до 19202.1:8081 використовуючи той же самий порт. Якщо ці дві служби замість цього очікують трафік TCP, повинні бути відкриті два TCP-проксі-порту, визначені двома елементами у файлі конфігурації: Конфігурація клієнта для першої служби змінюється з «19202.1:8080» на «19851100.1:3333», а для другої - з «19202.1:8081» до «19851100.1:3334». Клієнт надсилає повідомлення (пакет TCP) першої службі за першою адресою. Проксі-сервер отримує його на цьому порту (3333), але не знає, які дані відправляються по цьому з'єднанню. Все, що йому відомо - це підключення до порту 3333. Тому проксі-сервер консультується з його конфігурацією і бачить, що трафік на цей порт повинен бути перенаправлений на 19202.1:8080 (або що до нього необхідно застосувати правило для цієї служби). Якщо ви не можете перенаправити весь HTTP-трафік, оскільки конфігурація клієнта не підтримує конфігурацію HTTP-проксі, ви повинні використовувати зворотний HTTP-проксі. У ньому замість цільового URL-адреси ви вказуєте потрібний вам. Цей процес аналогічний процесу налаштування проксі-сервера TCP, в якому ви вказуєте його в якості кінцевої точки TCP повідомлення у клієнтській системі і створюєте правило пересилання. Різниця полягає в тому, що ви додаєте атрибут типу в правило, яке визначає HTTP, як у наступному прикладі: .
Як йде рух трафіку?
Тепер проксі-сервер налаштований на прийом тільки HTTP-трафіку на певний порт, і може застосовувати більш багату фільтрацію. Наприклад, сервер може фільтрувати трафік на заглушку, яка не має певного шляху в своєму URL-адресі, або який не використовує певний HTTP-метод, такий як POST. Однак, оскільки заглушка не завжди працює, сервер все ще потребує адресата з елемента , щоб мати можливість відправляти трафік в систему. Наприклад, припустимо, що клієнту необхідно підключитися до служби на 19202.1:8080 і використовувати зворотний HTTP-проксі на 19851100.1:3333. Перш ніж клієнт зможе використовувати проксі-сервер, конфігурацію клієнта для цієї служби необхідно змінити URL-адреси, наприклад http://19202.1:8080/operation, на http://19851100.1:3333/operation. Запит, який надсилається на цей новий URL-адресу, потрапляє в проксі-сервер. Повідомлення запиту містить кінцеву точку TCP для проксі (19851100.1:3333) у заголовку «Хост», а не адресу системи, тому що клієнт не знає, що він відправляє перенаправленное повідомлення. Ця спрощена клієнтська роль визначає природу такого з'єднання. Таким чином, проксі-сервер використовує елементи , щоб знати, що запит, що надходить на порт 3333 вимагає одне з наступних дій: він повинен бути перенаправлений в живу систему на 19202.1:8080 а заголовок «Host» у повідомленні повинен бути оновлений. Для повідомлення повинні застосовуватися всі правила цієї служби, наприклад, маршрутизація на заглушку.