为了澄清,我是一名新手程序员并且有一个非常基本的问题。如果处理器仅理解机器语言,则在呈现给处理器之前需要“翻译”或“解释”更高级语言。我的问题是通过互联网发送的数据是什么语言?它是用机器语言还是高级语言发送的?
我试图了解计算机如何相互通信以及如何在位/字节级别之间传输数据。
提前致谢。
答案 0 :(得分:2)
<强> TL; DR 强> 简短的回答是:1s和0s
<强>无论其强>
这是一个更复杂的答案,老实说,如果你想要答案,有些东西促使你问,你真的需要知道这个问题。 :)所以......
闪回电信类
数据以机器代码传输。它是1和0。但是,有一个共同的结构,将使用高级语言进行翻译。这取决于机器上接受字节流的NIC卡,机器正在使用的OS以及接受数据的服务器。有许多不同的级别可以处理请求。
网络信息堆栈由许多不同的部分组成,这些部分由OSI模型描述,并且根据许多不同的东西而变化。让我快点告诉你。在我解释时请参阅http://vlsm-calc.net/models.php。
物理 - 这是1s和0s中的数据传输,或者更确切地说是“ON”和“OFF”消息,它们通过线路传输。传输的非常物理的直接电子电流由物理层描述。
DataLink - 这是首先解析物理信号的图层。您可以将其视为计算机中的NIC。 NIC将接收这些原始消息,并确定该消息是否适合您(您的本地NIC卡接收用于您的计算机的数据),或者是否转发(该数据包被标记为需要转移到您的本地计算机中) LAN)。
网络 - 好的,这是真实包装曝光的第一个点。这里,结构被赋予内容,隔离被解析成包等。这是IP(来自TCP / IP)来自的地方。通常,使用的协议确定您的消息是否是硬连接或无连接请求等。
传输 (TCP / UDP) - 这是您构建/解析请求的真正内容的地方。这决定了你的包装是否可靠,以及许多其他方面。
...更多图层。
我不打算详细介绍,因为这是一个非常复杂的话题。大多数情况下,你会参加大学的电信课程,这将有助于你学习整个电信栈。但是,简而言之,数据通过线路以1s和0s发送,并且将嵌入按位数据,例如校验位,包号等。然后由您的机器处理它的处理方式。 NIC将接收请求,然后它会将解析后的流广播到您计算机上的套接字(例如,com端口5035 [这不对,只是一个例子])。如果有一些应用程序设置为侦听该端口(例如,您的计算机上运行了Fiddler,并且读取了NIC正在读取的所有数据)。然后,您可以使用所需的任何语言解析该流,假设您已设置适当的驱动程序应用程序来处理与该端口的连接。
对不起,我在给你提供大量信息之间做了一个强硬的路线,同时仍然试图让它易于理解。如果您真的对理解数据的传输方式感兴趣,我强烈建议您购买一些书籍/上一门课程,并且真正花时间去理解。您将学习与网络硬件/ OS /浏览器实现的一些非常有价值的交互。 :)我也会提到How to understand network protocols?。
给出的解释非常彻底。 :)
答案 1 :(得分:1)
我认为你在这里混淆了两个术语:可执行代码和数据。当你谈论机器执行某些事情时,这涉及你提到的代码,程序或机器语言。
当你谈到通过互联网相互通信的两个终点(计算机,智能手机)时,它涉及数据和协议。
所以回答你的问题 - 互联网上的数据是以比特(通常打包在数据包中)传输的,因为两个端点对协议有共识,他们理解数据包含的内容(可以是任何内容,真的)然后相应地消耗它。
推荐阅读: Internetworking with TCP/IP Volume One by Douglas Comer