Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/networking/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 如果您可以在浏览器中转到低于TCP的级别_Networking_Browser_Tcp_Ip_Ethernet - Fatal编程技术网

Networking 如果您可以在浏览器中转到低于TCP的级别

Networking 如果您可以在浏览器中转到低于TCP的级别,networking,browser,tcp,ip,ethernet,Networking,Browser,Tcp,Ip,Ethernet,我正在学习,并看到接近最低级别的是原始以太网协议: 以太网:这是使用MAC地址向本地网络上的另一台机器发送数据的基本协议。这是所有其他功能的基础,因为如果您想与外部世界通信,您需要将数据发送到路由器 上面是互联网协议(IP),TCP和UDP就是其中的例子。TCP之上是HTTP或SSL,您可以将HTTP(即HTTPS)置于其之上 浏览器似乎只允许您进入IP级别(TCP用于正常的消息传递连接,UDP用于视频等)。但我想知道,是否有可能比浏览器中的更低。如果没有,那么想知道为什么没有。如果是这样,那么

我正在学习,并看到接近最低级别的是原始以太网协议:

以太网:这是使用MAC地址向本地网络上的另一台机器发送数据的基本协议。这是所有其他功能的基础,因为如果您想与外部世界通信,您需要将数据发送到路由器

上面是互联网协议(IP),TCP和UDP就是其中的例子。TCP之上是HTTP或SSL,您可以将HTTP(即HTTPS)置于其之上


浏览器似乎只允许您进入IP级别(TCP用于正常的消息传递连接,UDP用于视频等)。但我想知道,是否有可能比浏览器中的更低。如果没有,那么想知道为什么没有。如果是这样,那么可以举个例子。

由于安全原因,浏览器只允许使用定义良好的协议集。如果情况并非如此,网站上的Javascript可能发送任意数据包并导致恶意行为


因此,浏览器API仅限于使HTTP、websockets和webrtc可用。

由于安全原因,浏览器只允许使用定义良好的协议集。如果情况并非如此,网站上的Javascript可能发送任意数据包并导致恶意行为

因此,浏览器API仅限于提供HTTP、websockets和webrtc。

在过去的好日子里(直到大约3年前),浏览器通过允许运行第三方插件解决了这个问题,这些插件有(现在仍然有)API,如NPAPI和ActiveX控件。因此,您可以创建一个插件,它可以执行任何您想要的操作,使用原始套接字或您自己的协议发送数据。Flash插件是最好的例子,还有许多鲜为人知的插件,用于特定的web应用程序,如web会议、聊天、安全数据交换等。。。一些浏览器仍然支持这些插件——IE、Opera、Firefox,但Chrome和Edge完全禁用了它们。原因是安全问题——如果您可以将自己的本机代码加载到浏览器中,那么您就可以完全访问操作系统,拦截浏览器中的所有数据,等等。。。为了取代这种被禁用的自由,一些浏览器试图发明新的更安全的API,如Chrome的PPAPI。主要是一次失败的尝试。浏览器对WebSocket的采用缓解了这种情况,但仍然有很多联网功能在浏览器中是不可能实现的。一个臭名昭著的例子是浏览器中缺少UDP多播支持。以前你可以用自己的NPAPI插件来实现;现在浏览器没有替代品了,所以基于浏览器的多播应用程序已经过时了。

在过去的好日子里(直到大约3年前),浏览器通过允许运行第三方插件解决了这个问题,这些插件有(现在仍然有)API,比如NPAPI和ActiveX控件。因此,您可以创建一个插件,它可以执行任何您想要的操作,使用原始套接字或您自己的协议发送数据。Flash插件是最好的例子,还有许多鲜为人知的插件,用于特定的web应用程序,如web会议、聊天、安全数据交换等。。。一些浏览器仍然支持这些插件——IE、Opera、Firefox,但Chrome和Edge完全禁用了它们。原因是安全问题——如果您可以将自己的本机代码加载到浏览器中,那么您就可以完全访问操作系统,拦截浏览器中的所有数据,等等。。。为了取代这种被禁用的自由,一些浏览器试图发明新的更安全的API,如Chrome的PPAPI。主要是一次失败的尝试。浏览器对WebSocket的采用缓解了这种情况,但仍然有很多联网功能在浏览器中是不可能实现的。一个臭名昭著的例子是浏览器中缺少UDP多播支持。以前你可以用自己的NPAPI插件来实现;现在浏览器不提供替代品,因此基于浏览器的多播应用程序已经过时

“看来,浏览器只允许您进入下一级 IP(TCP用于正常的消息传递连接,UDP用于 像视频之类的东西

首先,TCP和UDP不是IP的示例。它们是传输层协议,是IP之上的一层

5层模型的这种表示应该有助于区分:

  • 第二,如果你所说的“进入以太网级别”是指用浏览器的开发工具检查数据包,那么你不能这样做。您只能看到HTTP数据包
如果您想观察所有流量,可以使用诸如-或之类的工具跨不同层捕获和检查数据包

  • 如果您询问浏览器是否可以使用应用程序层以外的任何层。不,它不能。这也是为什么您只能观察HTTP数据包的原因,因为这是浏览器操作的层
信息在层与层之间传递,但不会跳过层:

您对网页的请求使用所有层。它从应用层开始,这是面向用户的层,一直到堆栈,直到网络层将您的请求传输到服务器的网络层,在那里它向上到达堆栈以获取网页

数据包是跨网络传输的基本信息单元 网络。数据包至少由一个带有 发送和接收主机地址,以及包含要发送的数据的主体 转移。当数据包通过TCP/IP协议栈时, 每一层的协议要么从基本层添加字段,要么从基本层删除字段 标题。当发送主机上的协议向数据包添加数据时 头,该过程称为数据封装。此外,每一层 对于修改后的数据包有不同的术语,如下所示 数字

你可以阅读更多关于数据包传输方式的信息