传输时间可以按照维基百科,如(对于数字信号):
“从消息的第一个比特到最后一个比特离开传输节点的时间。”
考虑数字信号,传输时间对应于整个数据包的总持续时间。数据从发送缓冲区推送到线路上。数据包的各个位在发送队列(缓冲区)中等待的时间是另一种延迟,称为排队延迟,因此我暂时将其排除。
我的问题是:传输时间到底是什么函数?例如,我们可以说传播延迟是光速的一小部分和连接节点之间的距离的函数,处理延迟是 CPU、FPGA 等处理速度的函数。然而,从这些函数关系来看,传输时间似乎定义得比较松散。
由于排队时间是一种单独的延迟,我们应该认为被推送到网络上的数据具有已经已经过了排队时间,因此,唯一要做的工作就是将数据推送到线路上。我提出的问题也是这样的:“什么物理原因阻止数据立即推送到线路上?”
当然,它似乎不能被推到电线上立即地,而且它一点也不直观,但为什么呢?它是从发送缓冲区的物理位置到线路起始端的距离吗?它是 PHY 协议能够通过不同的限制机制强制执行的某种限制吗(例如,参见:“...许多以太网适配器和交换机端口通过使用自动协商来设置速度和双工,以获得两个连接设备支持的最佳值,从而支持多种速度。”)?如果是这样,这些硬件级别的机制是什么?它是节点时钟的采样率吗?其中哪一个可能对传输时间产生最大影响?
我知道并非所有 PHY 协议都能够处理高传输速度(例如 Comer,DE(2008)。《计算机网络和互联网》第 5 版:“异步串行接口通常支持高达 230.4 kbit/s 的位传输速度。”)。据我所知,存在由布线和物理层本身造成的限制,但我认为答案在于发送节点的属性和 NIC 上的物理连接接口的组合。
顺便说一句,请不要告诉我它是数据包大小和比特率的函数,因为它最终归结为“周期很高,但为什么呢?因为频率很低!”,这是毫无意义的。
我可能跳过了一些可能提供此信息的来源,但是,找不到任何信息。
答案1
传输时间到底是什么的函数?
消息中的符号数和符号率(符号/秒或波特)。
我们每秒能够可靠传输的信息量由香农-哈特利定理作为信道带宽和信道信噪比的函数。
带宽受到多种物理因素(高带宽收发器、放大器等比低带宽收发器、放大器等更难构建,传输线在较高频率下会产生损耗等)和社会因素(比如,您正在构建一个射频设备,您有一个合法分配的允许操作的频道,并且该频道具有一定的带宽)的限制。
信噪比具有类似的多种因素:由于热力学定律,噪声将始终存在,而信号功率受到实际问题(成本、尺寸、热量、电池寿命、设备爆炸)和监管限制等因素的限制。
因此,在任何给定的现实场景中,您都必须满足一定的带宽要求、能够提供的一定功率、A 点和 B 点之间的一定损耗以及必须容忍的一定噪声量,同时将错误数量限制在 X%。考虑到所有这些限制,您聘请了一名工程师,他们想出了一种代码(一种将消息的位转换为符号的方法)和一种调制(一种将这些符号转换为物理量的方法,例如电信号的相位或幅度),以满足您的要求。考虑到这一点,您现在知道:一条消息否位编码为米符号,以及米符号吨传输时间只需几秒。如果你想要更快,那么你的设计约束的某些部分就必须改变,设计也必须随之改变。如果你要求太多,那么你的工程师会说“我无法改变物理定律!”
答案2
考虑数字信号,...数据被推送到电线上...
您所说的(数字)数据必须表示为模拟电信号才能传输。现实世界是模拟的;只有信息是数字的。数字(即量化)数据不能存在于真实的模拟(即连续)世界中(除非您正在研究亚原子粒子,量子物理学占主导地位)。它必须由模拟信号表示。(“数字信号”是一个误称;它实际上是指通过模拟波形传达的数字信息。)
所有波形都具有连续值而非离散值,因此都是模拟的。波形不可能处于一个离散电压电平,然后立即变为另一个离散电压电平。数字信号只有两个电平,例如 0 和 1。绝不允许 1/2 状态。但在这个模拟世界中不可能生成这样的信号。
通常,振幅、相位和频率的组合用于将数字信息调制为模拟波形。最简单的“数字”信号,即逻辑信号(例如,TTL 和 CMOS 中使用的信号),仅使用振幅调制来表示逻辑电平/状态 0 和 1。逻辑状态不是由您期望的真实数字值所表示的特定电压电平来表示,而是作为对信号必须在其中运行的模拟世界的让步,由每个逻辑状态的电压范围(即连续体)来表示。
每个逻辑输入都是一个非常简单的模拟数字转换器。当对输入进行采样(由时钟信号触发)时,低压范围内的采样电压被解释为逻辑 0。但如果采样电压处于高压范围内,则“读取”逻辑 1。所有这些模拟数字转换都简单地视为逻辑或数字输入,教科书总是使用完美的方波脉冲来表示逻辑状态的变化。
RS-232 与 TTL 和 CMOS 有些相似,因为它们都使用简单的幅度调制。但为了提高传输能力,RS-232 使用负电压范围表示逻辑 1,使用正电压范围表示逻辑 0。
以太网变得更加复杂,根据速度标准,有些以太网会使用多级脉冲幅度调制。TTL
/CMOS 和 RS-232 具有一一对应的关系,每个(模拟)符号仅代表一个位(代表两个可能的数字值),而有些调制方案的符号代表多个位(代表 2^N 个可能的数字值)。
去表演 ”数据“传输,必须调制发射机的输出电压。尽管电压变化将以光速沿导线传播,但导线的电容和电感会阻碍或促进电压变化,并会因电阻而衰减。然后信号到达接收器时会失真并带有噪声。
信号中预期的失真既限制了电压调制速率以传输每个符号,也限制了信号可靠采样速率以准确接收每个符号。这些限制(具有安全裕度)成为最大传输速率。
附录
如果这些“数字信号”实际上是用数字信息调制的模拟信号……
没有“如果“。
以下是揭露高带宽(10 GHz) 示波器捕获阻抗设计错误的 PCB 上的 CMOS(3.3V 逻辑)“数字”信号。
相同的“数字”信号与电路中的阻尼电阻一起“纠正”了阻抗问题。
但它看起来仍然不像教科书中的那些完美方形信号。而且它永远不会(也不必如此)像,因为这是现实世界中的模拟信号。
答案3
在您的第一段中,您说这是发送第一位和最后一位之间的时间,这是正确的,然后您在第二段中完全将其视为“队列”,这是错误的做法。
你根本无法同时通过网络发送每一比特数据并假设它们都能立即被接收。
传播时间可能接近光速,但需要一段时间让该位“保持”在线路上,以便接收器检测它是 1 还是 0。保持时间是发送电子设备的上升和下降时间、接收电子设备的灵敏度以及这两个设备用于彼此同步数据速率的时钟速率的一个因素。
数据发送之前有一个队列或缓冲区,但线路还数据队列意味着整个数据包永远不会以光速瞬间传输,每个数据位都会有延迟。
每个位的总延迟构成了传输时间。