【问题标题】:What language is data transmitted in over the internet?通过 Internet 传输的数据是什么语言?
【发布时间】:2014-08-15 14:37:57
【问题描述】:

澄清一下,我是一个新手程序员,有一个非常基本的问题。如果处理器只理解机器语言,那么高级语言在呈现给处理器之前需要“翻译”或“解释”。我的问题是通过互联网发送的数据是什么语言的?它是以机器语言还是高级语言发送的?

我试图了解计算机如何相互通信,以及它们之间如何在位/字节级别传输数据。

提前致谢。

【问题讨论】:

  • en.wikipedia.org/wiki/Internet_protocol_suite 和en.wikipedia.org/wiki/Transmission_Control_Protocol 不要将可执行代码与“数据”混淆。互联网不传输“代码”。它相当于邮政系统。如果某些东西可以装在信封或盒子里,它将通过系统发送。那个“东西”不是网络的问题,也不应该关心。它只关心包裹外面列出的地址。
  • 就“高级语言”而言,它们通常按原样传输,并在目标机器上进行翻译/解释。其他时候,必须为几种不同的机器类型编译程序,但这通常只包括一些最常见的机器类型(即 Windows、Linux、Mac 等)

标签: network-protocols machine-code


【解决方案1】:

TL;DR 简短的回答是:1 和 0

但是

这是一个更复杂的答案,老实说,如果你想知道这个答案,有些东西会提示你问,你真的需要知道这个问题。 :) 所以...

闪回电信类

数据以机器码传输。是 1 和 0。但是,有一个通用结构,将使用高级语言进行翻译。这取决于机器上接受字节流的 NIC 卡、机器使用的操作系统以及接受数据的服务器。处理请求的级别有很多。

网络信息堆栈由许多不同的部分组成,这些部分由 OSI 模型描述,并且根据许多不同的事物而变化。让我给你一个快速运行。按照我的解释参考http://vlsm-calc.net/models.php

  1. 物理 - 这是 1 和 0 中的数据传输,或者更确切地说是“开”和“关”消息,通过线路传输。物理层描述了正在传输的非常物理的直流电子电流。

  2. DataLink - 这是首先解析物理信号的层。您可以将其视为您机器中的 NIC。 NIC 将接收这些原始消息,并确定该消息是给您的(您的本地 NIC 卡接收用于您的计算机的数据),还是转发它(数据包被标记为需要传输到您的本地计算机局域网)。

  3. 网络 - 好的,这是真正的分组暴露的第一个点。在这里,结构被赋予内容,隔离被解析成包等等。这就是IP(来自TCP/IP)的来源。一般来说,使用的协议决定了你的消息是硬连接还是无连接请求等。

  4. 传输 (TCP/UDP) - 这是你的请求的真正内容被构造/解析的地方。这决定了您的包裹是否可靠等等。

...更多层。

我不会详细介绍,因为这是一个非常复杂的话题。大多数时候,你会在大学里上一门电信课程,这将帮助你学习整个电信堆栈。但是,简而言之,数据是通过网络以 1 和 0 形式发送的,并且将嵌入按位数据,例如校验位、包号等。然后由您的机器来处理它。 NIC 将接受请求,然后它将解析后的流广播到您机器上的套接字(例如,com 端口 5035 [这不对,只是一个示例])。如果设置了一些应用程序来侦听该端口(例如,您的机器上运行了 Fiddler,并读取 NIC 正在拉入的所有数据)。然后,您可以使用所需的任何语言解析该流,假设您设置了适当的驱动程序应用程序来处理与该端口的连接。

抱歉,我在向您提供大量信息的同时仍试图使其易于理解之间采取了强硬路线。如果您真的有兴趣了解数据的传输方式,我强烈建议您购买一些书籍/参加课程,并真正花时间去了解。您将学习到与网络硬件/操作系统/浏览器实现的一些非常有价值的交互。 :) 我也会参考How to understand network protocols?

那里给出的解释非常彻底。 :)

【讨论】:

    【解决方案2】:

    @Marc B 的评论实际上应该是一个答案。

    我认为您在这里混淆了两个术语:可执行代码和数据。当您谈论机器执行某事时,这涉及到您提到的代码、程序或机器语言。

    当您谈论通过互联网相互通信的两个端点(计算机、智能手机)时,它是关于数据和协议的。

    所以回答您的问题 - 互联网上的数据以位(通常打包在数据包中)传输,并且由于两个端点在协议上达成共识,他们了解数据包含的内容(实际上可以是任何东西)然后相应地消耗它。

    推荐阅读:Internetworking with TCP/IP Volume One by Douglas Comer

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多