Questions tagged «protocol-theory»

有关在Standard或RFC中发布的网络协议的问题。不要仅因为问题中提到网络协议而使用此标签。带有*标签的问题,如果不能解释为什么这个问题是相关且重要的,则可以关闭。这对于避免切线/琐碎问题或帮助吸血鬼是必要的。



2
以太网MTU的实际大小是多少
我想我可能会对围绕MTU的术语感到困惑。 来自Wendell Odom的CCNA关于MTU的书中的定义: IEEE 802.3规范将802.3帧的数据部分限制为最小46个最大1500个字节。术语最大传输单元(MTU)定义了可以在介质上发送的最大第3层数据包。由于第3层数据包位于以太网帧的数据部分内,因此1500字节是以太网上允许的最大IP MTU。 我的理解是,以太网帧是封装在传输到电线之前的最后阶段。当我查看以太网帧的图时,其总大小最多可以等于1526个字节。 我是说以太网帧的MTU是1526而IP层的MTU是1500吗?MTU是否在封装的每个阶段都发生变化,或者术语“ MTU”仅用于定义第3层数据包的最大大小? 谢谢你的帮助!

3
为什么IPv4地址为32位?
许多个月前,当我只是一个职业生涯的小 白裙时,我接受了一个低级开发人员职位的面试。那时我刚刚学会了CIDR的实施方式,所以我很想炫耀我的知识。 可悲的是,这种策略对我来说效果不是很好。我记得被问到的第一个问题完全弄糟了(然后,之以鼻,这一切都下坡了)。问题是: 为什么 IPv4地址为32位? 我很容易地承认我不知道答案,但我确实知道原始协议设计将地址空间划分为8位网络号和24位主机标识符,因此我基于以下理由进行合理化:协议设计者设想了一个由几个网络组成的Internet(毕竟,它最初是为了将特定的几个链接在一起),每个网络都包含许多主机,并且为了简化编程,使所有内容保持字节边界对齐。 我记得面试官对我的回答不满意,并向我暗示真正的原因是保证它可以容纳long int在C语言中,因此简化了实现细节。当时还年轻又绿色,我接受了一个合理的答案,并且(在今天之前)再也没有想过了。 由于某种原因,对话才刚刚回到我身边,现在我开始反思,这似乎并不完全合理: 在包含固定大小的网络和主机字段的原始寻址方案下,开发人员不太可能希望将两个字段的串联分配给单个变量(我无法访问任何早期的IP实现来验证它们的作用)。实际上是在实践中);和 在开始进行TCP / IP协议的时候,C既不是标准化的,也不是今天已经成为低级软件开发的事实上的 “通用语言”。 面试官的建议实际上成立了吗?如果没有,什么是真正的原因,该协议的设计师选择了32位寻址?

5
为什么我们仍然使用以太网?
毫无疑问,绝大多数以太网帧正在传输IP数据包。我知道还有其他各种协议也可以通过以太网传输,但是这些协议也可以通过IP传输。 随着现代以太网网络成为全双工,以太网已有效地转变为端点与交换机之间的点对点互连,该互连根据MAC目的地交换数据包。L3交换机执行相同的操作,但也执行某些IP路由。 由于我们主要将以太网用作传输IP的一种方式,是否有理由增加L2开销的额外层?为什么不仅仅根据目标IP路由数据包?我认为这将在一定程度上破坏OSI模型,因为L2将不复存在。 想象一下一种仅用于传输IP的链路层技术,它没有任何特定的L2功能或自身的标头。交换机和路由器将像今天一样继续存在:交换机将是“基本路由器”(就像L3交换机一样),并且大多数情况下仅采用固定路由和默认路由。切换流程:此目的地是否有路线?将其放在该接口的队列中。如果不是,请将其粘贴在默认路由的接口队列中。 是否有任何令人信服的论据来保持事物的现状?


4
NACK与ACK?何时使用另一种?
我个人甚至都不觉得需要ACK。如果我们只为丢失的数据包发送NACK(n),而不是为每个收到的数据包发送ACK,则速度更快。那么什么时候/在哪种情况下会使用ACK而不是NACK?

4
WLAN为什么使用冲突避免而不是冲突检测?
我正在寻找这个答案已有相当一段时间。为什么在局域网中有CSMA / CD但在WLAN中有CSMA / CA? 我能找到的最好的解释是“由于发射和接收功率的极高比例,在同一信道上传输数据非常不切实际。因此使用了避免冲突”。无法理解含义。即使您使用两个单独的通道进行发送和接收,CSMA仍可用来决定哪个节点将使用通道,因此丢弃CD代替CA毫无意义。因此,这种解释似乎不合适。 我能想到的唯一原因是,如果节点数少,因此发生冲突的机会就少,我们应该使用CD;如果发生冲突的机会就高,那么就应该使用CA。但是LAN和WLAN之间的用户数量没有差异。 如果有人可以解释。

4
DHCP服务器可以确定客户端的操作系统吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为网络工程堆栈交换的主题。 2年前关闭。 DHCP服务器可以确定客户端操作系统吗? 我正在为基于Web的本地网络上的网关开发一个监视工具,希望能够以某种方式确定网络上设备正在运行的操作系统,在我看来,发现这一点最明显的地方是DHCP服务器分配IP地址的时间。 未能做到这一点,我确实知道如何在端口80上过滤流量并提取HTML标头信息,但是这种方法依赖于等待设备上网,因此比起早期的检测/解决方案尤其不理想。因为并非所有设备都将用于浏览互联网。 我完全可以控制网关的配置-它运行着简化的debian发行版,因此可以完成此任务的任何其他工具-DHCP,DNS,ARP等,我都乐于接受建议!

6
以太网中半双工模式的原因?
半双工连接在10Mbps和100Mbps 以太网时很流行,根据标准,在1Gbps 以太网的情况下也允许。 如果使用网络集线器(集线器在内部为单线)或使用某些其他共享以太网介质(例如10BASE-5),我是否正确认为以太网芯片组中的半双工模式支持至关重要? 在使用双绞线电缆且不使用集线器的以太网环境中,是否有任何半双工连接的原因?

8
TCP是否为每个发送的数据包打开一个新连接?
这可能是一个愚蠢的问题,但是我和几个伙伴一直在讨论TCP的潜在限制。我们有一个应用程序,该应用程序将侦听客户端(例如网关),并将所有连接的客户端数据通过单个连接的kafka发布者路由到一个主题。 我的一个好友说,TCP将是此网关的一个问题,因为它将为其发送的每个消息建立一个新的连接(不是kafka,而是底层的传输协议本身),每次都需要一个新的端口。以我们将向这些客户端发送消息(千兆字节)的速度,kafka将用尽所有端口来读取? 我从事开发工作已经有几年了,以前从未听说过它,并且希望对TCP的工作原理有一个较低的了解(我认为我已经知道)。我的理解是,当您建立TCP连接时,该连接将保持打开状态,直到应用程序将其超时或服务器或客户端强行关闭该连接为止。通过此连接发送的数据是流,无论3 V(体积,速度,变化)如何,都不会打开/关闭新连接。 就端口而言,一个端口用于广播,而内部文件描述符端口是应用程序管理的,用于读取/写入单个客户端的端口。我从不了解TCP为写入的每个数据包建立新的连接。 如果这个问题不是直接的,或者太含糊,我事先表示歉意。我真的感到莫名其妙,希望有人能为我的同事们提供更多的背景信息?

4
MTU和碎片
请考虑以下情况:具有10G接口的NAS连接到交换机上的10G接口。客户端计算机通过千兆位以太网连接到交换机。 如果未从客户端NIC上的标准1500字节增加MTU的大小,如果增加NAS和与NAS连接的交换机端口的MTU的大小,性能是否会有所提高? 这会导致碎片问题吗? 设备如何在交换网络中的接口的MTU中“处理”不匹配?


3
IPv6地址空间和IPv4地址空间是否完全不相交?
Tanenbaum的计算机网络说 最后,IPv4地址可以写为一对冒号和一个旧的点分十进制数字,例如: ::192.31.20.46 这是否意味着IPv4地址空间已嵌入到IPv6地址空间的最低子范围中? 这样的嵌入固定吗?是否可以将IPv4地址空间嵌入到IPv6地址空间的任何连续子范围中? https://en.wikipedia.org/wiki/IPv6_address#Transition_from_IPv4是否列出几种其他翻译方式?如果正确,则嵌入不是固定的。 这是否意味着对于任何IPv4地址,都有一些IPv6地址与该IPv4地址引用相同的地址? 例如,是::192.31.20.46和192.31.20.46 有效相同的地址? 如果我向发送消息::192.31.20.46,会192.31.20.46 收到我的消息吗? 如果我向发送消息192.31.20.46,会::192.31.20.46 收到我的消息吗? 将::127.0.0.1 仍然是一个回送的IP地址,如果是,是它有效地相同的地址127.0.0.1? 还是在我与IPv6地址通信时不会与IPv4地址通信的意义上,IPv6地址空间和IPv4地址空间是否完全不相交(即没有重叠)? 谢谢。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.