问题标签 [osi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
118 浏览

network-programming - 模拟数据包封装

我正在开发一个旨在模拟真实网络的应用程序。为此,我需要详细了解系统中数据包的形成方式。

假设您有一个应用层消息,您希望将其封装在传输层有效负载中,并在标头中添加所需进程的特定端口号,然后将其封装在网络层有效负载中并添加 IP 地址。

我的问题是

  • 上层协议的数据包到下层的封装在哪里发生?
  • 网卡驱动程序是否负责操作系统中的那个或其他部分?如果是的话,是哪一部分?

我只想指出,我已经阅读了计算机网络:一种自上而下的方法和 Foruzan 关于该主题的书,但那里的所有信息都非常理论化。

提前致谢。

0 投票
1 回答
143 浏览

networking - 数据包与帧比较 (osi)

这是我在这里的第一个问题,如果有些东西写得不好或写得不好,很抱歉。

但是我已经学习 osi 模型一段时间了,我找不到关于帧(在数据链路层中)以及帧和数据包之间有什么区别的很好的深入解释?

提前致谢。

0 投票
1 回答
2662 浏览

c++ - OSI 层在代码中的实际实现

在理论上了解七层如何交互和操作数据的理论是一回事,但如何在现实世界中使用实际代码实现这一点是另一回事。

我想知道这些层在实践中是如何实现的(以 PC 为例,因为它使用与路由器不同的所有层等) - 每一层都是具有标准化 API 的单独进程(所以有很多协同工作的软件)还是类似于特定硬件/软件设置的网络驱动程序,使用共享库等负责所有这些?还是其他完全不同的方法?

我问这个的原因是因为我想在 868MHz 频段上创建自己的网络,并且我想使用一些现有的代码(例如 DataLink 纠错和此类代码 - 因为这超出了我的技能) 还编写了我自己的网络层代码来自定义设备交互的方式。

0 投票
3 回答
2439 浏览

networking - OSI 层解释

我正在尝试了解网络层。有五层,应用层、传输层、网络层、链路层和物理层。我从各种来源进行了研究,但我无法清楚地理解,尤其是传输层、网络层和链路层。你能为像我这样的傻瓜解释这些层次吗?谢谢。

0 投票
0 回答
47 浏览

asp.net - asp.net 网站在网络模型方面如何工作?

我对网络模型通信的理解:

应用层:

1. HTTP(非持久性或无状态):用于交换 get、post、put 等消息。这里连接到 web 服务器并在发送响应后断开连接。所以服务器不会跟踪以前的请求。

2. Websockets(Persistent 或 statefull):用于创建将开放以交换数据的通信通道。在这里,我们可以跟踪以前的请求。就像我们可以知道当前有多少用户连接到我们的服务器一样。

传输层:

TCP(Persistant and Statefull):将让服务器知道使用端口号连接到哪个应用程序。HTTP 和 Web 套接字都可以在这一层上工作。

考虑使用 HTTP 和 TCP:

  1. 我从浏览器(应用层)发出 HTTP 请求:
  2. 连接到 Web 服务器发送所有请求的文件,并与应用程序(传输层)建立 TCP 连接。
  3. 发送响应后断开连接。

我的困惑:

当我听说 TCP 是有状态和持久连接时,我完全糊涂了。

Q1。现在在第三步之后浏览器是否仍然因为 TCP 连接到网络服务器?

Q2。我们在 C# 代码中在服务器端获得的上下文对象是完整的请求数据包,其中包含 HTTP 信息、TCP 信息、要调用的函数或要在 MVC 中调用的控制器等?

Q3。如果客户端和服务器仍然通过 TCP 连接。然后在下一个 HTTP 请求中,它会使用可用的 TCP 连接还是会创建新的 TCP 和 HTTP 连接?为什么不能使用以前的 TCP 进行通信?还是 HTTP 之后 TCP 会被销毁?或者发生了什么?

0 投票
2 回答
2025 浏览

networking - 在通过高级语言的交换机连接的两台计算机之间传输数据

我将首先说明我对网络和整个 OSI 模型知之甚少。

我的目标是使用非托管网络交换机创建一个小型网络(现在是我的笔记本电脑和树莓派)。在更高层传输(级别 3+)上,我只需为数据包设置目标 IP 地址。根据我在 Wikipedia 上阅读的内容,网络交换机在数据链路层运行,这意味着它使用 MAC 地址。

当与仅支持 MAC 地址的设备连接时,如何将数据发送到局域网上的设备。更重要的是,如何使用 Java 或 C# 等高级语言来做到这一点?

0 投票
1 回答
196 浏览

json - L5-7 OSI 层的寻址术语是什么?

L2 使用 6 字节 MAC 进行设备寻址;L3使用IPv4进行逻辑网络寻址,IPv6也封装了MAC地址;L4 使用套接字(IP + 端口)进行软件寻址。那么,L5~L7 的寻址实体术语是什么。URL、REST API、json schema 是否属于这种概念?

0 投票
2 回答
4037 浏览

model - 串行协议和 OSI 模型

我通过串行连接(RS 232)连接计算机和外部设备。然后我将一些数据从设备发送到计算机。超级终端正在访问该数据并显示它们。在这个过程中,使用了 OSI 模型的哪些层?

这是我的理解。RS-232 仅覆盖第 1 层(物理层)。超级终端运行在应用层。对于此过程,仅使用这两个层。

当我搜索 stackoverflow 时,我发现类似“串行协议定义了 OSI 模型的第一层或前两层(取决于您是否将 7 位或 8 位串行数据包视为帧)”。见全文
这是什么意思?

0 投票
0 回答
89 浏览

router - 希望路由器 / Mac 地址 / ARP

当数据包从源 IP 传输到目标 IP 时,假设它在许多不同的路由器之间进行跳跃,那么每个路由器如何知道序列中的下一个 MAC 地址。据我了解,对于本地网络中的通信,计算机使用地址解析协议获取目标 MAC 地址。但是对于中间路由器跃点,帧如何在不存储(至少简要地)下一个路由器的 IP 地址的情况下获得下一组 L2 Mac 标头?这是一个单独的协议还是什么?它怎么知道它应该跳到下一个路由器(以及IP以获得下一个MAC地址?)

0 投票
1 回答
85 浏览

http - IP(互联网协议)基于什么协议?

我是 OSI 模型的新手。我知道 HTTP 是基于 TCP 的,而 TCP 是基于 IP 的。但是IP使用的是什么协议。我在网上找不到谈论它的文章。谁能帮我吗?或者,也许我误解了这一切?提前致谢。