Что значит пакетов принято отправлено
Отслеживание отправленных/полученных пакетов в Windows
#1 Italyano
Вот хочу на примере понять. Я к инету подключён. Вижу отправлено 40000 пакетов, принято 55000 пакетов.
Вопрос, куда было отправлено? Что за пакеты? может это троян что-то отсылает вместе со мной и у меня из-за этого скорость падает?
уметь отследить работу сети. и какие есть АППАРАТНЫЕ и программные средства для этого?
#2 Котел
Italyano (Mar 10 2010, 13:26) писал:
Вот хочу на примере понять. Я к инету подключён. Вижу отправлено 40000 пакетов, принято 55000 пакетов.
Вопрос, куда было отправлено? Что за пакеты? может это троян что-то отсылает вместе со мной и у меня из-за этого скорость падает?
уметь отследить работу сети. и какие есть АППАРАТНЫЕ и программные средства для этого?
Italyano (Mar 10 2010, 13:26) писал:
Вот хочу на примере понять. Я к инету подключён. Вижу отправлено 40000 пакетов, принято 55000 пакетов.
Вопрос, куда было отправлено? Что за пакеты? может это троян что-то отсылает вместе со мной и у меня из-за этого скорость падает?
уметь отследить работу сети. и какие есть АППАРАТНЫЕ и программные средства для этого?
Программные средства для подобных изысканий называются «снифферы», но информация, которую они выдают представляют интерес для специалистов и вообще людей, понимающих строение сети. Программ, показывающих в удобной форме информацию вида:
1 пакетик ушел на mail.ru
2 пакетика ушли на bash.org и т.д
попросту нет, хотя некоторые фаерволы (например Agnitum Outpost) показывают активность разного ПО и то, куда это ПО пытается лезть.
Если все еще интересно посмотреть, на что похож твой сетевой трафик, то вот для примера:
CommView
Wireshark
P.S. Данные программы работают в реальном времени и покажут только текущий трафик, а то, куда у тебя уже ушло 40000 пакетов, так и останется непознанным.
#4 GlooM
Italyano (Mar 10 2010, 13:26) писал:
Вот хочу на примере понять. Я к инету подключён. Вижу отправлено 40000 пакетов, принято 55000 пакетов.
Вопрос, куда было отправлено? Что за пакеты? может это троян что-то отсылает вместе со мной и у меня из-за этого скорость падает?
Italyano (Mar 10 2010, 13:26) писал:
Вот хочу на примере понять. Я к инету подключён. Вижу отправлено 40000 пакетов, принято 55000 пакетов.
Вопрос, куда было отправлено? Что за пакеты? может это троян что-то отсылает вместе со мной и у меня из-за этого скорость падает?
#6 never mind
Расшифровка статусов
международных почтовых отправлений
Полный список расшифровки статусов международных почтовых отправлений на нашем сайте Trackbot.ru
Запись означает, что получатель получил почтовое отправление.
Посылка возвращается отправителю
Почтовое отправление отправлено назад отправителю. Причиной может быть некорректный адрес или имя получателя, истечение срока хранения, иное обстоятельство.
Информация о посылке получена
Отправитель (продавец) присвоил почтовому отправлению номер (трек-код) на сайте почтовой (курьерской службы), но посылка еще не принята в почтовом отделении. С момента регистрации до момента фактической отправки почтового отправления может пройти до 10-14 дней.
Прибыла в пункт назначения
Почтовое отправление поступило в отделение почтовой связи (ОПС) получателя. Далее ОПС направляет в адрес получателя извещение (уведомление) о том, что отправление находится в отделении.
Данный статус означает, что получатель может самостоятельно обратиться в ОПС для получения отправления не дожидаясь извещения.
Прибыла на таможню
После сортировки все посылки отправляются на таможенный досмотр, где проходят через рентген-аппарат.
По решению инспектора таможни почтовое отправление может быть вскрыто для личного контроля. Причиной личного контроля может быть нелегальная транспортировка запрещенных веществ или предметов, коммерческая партия, факт отсутствия таможенной декларации (некорректно заполнена). Почтовое отправление вскрывается двумя операторами в присутствии инспектора таможни, после этого составляется акт таможенного досмотра и прикрепляется к отправлению.
Таможня проверила почтовое отправление и вернула его почтовой службе.
Почтовое отправление принято к обработке в местном почтовом отделении от отправителя (или продавца). Ему присвоен уникальный идентификационный номер (трек-код, номер отслеживания), по которому в дальнейшем вы сможете отследить местонахождение отправления.
Неудачная попытка вручения
Почтовое отправление поступило в один из сортировочных центров транзитной страны для обработки и дальнейшей отправки в сторону получателя.
Длительное время статусы почтового отправления не обновлялись, и после этого промежутка появилась новая информация об отслеживании.
Код отслеживания посылки изменился
Почтовому отправлению присвоен новый трек-код. Обычно это происходит при передаче посылки другой почтовой службе для обработки и дальнейшей отправки в сторону получателя.
Служба доставки изменена
Почтовое отправление передано другой почтовой службе для обработки и дальнейшей отправки в сторону получателя.
Прибыла на таможню страны отправления
После сортировки все посылки отправляются на таможенный досмотр, где проходят через рентген-аппарат.
По решению инспектора таможни почтовое отправление может быть вскрыто для личного контроля. Причиной личного контроля может быть нелегальная транспортировка запрещенных веществ или предметов, коммерческая партия, факт отсутствия таможенной декларации (не полностью заполнена). Почтовое отправление вскрывается двумя операторами в присутствии инспектора таможни, после этого составляется акт таможенного досмотра и прикрепляется к отправлению.
Покинула пункт приема посылки
Такой статус означает, что посылка отправилась по маршруту доставки получателя.
Покинула таможню страны отправления
Таможня проверила почтовое отправление и вернула его почтовой службе.
Посылка готовится к отправке в страну назначения
Данная запись означает упаковку, маркировку, погрузку в контейнер и другие процедуры, необходимые для отправки почтового отправления в страну назначения.
Передана почтовой службе
Почтовое отправление передано местной почтовой службе для обработки и дальнейшей отправки в сторону получателя.
Посылка выдана для доставки
Почтовое отправление поступило в отделение почтовой связи, почтальону передано извещение о поступлении отправления для доставки адресату.
Запись может означать, что по адресу получателя направлена посылка для доставки на дом либо направлено извещение о поступлении посылки в его адрес.
Посылка готовится к доставке
Означает поступление почтового отправления в почтовое отделение получателя, которое должно произвести вручение отправления.
Информация о дальнейших статусах не предоставляется
Почтовое отправление отправлено с трек-кодом (номером отслеживания), который не отслеживается на территории получателя.
Проблемы на таможне
Почтовое отправление задержано таможенными органами для проведения мероприятий по определению предназначения почтового отправления.
При получении в международных почтовых отправлениях в течение календарного месяца товаров, стоимость которых превышает 1000 евро и (или) общий вес которых превышает 31 килограмм необходимо оплатить таможенные пошлины, 30 % от таможенной стоимости товаров, но не менее 4 евро за 1 килограмм их веса.
Если сведения о товарах, пересылаемых в почтовом отправлении, отсутствуют либо не соответствуют фактическим, указанным в таможенной декларации, то возникает необходимость проведения таможенного досмотра и документального оформления его результатов, что значительно увеличивает время, затрачиваемое на оформление отправлений.
Ошибка в маршруте посылки, посылка будет перенаправлена по правильному адресу
Посылку отправили не по тому индексу или адресу, обнаружили ошибку и перенаправили посылку по правильному адресу.
Статус, означающий, что почтовое отправление направлено в адрес получателя.
Посылка пока не получена от отправителя
Продавец зарегистрировал почтовое отправление на сайте почтовой (курьерской службы), но фактически почтовое отправление еще не передано почтовой службе.
После последнего обновления в отслеживании почтового отправления прошло очень много времени. И из-за этого длительного промежутка трек-код не будет автоматически отслеживаться. Также служба доставки могла сообщить, что дальнейшее отслеживание почтового отправления будет прекращено после того, как оно покинет территорию страны отправителя и поступит в страну назначения.
Обобщенный статус, который может подразумевать возврат, досыл, временное хранение и иной статус.
Почтовое отправление отправлено из промежуточного узла почтовой связи и направляется в сторону получателя.
Почтовое отправление поступило в промежуточный узел почтовой связи для сортировки, выбора маршрута и отправки в сторону получателя.
Экспорт из страны отправления
Означает фактическую отправку почтового отправления в страну назначения.
Почтовое отправление передается иностранному перевозчику, который путем наземных или авиа-перевозок доставляет его в место международного почтового обмена (ММПО) страны назначения. Статус “Экспорт” наиболее длительный и переход к статусу «Импорт» может занять некоторое время по причине выбора и согласования наиболее оптимального (дешевого) для перевозчика маршрута доставки вашего почтового отправления. На данном этапе ни отправитель, ни получатель не могут отслеживать точное движение отправления через Интернет.
На операцию экспорта в среднем уходит от 7 до 14 дней, но иногда эта операция может занимать до 60 дней.
Если с момента получения статуса «Экспорт» прошло более 2 месяцев, а видимых изменений нет и почтовое отправление не получило статус «Импорт», то отправителю необходимо обратиться в почтовое отделение и подать заявление на розыск.
Импорт в страну назначения
Запись «Импорт» означает, что отправление поступило на территорию страны назначения и было зарегистрировано.
Отправитель (продавец) присвоил почтовому отправлению трек-код (номер) на сайте почтовой (курьерской службы).
Почтовое отправление вручено адресату.
Вылетело в страну назначения
Почтовое отправление направлено по маршруту доставки получателя.
Вылетело из аэропорта
Запись означает, что отправление вылетело из аэропорта страны отправителя в страну назначения.
Отправление успешно прошло процедуру таможенного контроля и будет передано почтовой службе для дальнейшей отправки в пункт назначения.
Почтовое отправление прибыло в сортировочный центр для обработки и отправки в сторону получателя.
Обобщенный статус, который подразумевает завершение обработки почтового отправления для отправки в сторону получателя.
Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных
Прием и передача пакетов данных
Введение
Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.
В предыдущей статье мы обсудили различные способы передачи данных между компьютерами по сети, и в конце решили использовать протокол UDP, а не TCP. UDP мы решили использовать для того, чтобы иметь возможность пересылать данные без задержек, связанных с ожиданием повторной пересылки пакетов.
А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.
BSD сокеты
В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).
Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.
Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
Особенности разных ОС
Для начала напишем код, который будет определять текущую ОС, чтобы мы могли учесть различия в работе сокетов:
Теперь подключим заголовочные файлы, нужные для работы с сокетами. Так как набор необходимых заголовочных файлов зависит от текущей ОС, здесь мы используем код #define, написанный выше, чтобы определить, какие файлы нужно подключать.
В UNIX системах функции работы с сокетами входят в стандартные системные библиотеки, поэтому никакие сторонние библиотеки нам в этом случае не нужны. Однако в Windows для этих целей нам нужно подключить библиотеку winsock.
Вот небольшая хитрость, как можно это сделать без изменения проекта или makefile’а:
Мне нравится этот прием потому, что я ленивый. Вы, конечно, можете подключить библиотеку в проект или в makefile.
Инициализация сокетов
В большинстве unix-like операционных систем (включая macosx) не требуется никаких особых действий для инициализации функционала работы с сокетами, но в Windows нужно сначала сделать пару па — нужно вызвать функцию “WSAStartup” перед использованием любых функций работы с сокетами, а после окончания работы — вызвать “WSACleanup”.
Давайте добавим две новые функции:
Теперь мы имеем независимый от платформы код инициализации и завершения работы с сокетами. На платформах, которые не требуют инициализации, данный код просто не делает ничего.
Создаем сокет
Теперь мы можем создать UDP сокет. Это делается так:
Далее мы должны привязать сокет к определенному номеру порта (к примеру, 30000). У каждого сокета должен быть свой уникальный порт, так как, когда приходит новый пакет, номер порта определяет, какому сокету его передать. Не используйте номера портов меньшие, чем 1024 — они зарезервированы системой.
Если вам все равно, какой номер порта использовать для сокета, вы можете просто передать в функцию “0”, и тогда система сама выделит вам какой-нибудь незанятый порт.
Теперь наш сокет готов для передачи и приема пакетов данных.
Но что это за таинственная функция “htons” вызывается в коде? Это просто небольшая вспомогательная функция, которая переводит порядок следования байтов в 16-битном целом числе — из текущего (little- или big-endian) в big-endian, который используется при сетевом взаимодействии. Ее нужно вызывать каждый раз, когда вы используете целые числа при работе с сокетами напрямую.
Вы встретите функцию “htons” и ее 32-битного двойника — “htonl” в этой статье еще несколько раз, так что будьте внимательны.
Перевод сокета в неблокирующий режим
По умолчанию сокеты находится в так называемом “блокирующем режиме”. Это означает, что если вы попытаетесь прочитать из него данные с помощью “recvfrom”, функция не вернет значение, пока не сокет не получит пакет с данными, которые можно прочитать. Такое поведение нам совсем не подходит. Игры — это приложения, работающие в реальном времени, со скоростью от 30 до 60 кадров в секунду, и игра не может просто остановиться и ждать, пока не придет пакет с данными!
Решить эту проблему можно переведя сокет в “неблокирующий режим” после его создания. В этом режиме функция “recvfrom”, если отсутствуют данные для чтения из сокета, сразу возвращает определенное значение, показывающее, что нужно будет вызвать ее еще раз, когда в сокете появятся данные.
Перевести сокет в неблокирующий режим можно следующим образом:
Как вы можете видеть, в Windows нет функции “fcntl”, поэтому вместе нее мы используем “ioctlsocket”.
Отправка пакетов
UDP — это протокол без поддержки соединений, поэтому при каждой отправке пакета нам нужно указывать адрес получателя. Можно использовать один и тот же UDP сокет для отправки пакетов на разные IP адреса — на другом конце сокета не обязательно должен быть один компьютер.
Переслать пакет на определенный адрес можно следующим образом:
Обратите внимание — возвращаемое функцией “sendto” значение показывает только, был ли пакет успешно отправлен с локального компьютера. Но оно не показывает, был ли пакет принят адресатом! В UDP нет средств для определения, дошел ли пакет по назначению или нет.
В коде, приведенном выше, мы передаем структуру “sockaddr_in” в качестве адреса назначения. Как нам получить эту структуру?
Допустим, мы хотим отправить пакет по адресу 207.45.186.98:30000.
Запишем адрес в следующей форме:
И нужно сделать еще пару преобразований, чтобы привести его к форме, которую понимает “sendto”:
Как видно, сначала мы объединяем числа a, b, c, d (которые лежат в диапазоне [0, 255]) в одно целое число, в котором каждый байт — это одно из исходных чисел. Затем мы инициализируем структуру “sockaddr_in” нашими адресом назначения и портом, при этом не забыв конвертировать порядок байтов с помощью функций “htonl” и “htons”.
Отдельно стоит выделить случай, когда нужно передать пакет самому себе: при этом не нужно выяснять IP адрес локальной машины, а можно просто использовать 127.0.0.1 в качестве адреса (адрес локальной петли), и пакет будет отправлен на локальный компьютер.
Прием пакетов
После того, как мы привязали UDP сокет к порту, все UDP пакеты, приходящие на IP адрес и порт нашего сокета, будут ставиться в очередь. Поэтому для приема пакетов мы просто в цикле вызываем “recvfrom”, пока он не выдаст ошибку, означающую, что пакетов для чтения в очерели не осталось.
Так как протокол UDP не поддерживает соединения, пакеты могут приходить с множества различных компьютеров сети. Каждый раз, когда мы принимаем пакет, функция “recvfrom” выдает нам IP адрес и порт отправителя, и поэтому мы знаем, кто отправил этот пакет.
Код приема пакетов в цикле:
Пакеты, размер которых больше, чем размер буфера приема, будут просто втихую удалены из очереди. Так что, если вы используете буфер размером 256 байтов, как в примере выше, и кто-то присылает вам пакет в 300 байт, он будет отброшен. Вы не получите просто первые 256 байтов из пакета.
Но, поскольку мы пишем свой собственный протокол, для нас это не станет проблемой. Просто всегда будьте внимательны и проверяете, чтобы размер буфера приема был достаточно большим, и мог вместить самый большой пакет, который вам могут прислать.
Закрытие сокета
На большинстве unix-like систем, сокеты представляют собой файловые дескрипторы, поэтому для того, чтобы закрыть сокеты после использования, можно использовать стандартную функцию “close”. Однако, Windows, как всегда, выделяется, и в ней нам нужно использовать “closesocket”.
Так держать, Windows!
Класс сокета
Итак, мы разобрались со всеми основными операциями: создание сокета, привязка его к порту, перевод в неблокирующий режим, отправка и прием пакетов, и, в конце, закрытие сокета.
Но, как вы могли заметить, все эти операции немного отличаются от платформы к платформе, и, конечно, трудно каждый раз при работе с сокетами вспоминать особенности разных платформ и писать все эти #ifdef.
Поэтому мы сделаем класс-обертку “Socket” для всех этих операций. Также мы создадим класс “Address”, чтобы было проще работать с IP адресами. Он позволит не проводить все манипуляции с “sockaddr_in” каждый раз, когда мы захотим отправить или принять пакет.
Итак, наш класс Socket:
Использовать их для приема и передачи нужно следующим образом:
Как видите, это намного проще, чем работать с BSD сокетами напрямую. И также этот код будет одинаков для всех ОС, потому весь платформозависимый функционал находится внутри классов Socket и Address.
Заключение
Теперь у нас есть независимый от платформы инструмент для отправки и према UDP пакетов.
UDP не поддерживает соединения, и мне хотелось сделать пример, который бы четко это показал. Поэтому я написал небольшую программу, которая считывает список IP адресов из текстового файла и рассылает им пакеты, по одному в секунду. Каждый раз, когда программа принимает пакет, она выводит в консоль адрес и порт компьютера-отправителя и размер принятого пакета.
Вы можете легко настроить программу так, чтобы даже на локальной машине получить несколько узлов, обменивающихся пакетами друг с другом. Для этого просто разным экземплярам программы задайте разные порты, например:
> Node 30000
> Node 30001
> Node 30002
И т.д…
Каждый из узлов будет пересылать пакеты всем остальным узлам, образуя нечто вроде мини peer-to-peer системы.
Я разрабатывал эту программу на MacOSX, но она должна компилироваться на любой unix-like ОС и на Windows, однако если вам для этого потребуется делать какие-либо доработки, сообщите мне.
Что значит пакетов принято отправлено
Операция приема отправления в стране получателя.
Вся почта, поступающая на территорию Российской Федерации с авиарейсов, начинает путь в авиационном отделении перевозки почты (АОПП) – специальный почтовый склад в аэропорту. С самолета в течение 4–6 часов отправления поступают в АОПП, емкости регистрируются, проверяются их целостность и вес. Почта регистрируется в электронной базе данных. При регистрации сканируется штрих код, вносятся данные о том, куда адресована емкость (например, ММПО «Москва»), с какого она рейса поступила, о стране и дате формирования емкости и т. д. Время этих операций может быть увеличено от 1 до 7х суток из-за ограниченных мощностей АОПП.
Следующая операция после экспорта из страны подачи, которая отражается на сайте при отслеживании отправления – это импорт в страну назначения. Информация об импорте появляется после того, как отправление будет передано перевозчиком почтовому оператору страны назначения. Операция «Импорт» означает, что отправление поступило на территорию России, и было зарегистрировано. Международные отправления поступают в Россию через место международного почтового обмена (ММПО). В России существуют несколько ММПО: в Москве, Новосибирске, Оренбурге, Самаре, Петрозаводске, Санкт-Петербурге, Калининграде, Брянске. Выбор города, куда именно поступит международное отправление зависит от страны отправителя. Выбор зависит от наличия регулярных рейсов и свободных провозных мощностей по тому или иному направлению.
Операция приема отправления в стране получателя.
Вся почта, поступающая на территорию Российской Федерации с авиарейсов, начинает путь в авиационном отделении перевозки почты (АОПП) – специальный почтовый склад в аэропорту. С самолета в течение 4–6 часов отправления поступают в АОПП, емкости регистрируются, проверяются их целостность и вес. Почта регистрируется в электронной базе данных. При регистрации сканируется штрих код, вносятся данные о том, куда адресована емкость (например, ММПО «Москва»), с какого она рейса поступила, о стране и дате формирования емкости и т. д. Время этих операций может быть увеличено от 1 до 7х суток из-за ограниченных мощностей АОПП.
Следующая операция после экспорта из страны подачи, которая отражается на сайте при отслеживании отправления – это импорт в страну назначения. Информация об импорте появляется после того, как отправление будет передано перевозчиком почтовому оператору страны назначения. Операция «Импорт» означает, что отправление поступило на территорию России, и было зарегистрировано. Международные отправления поступают в Россию через место международного почтового обмена (ММПО). В России существуют несколько ММПО: в Москве, Новосибирске, Оренбурге, Самаре, Петрозаводске, Санкт-Петербурге, Калининграде, Брянске. Выбор города, куда именно поступит международное отправление зависит от страны отправителя. Выбор зависит от наличия регулярных рейсов и свободных провозных мощностей по тому или иному направлению.
Присваивается в том случае, если почтовый оператор сообщил, что была осуществлена попытка доставки отправления получателю, но по каким-либо причинам вручение не состоялось. Данный статус не отображает конкретной причины невручения.