На каком языке передаются данные через Интернет?

Чтобы уточнить, я начинающий программист и у меня очень простой вопрос. Если процессоры понимают только машинный язык, то языки более высокого уровня должны быть «переведены» или «интерпретированы» перед тем, как они будут представлены процессору. Мой вопрос: на каком языке передаются данные через Интернет? Отправляется ли он на машинном языке или на языке высокого уровня?

Я пытаюсь понять, как компьютеры разговаривают друг с другом и как данные передаются между ними на уровне бит/байт.

Заранее спасибо.


person JeannieZucchini    schedule 15.08.2014    source источник
comment
en.wikipedia.org/wiki/Internet_protocol_suite и en.wikipedia.org/wiki/Transmission_Control_Protocol Дон Не путайте исполняемый код с данными. Интернет не передает код. Это аналог почтовой системы. Если что-то поместится в конверт или коробку, оно будет отправлено через систему. То, что это что-то, не является проблемой сети, и ее это не должно волновать. он просто заботится об адресах, перечисленных на внешней стороне пакета.   -  person Marc B    schedule 15.08.2014
comment
Что касается языков более высокого уровня, они часто передаются как есть и переводятся/интерпретируются на целевой машине. В других случаях программы должны быть скомпилированы для нескольких разных типов машин, но обычно это включает только несколько наиболее распространенных (например, Windows, Linux, Mac и т. д.).   -  person Drew McGowen    schedule 15.08.2014


Ответы (2)


TL;DR Короткий ответ: 1 и 0

ОДНАКО

Это НАМНОГО более сложный ответ, и, честно говоря, если вы хотите получить на него ответ, что-то побудило вас спросить, и вам действительно нужно знать дело. :) Так...

Воспоминание об уроке телекоммуникаций

Данные передаются в машинном коде. Это 1 и 0. Однако есть общая структура, которая будет переведена с использованием языка высокого уровня. Это зависит от карты NIC на машине, принимающей поток байтов, ОС, которую использует машина, и сервера, принимающего данные. Существует множество различных уровней, на которых обрабатывается запрос.

Стек сетевой информации состоит из множества различных частей, которые описываются моделью OSI и варьируются в зависимости от многих факторов. Позвольте мне дать вам быстрый пробег вниз. Обратитесь к http://vlsm-calc.net/models.php, как я объясню.

  1. Физический — это передача данных в виде 1 и 0, или, скорее, сообщений «ВКЛ» и «ВЫКЛ», которые передаются по сети. Очень физические, прямые электронные токи, которые передаются, описываются физическим уровнем.

  2. DataLink. Это уровень, на котором ваши физические сигналы анализируются в первую очередь. Вы можете думать об этом как о своей сетевой карте на вашей машине. Сетевая карта будет принимать эти необработанные сообщения и определять, предназначено ли сообщение для вас (ВАША локальная сетевая карта получает данные, предназначенные для вашего компьютера) или для пересылки (пакет помечен как требующий передачи на локальный компьютер в вашем компьютере). ЛВС).

  3. Сеть. Итак, это первая точка, в которой проявляется настоящая пакетная обработка. Здесь контенту придается структура, разделение разбивается на пакеты и т. д. Вот откуда берется IP (из TCP/IP). Как правило, используемый протокол определяет, являются ли ваши сообщения жесткими соединениями или запросом без установления соединения и т. д.

  4. Транспорт (TCP/UDP). Здесь создается/анализируется основная часть вашего запроса. Это определяет, среди прочего, надежность ваших пакетов.

... Больше слоев.

Я не буду вдаваться в подробности, потому что это очень сложная тема. В большинстве случаев вы бы посещали курсы телекоммуникаций в колледже, которые помогли бы вам изучить весь стек телекоммуникаций. Но, короче говоря, данные отправляются по сети в виде 1 и 0 и будут встроены в побитовые данные, такие как контрольные цифры, номера пакетов и т. Д. Затем ваша машина решает, как она это обрабатывает. Сетевая карта примет запрос, а затем отправит этот проанализированный поток в сокет на вашем компьютере (скажем, com-порт 5035 [это неправильно, просто пример]). Если есть какое-то приложение, настроенное для прослушивания этого порта (скажем, на вашем компьютере запущен Fiddler и он считывает все данные, которые извлекает сетевая карта). Затем вы можете проанализировать этот поток, используя любой язык, который вы хотите, при условии, что у вас есть соответствующее приложение-драйвер, настроенное для обработки подключения к этому порту.

Извините, я шел по жесткой грани между тем, чтобы дать вам много информации, и в то же время пытался сделать ее легкой для понимания. ЕСЛИ вы действительно заинтересованы в том, чтобы понять, как передаются данные, я НАСТОЯТЕЛЬНО рекомендую вам купить несколько книг/пройти курс и действительно потратить время на то, чтобы понять. Вы узнаете некоторые очень ценные взаимодействия с реализациями сетевого оборудования/ОС/браузера. :) Я бы также сослался на Как понять сетевые протоколы?.

Объяснение, данное там, ОЧЕНЬ тщательное. :)

person Kyle Richter    schedule 15.08.2014

Комментарий @Marc B должен был быть ответом на самом деле.

Я думаю, вы путаете здесь два термина: исполняемый код и данные. Когда вы говорите о том, что машина что-то выполняет, это включает в себя код, программу или машинный язык, как вы упомянули.

Когда вы говорите о двух конечных точках (компьютерах, смартфонах), которые общаются друг с другом через Интернет, речь идет о данных и протоколе.

Итак, чтобы ответить на ваш вопрос, данные через Интернет передаются битами (обычно упакованными в пакеты), и поскольку две конечные точки имеют консенсус по протоколу, они понимают, что содержат данные (что может быть на самом деле что угодно), а затем потребляют это соответственно.

Рекомендуемая литература: Internetworking with TCP/IP Volume One Дуглас Комер

person Niks    schedule 15.08.2014