Вам будет нужно распознавание образов для этого. Для определения небольших различий между двумя изображениями, сети Хопфилда работа довольно хорошо и довольно легки реализовать. Я не знаю доступных реализаций, все же.
Каждое соединение имеет порт источника и порт назначения. Это то, что позволяет вам иметь несколько подключений с вашего компьютера к (скажем) веб-серверу, работающему на порту 80. Подключения однозначно идентифицируются по SourceIP: SourcePort и DestIP: DestPort.
Итак, в вашем примере Firefox и IE будут используя тот же порт на удаленном веб-сервере (порт 80), но на вашем компьютере будут разные порты, чтобы различать их.
Попробуйте запустить netstat
в командной строке, чтобы увидеть текущие соединения.
порты могут использоваться для чего угодно, но существуют соглашения о протоколах, которые следует ожидать на определенных портах.
и вы можете использовать 80 для других функций, некоторые люди делают это просто. обхода межсетевых экранов ...
однако только одно приложение может прослушивать порт.
Обычно важны не локальные порты. Это удаленные порты.
Итак, когда вы открываете браузер и переходите на сайт, вы устанавливаете соединение от (в некоторой степени) случайного порта на вашем конце к порту 80 на стороне сервера. Сервер отвечает вам по тому же соединению. Веб-серверы используют TCP / IP, поэтому это то, что называется и устанавливается соединение. Если вы посмотрите на netstat -an на сервере, к которому вы подключились во время веб-трафика, вы бы увидели именно это:
tcp 0 0 ::ffff:192.168.1.223:22 ::ffff:192.168.1.230:2369 ESTABLISHED
В этой строке говорится, что моя локальная машина установила соединение с моей удаленной машиной через порт 22. Моя локальная машина выбрала случайный исходящий порт 2369, чтобы установить это соединение. В данном случае это ssh-соединение с моим веб-сервером в подвале.
Порты, которые серверы должны использовать для конкретной службы, перечислены здесь , но если вы собираетесь контролировать оба конца соединения , ничто не мешает вам запустить веб-сервер на порту 8383, если вы захотите. Только не ждите, что кто-то еще доберется до этого без вашего ведома. (или он обнаружен при сканировании портов.)
Если бы вы запускали веб-сервер на своем компьютере, он бы открыл порт 80 и прослушивал соединения. Только одна служба может ПРОСЛУШАТЬ на каждый IP-адрес, поэтому вы не можете запустить два веб-сервера одновременно. То же самое, если вы затем подключились к локальному веб-серверу. Вы открываете случайный локальный порт и подключаетесь к своему локальному порту 80 по тому же IP.
Открытие случайного локального порта - это то, что позволяет вам иметь несколько локальных подключений к известному удаленному порту, например 80.
Доступно 65536 портов, поэтому маловероятно, что у вас когда-нибудь закончится, но многие из них «хорошо известны» использования и поэтому избегаются на вашем конце соединения. В общем, все, что выше 1023, - это честная игра. (Все службы, требующие каких-либо привилегий, работают на портах ниже 1023)
Это соединение TCP / IP. TCP / IP имеет внутренний язык для обеспечения надежной доставки информации и устанавливает квитирование при открытии каждого соединения, чтобы гарантировать, что данные могут быть переданы.
Другой распространенный тип соединения - UDP. UDP не устанавливает соединение и поэтому работает немного быстрее и имеет меньшую задержку, но программы, которые его используют, должны иметь возможность терять информацию и при этом работать. По сути, это протокол отправки данных и молитвы. Так работают многие онлайн-игры.
Некоторые выходные данные netstat
могут показать вам, что происходит:
C:\Temp> netstat -an TCP 192.168.XXX.150:1493 74.125.45.100:80 ESTABLISHED TCP 192.168.XXX.150:1504 69.59.196.213:80 ESTABLISHED TCP 192.168.XXX.150:1507 74.125.91.138:80 ESTABLISHED TCP 192.168.XXX.150:1510 65.55.11.162:80 ESTABLISHED TCP 192.168.XXX.150:1518 69.59.196.211:80 ESTABLISHED TCP 192.168.XXX.150:1519 69.59.196.216:80 ESTABLISHED TCP 192.168.XXX.150:3711 64.208.186.96:80 CLOSE_WAIT
Обратите внимание, что адрес 192.168.XXX.150
- это мой компьютер адрес в моей домашней сети. Четырехзначные числа после IP-адреса - это локальный порт, который мой компьютер использует для связи с портом 80
на нескольких разных серверах.