02
2023
12
01:43:18

网络协议——最大传输单元 MTU



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

MTU

Maximum Transmission Unit,最大传输单元,指的是数据链路层的最大payload,由硬件网卡设置MTU,是一个硬性限制
留给网络层的数据长度(以太网的有效载荷:Payload)只有 [64 -18, 1518 - 18] = [46, 1500]
留给传输层数据只有:[46-20, 1500-20] = [26, 1480]
TCP 协议头占了 20 Byte, UDP 协议头占了 8 Byte(TCP 之所以协议头比 UDP 大,因它功能比较多:可靠、流速控制、自动分包等
TCP 可以传的用户数据实际上只有 [26 - 20, 1480 - 20] = [6, 1460]
UDP 没有协商的能力,所以它只能直接把用户发送的数据,传给网络层(IP层),由网络层来进行分片。用 UDP 协议发送,那么如果网络发生了波动,丢失了某个 IP 包分片, 对于 UDP 而言, 它没有反馈丢失了哪个分片给发送方的能力,这就意味着:50k 的数据全都丢失了,如果需要重传,就得再次完整的传递这 50k 的数据。UDP 协议头有 2 byte 表示长度的字段。所以实际 UDP 数据包的长度不能超过65507字节(65,535 − 8字节UDP报头 − 20字节IP头部)所以如果一个应用采用 UDP 来通讯,一般都会特意控制下单个包体的大小,从而提高传输效率。
TCP 是流数据,没有该限制,而 TCP 只会重传这一个丢失的分片包。
tcpdump可以看到分片的情况,udp header只出现在一个ip分片中。(第一个,后面是ip-proto-17)(icmp也是,后面是ip-proto-1,1/17是协议号)

拓展

  1. tcp/ip 协议栈Linux源码分析一 IPv4分片报文重组分析

Q&A

  • tcpdump抓包是在tcp分片重组之前?看到的是很大的包

  • 1500字节包含链路层的头部和尾部吗?——不包含。

  • MTU里包含802.1Q的头部VLAN tag吗?——包含。当网卡配置VLAN tag时,VLAN tag + Data <= MTU,有时VLAN tag不只有一个,可能是双标签,那这个VLAN tag就是4Byte*2=8Byte。

  • 对于IP协议来说,IP包的大小由MTU决定(IP数据包长度就是MTU-28(包头长度)。 MTU值越大,封包就越大,理论上可增加传送速率,但 MTU值又不能设得太大,因为封包太大,传送时出现错误的机会大增。一般默认的设置,PPPoE连接的最高MTU值是1492, 而以太网 (Ethernet)的最高MTU值则是1500,而在Internet上,默认的MTU大小是576字节。

  • 网络分片是在哪一层完成的?——网络层。网络层必须将发给网卡API的包 <= MTU。网络层如果发现链路层的MTU小于IP包的大小(网络层可以调用函数获取链路层信息),也并不会立刻开始分片,还需要看IP包的是否允许分片位DF(Don’t Fragment),如果允许分片,就会分成多个ID一样的IP包

  • 对于TCP包(MTU = 1500),payload最大值是多少,才可以不用分片?——MTU(1500) = IPHeader(20) + TCPHeader(20) + Data,Data = 1500 -20 - 20 = 1100

  • 对于ICMP request/reply包(MTU = 1500),payload最大值是多少,才可以不用分片?——MTU(1500) = IPHeader(20) + ICMPHeader(8) + Data,Data = 1500 -20 - 20 = 1472

  • 对于UDP包(MTU = 1500),payload最大值是多少,才可以不用分片?——MTU(1500) = IPHeader(20) + UDPHeader(8) + Data,Data = 1500 -20 - 8 = 1472

  • 用wireshark捕包。 为什么frame那一行是1514bytes?—— 以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步码+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的CRC校验。按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、CRC校验之外的数据,其最大值是6+6+2+1500=1514。 同理,tcpdump抓包看到的最小帧长度=60B。以太网EthernetII规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。 当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到64字节的帧的时候,抓包程序已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。对于TCP 的ACK确认帧的大小一个是54字节,一个是60字节,wireshark抓取时没有填充数据段,sniffer抓取时有填充数据段。具体格式如下:

PreambleDestination MAC addressSource MAC addressType/LengthUser DataFrame Check Sequence
866246 - 15004
  • 最小帧长度,性能测试,数据以server端收到的为主(指标pps以最小包发包)
    UDP:

[root@network ~]# iperf3 -c 30.0.1.8 -u -t 1 -l 18 //<=18的,帧长度都为64B,区别是IP payload长度不同,用padding补齐,参见下图
[root@compute2 ~]# tcpdump -i enp0s8 -nev udp and port 5201
06:24:36.733475 08:00:27:51:c8:85 > 08:00:27:94:16:65, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 64, id 19856, offset 0, flags [DF], proto UDP (17), length 46)
    30.0.1.6.56764 > 30.0.1.8.targus-getdata1: UDP, length 18
  • UDP如何分片?——网络层并不会在每个分片里复制一次UDP头,它是把完整的UDP包切开,加上IP头发送出去,除了第一个分片有UDP头,后面的分片都不包含UDP头。(ICMP也是)

  • 目的主机的网络层接收到多个UDP分片包后,网络层必须重组才能交给上层,为什么?——因为多个分片包只有第一个是有UDP头的,它可以根据UDP头里的端口号通知相应的应用取走,但是后面的分片包由于没有UDP头,传输层无法把分片包交给正确的应用程序。所以UDP分片包必须在网络层重组成一个完整的UDP包,交给传输层处理

  • 网络层根据什么重组呢?——分片的时候会分成多个ID一样的IP包

  • 如果某些分片包没有被目的主机的网络层接收到,造成UDP包重组失败,接收方会丢弃整个数据包,这是UDP不可靠传输的一个表现。而TCP发生组包错误时,该包会被重传,保证可靠传输

  • mtu 不一致会出现什么问题?

分片包长(当MTU=1500)

UDP数据报的长度是指包括报头和数据部分在内的总字节数,其中报头长度固定,数据部分可变。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节(64K)。
用UDP协议发送时,用sendto函数最大能发送数据的长度为:65535- IP头(20) - UDP头(8)=65507字节。用sendto函数发送数据时,如果发送数据长度大于该值,则函数会返回错误。

我们在用Socket编程时,UDP协议要求包小于64K。TCP没有限定,TCP包头中就没有“包长度”字段,而完全依靠IP层去处理分帧。这就是为什么TCP常常被称作一种“流协议”的原因,开发者在使用TCP服务的时候,不必去关心数据包的大小,只需讲SOCKET看作一条数据流的入口,往里面放数据就是了,TCP协议本身会进行拥塞/流量控制。

用TCP协议发送时,由于TCP是数据流协议,因此不存在包大小的限制(暂不考虑缓冲区的大小),这是指在用send函数时,数据长度参数不受限制。而实际上,所指定的这段数据并不一定会一次性发送出去,如果这段数据比较长,会被分段发送,如果比较短,可能会等待和下一次数据一起发送。

不分片的最大负载

iperf -l指定的包长指的是udp头之后的长度,mtu=1500的时候,-l不分片的最大长度为1472,此时tcpdump抓包看到的总体包长为1516

  • ICMP (Ping) 包的大小就应该是 1500 - IP头(20) - ICMP头(8) = 1472(Bytes)

  • UDP 包的大小就应该是 1500 - IP头(20) - UDP头(8) = 1472(Bytes)

  • TCP 包的大小就应该是 1500 - IP头(20) - TCP头(20) = 1460 (Bytes)

ICMP 不分片 (以太包长度 1514 = IP头(20)+ ICMP(1480 = Type(1)+ Code(1))+ 校验和(2)+标识符(2)+序号(2)+ 1472)

ping  10.164.16.54  -s 1472  

20:44:13.538154 08:00:27:27:50:1c > 08:00:27:3b:d9:78, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 35178, offset 0, flags [DF], proto ICMP (1), length 1500)
    10.164.16.57 > 10.164.16.54: ICMP echo request, id 1419, seq 1, length 1480

分片(fragmentation)

icmp 的 payload=1473(两个包 : (第一个包:以太包长度1514,IP包长度1500,ICMP payload:1472) +,第二个包:以太包长度:60,IP包长:21,ICMP payload:1)

[root@network ~]# ping   30.0.1.8   -s  1473

05:29:28.845150 08:00:27:51:c8:85 > 08:00:27:94:16:65, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 18292, offset 0, flags [+], proto ICMP (1), length 1500)
    30.0.1.6 > 30.0.1.8: ICMP echo request, id 64616, seq 1, length 1480
05:29:28.845159 08:00:27:51:c8:85 > 08:00:27:94:16:65, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 64, id 18292, offset 1480, flags [none], proto ICMP (1), length 21)
    30.0.1.6 > 30.0.1.8: ip-proto-1

第二个包涉及到以太网最小帧长=64字节,只有一个Byte=c0的负载,后面的全0为padding
在这里插入图片描述

iperf

tcpdump
fa:16:3e:69:88:12 > fa:16:3e:3f:c5:b6, ethertype IPv4 (0x0800), length 58: 172.31.3.27.40761 > 172.31.1.160.5201: UDP, length 16

MTU 对 TCP 的影响

TCP 的一个数据报不可能无限大,还是受制于 MTU,TCP 单个数据报的最大消息长度,称为 MSS。
TCP 在建立连接的过程中,双方会进行 MSS 协商。最理想的情况下,MSS 的值正好是在 IP 不会被分片处理的最大长度(这个长度受限于数据链路层的 MTU)。双方在发送 SYN 的时候会在 TCP 的头部写入字节能支持的 MSS 值,然后双方得知对方的 MSS 值之后,选择较小的作为最终 MSS,MMS 的值就在 TCP 首部的 40 字节变长选项中(kind=2)。MTU 通过限制 MSS(单个数据报的最大消息长度) 的取值,来限制单个 TCP 包的长度

MTU 和 MSS 的关系

MSS: Maxitum Segment Size 最大分段大小,是传输层概念, 在建立TCP连接过程, 双方的SYN 报文中定义的 , 通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。为 TCP 数据包每次传输的最大数据分段大小。后面的数据传输都是按照确定的MSS进行传输。 MSS会根据物理接口的MTU计算得出 (MSS=MTU-IP头长度-TCP头长度)
为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

MSS的主要作用是限制另一端主机发送的数据的长度,同时,主机本身也控制自己发送数据报的长度,这将使以较小MTU连接到一个网络上的主机避免分段。

对于一个以太网来说,TCP的最大报文段长度即MSS一般是1460字节(1500(MTU) - 20(IP head) - 20(TCP head) = 1460 Byte),减去12字节的TCP timestamp option,留给TCP正文数据是 1448字节 。另外,TCP流量控制采用了滑动窗口机制,发送窗口的大小要小于min(接收端通告的接收窗口大小,发送端拥塞窗口大小)。
Linux 2.6.39内核之前的TCP实现中,发送端初始拥塞窗口为3,单位是MSS (server机器内核版本未知,估计是2.6.39以前的)。也就是说TCP连接建立后,初始拥塞窗口限制第一次发送的数据长度要小于等于 1448 * 3 = 4344 字节,所以客户端 第一次recv 调用只收到了4344字节 数据。
在这里插入图片描述

路径 MTU

  • 重要的不是两台主机所在网络的 M T U 的值,重要的是两台通信主机路径中的最小 MTU。它被称作路径 MTU

  • 两台主机之间的路径 MTU不一定是个常数。它取决于当时所选择的路由。而选路不一定是对称的(从A到B的路由可能与从B到A的路由不同),因此路径MTU在两个方向上不一定是一致的。

  • traceroute 程序也是用这个方法来确定到达目的节点的路径 MTU

路径 MTU 发现机制:
在这里插入图片描述

Neutron 中的那些 MTU

在这里插入图片描述
在这里插入图片描述

  • global_physnet_mtu ,底层物理网络的MTU。Neutron使用这个值来计算所有虚拟网络组件的MTU。对于flat网络和VLAN网络,neutron直接使用这个值而不作修改。对于VXLAN等overlay网络,neutron会自动从这个值中减去 overlay 协议的开销(比如 vxlan=50)。默认为1500,这是以太网的标准值。
    在这里插入图片描述

# Default network MTU value when not configured
DEFAULT_NETWORK_MTU = 1500
  • physical_network_mtus,物理网络与MTU值的映射列表。映射的格式是<physnet>: <mtu val>。这种映射允许指定与默认的 global_physnet_mtu 值不同的物理网络 MTU 值。
    在这里插入图片描述
    path_mtu,在使用 overlay/tunnel 协议时,可以穿越底层物理网络基础设施而不产生碎片的IP数据包的最大尺寸(MTU)。 这个选项允许指定一个与默认的global_physnet_mtu值不同的物理网络MTU值。(如果配置了该值,计算overlay/tunnel 类型的mtu时以此为准,若未配置,则使用global_physnet_mtu的值来计算overlay/tunnel 类型的网络的mtu)
    在这里插入图片描述

报文格式

Ethernet Ⅱ 以太帧

在这里插入图片描述

在tcpdump -ne的输出中,第一个length指的是链路层帧的长度,即链路层帧的数据部分的长度,不包括链路层帧头和帧尾的长度。在以太网中,链路层帧的最小长度是64字节,最大长度是1518字节。如果链路层帧的数据部分长度小于64字节,则会被填充到64字节。如果链路层帧的数据部分长度大于1518字节,则会被拆成多个帧进行传输。

为什么我抓包看到的length的最大长度为1514呢?

你提到的长度为1514是因为在以太网中,链路层帧的数据部分最大长度为1500字节。加上链路层帧头和帧尾的长度,链路层帧的总长度最大为1518字节。因此,当你使用tcpdump抓取以太网数据包时,显示的第一个length字段的最大值为1514字节。这是因为tcpdump会排除链路层帧头和帧尾的长度,只显示链路层帧的数据部分长度。

为什么我抓包看到的length的最小长度为58呢?而不是所谓的64B

你提到的长度为58是因为在以太网中,链路层帧的最小长度为64字节,但是这个长度包括链路层帧头和帧尾的长度。链路层帧头的长度为14字节,帧尾的长度为4字节(FCS校验码)。因此,链路层帧的数据部分最小长度为46字节(64 - 14 - 4),而不是64字节。

当你使用tcpdump抓取以太网数据包时,显示的第一个length字段的最小值为58字节,这是因为tcpdump会将链路层帧头和帧尾的长度都计入到了length字段中。因此,即使链路层帧的数据部分长度小于46字节,tcpdump也会显示一个至少为58字节的length值。

在这里插入图片描述

在这里插入图片描述
各Type值对应的协议

协议
0x0800Internet Protocol (IP) [RFC894]
0x0801X.75 Internet
0x0805X.25 Level 3
0x0806Address Resolution Protocol (ARP)[RFC7042]
0x0808Frame Relay ARP [RFC1701]
0x8000IS-IS
0x8035Reverse Address Resolution Protocol (RARP) [RFC903]
0x8137Novell NetWare IPX/SPX (old)
0x8138Novell, Inc.
0x8100IEEE Std 802.1Q - Customer VLAN Tag Type
0x814CSNMP over Ethernet [RFC1089]
0x86DDIP Protocol version 6 (IPv6) [RFC7042]
0x8808IEEE Std 802.3 - Ethernet Passive Optical Network (EPON) [RFC7042]
0x880BPoint-to-Point Protocol (PPP) [RFC7042]
0x880CGeneral Switch Management Protocol (GSMP)
0x8847MPLS (multiprotocol label switching) label stack - unicast [RFC 3032]
0x8848MPLS (multiprotocol label switching) label stack - multicast [RFC 3032]
0x8863PPP over Ethernet (PPPoE) Discovery Stage [RFC2516]
0x8864PPP over Ethernet (PPPoE) Session Stage [RFC2516]
0x888EIEEE Std 802.1X - Port-based network access control
0x88A8IEEE Std 802.1Q - Service VLAN tag identifier (S-Tag)
0x88B7IEEE Std 802 - OUI Extended Ethertype
0x88C7IEEE Std 802.11 - Pre-Authentication (802.11i)
0x88CCIEEE Std 802.1AB - Link Layer Discovery Protocol (LLDP)
0x88E5IEEE Std 802.1AE - Media Access Control Security
0x88F5IEEE Std 802.1Q - Multiple VLAN Registration Protocol (MVRP)
0x88F6IEEE Std 802.1Q - Multiple Multicast Registration Protocol (MMRP)
标准描述
IEEE 802.3Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications
IEEE 802.3aeMedia Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s Operation
RFC 894A Standard for the Transmission of IP Datagrams over Ethernet Networks
RFC 1042A Standard for the Transmission of IP Datagrams over IEEE 802 Networks

VLAN 帧格式

IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。
VLAN帧最小帧长为64字节。

图1 VLAN帧格式
在这里插入图片描述
在这里插入图片描述

标准描述
RFC 3069VLAN Aggregation for Efficient IP Address Allocation
IEEE 802.1QIEEE Standards for Local and Metropolitan Area Networks : Virtual Bridged Local Area Networks

TCP 可以传的用户数据实际上只有 [26 - 20, 1480 - 20] = [6, 1460]
在这里插入图片描述
UDP 可以传的用户数据实际上只有 [26 - 8, 1480 -8] = [18, 1472]
在这里插入图片描述

网络性能

网络性能

在Linux中常见的网络性能指标如下

  • 带宽
    表示链路的最大传输速率,单位是b/s 比特/秒,在位服务器选网卡时,带宽就是最核心的参考指标,常用的带宽有1000M,10G,40G,100G等网络带宽测试,测试的不是带宽,而是网络吞吐量,Linux服务器的网络吞吐量一般会比带宽小,而对交换机等专门的网络设备来说,吞吐量一般会接近带宽

  • 吞吐量,表示没有丢包时最大的数据传输速率,单位通常是b/s比特/秒,或B/s字节/秒,吞吐量受带宽的限制,吞吐量/带宽也是该网络链路的使用率

  • 延迟,表示从网络请求发出后,一直到收到远端响应所需要的时间延迟,这个指标在不同场景中有不同含义,它可以表示建立连接需要的时间(TCP握手延时),或者一个数据包往返所需时间RTT

  • PPS,Packet Per Second,表示已网络包为单位的传输速率,PPS通常用来评估网络的转发能力,基于Linux服务器的转发,很容易受到网络包大小的影响(交换机通常不会受太大影响,交换机可以线性转发)PPS,通常用在需要大量转发的场景中,而对TCP或者Web服务器来说,更多会用并发连接数和每秒请求数(QPS Query per Second)等指标,他们更能反映实际应用程序的性能

网络测试基准

Linux网络基于TCP/IP协议栈,不同协议层的行为不同,在测试之前,根据应用程序基于的协议层进行针对性网络性能评估,比如:
基于HTTP或HTTPS的Web应用程序,属于应用层,需要我们测试HTTP/HTTPS的性能
大多数游戏服务器,为了支持更大的同时在线人数,通常会基于TCP或UDP,与客户端交互,这时就需要测试TCP/UDP的性能
针对把Linux作为一个软交换机或路由器来用的场景,需要关注网络包的处理能力PPS,重点关注网络层的转发性能
低层协议是其上的各层网络协议的基础,低层协议的性能,也就决定了高层网络性能

PPS包转发率

传输过程中,帧之间有间距(12个字节),每个帧前面还有前导(7个字节)、帧首界定符(1个字节)。
帧理论转发率= BitRate/8 / (帧前导+帧间距+帧首界定符+报文长度)

在这里插入图片描述

以太网链路的最大帧速率和吞吐量计算

在这里插入图片描述

最大吞吐量(最大帧大小:1538B,最大以太帧大小:1518B)

最大的以太网吞吐量是通过单个传输节点实现的,当以太网帧处于最大大小时,该传输节点不会发生任何冲突。

以太网的帧开销是18字节,目的MAC(6)+源MAC(6)+Type(2)+CRC(4)。局域网规定IP最大传输单元1500字节,实际上加上以太网帧的18字节,再加上8B就是1518字节

最大帧率(最小帧大小:84B,最小以太帧:64B,最小以太网帧有效载荷:46B)

以太网是无连接的,不可靠的服务,采用尽力传输的机制。IEEE标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域直径。512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。这就是为什么以太网要最小64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太网碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。
在这里插入图片描述

PPS 理论上限

Mbps 即 Milionbit pro second(百万位每秒);
Kbps 即 Kilobit pro second(千位每秒);
bps 即 bit pro second(位每秒);
1Mbps=1000 000bps

百兆端口线速包转发率=100Mbps/672=0.1488095Mpps,约等于0.14881Mpps,14万pps
千兆端口线速包转发率=1000Mbps/672=1.488095Mpps,约等于1.4881Mpps,148万pps
万兆端口线速包转发率=10000Mbps/(848bit)=14.88095Mpps,约等于14.881Mpps,1488万pps
2500M
1000*1000/8/1538=20万pps # 麒麟系统到达20万pps时,ksoftirqd 就达到100%了
在这里插入图片描述

arrival为每个数据包之间的时间间隔。

基线测试

在性能测试中首先要做的是建立基线(Baseline),这样后续的调整才会有一个参考标准。值得注意的是,在测试基线的时候,一定要保证系统工作在正常的状态下。

在这里插入图片描述
在这里插入图片描述

这是通常用来衡量带宽的单位,指每秒钟传输的二进制位数;
而通常软件上显示的速度则是指每秒种传输的字节数(Byte)通常用B(大写)表示;MB即百万字节也称兆字节;KB即千字节;B即字节;
之间关系为1MB=1024KB=1024*1024B;
1B=8b;
1M带宽即指1Mbps=1000Kbps=1000/8KBps=125KBps。因此1M的带宽下载的速度一般不会超过125KB每秒。
2M、3M带宽分别是250KBps、375KBps;
2M、3M带宽的下载速度分别不会超过250KB、375KB每秒。
假设要对10kbps进行换算,则有 10kbps=10000bps=0.01Mpbs.
数据传输速率的衡量单位K是十进制含义,但数据存储的K是2进制含义。
1kbit/s就是1000bit/s,而KB是1024个字节,注意KB和kbit的区别,另外,数据传输速率的单位是bit/s 记作:bps 。
**1kbps=1000bps,1Mbps=1000,000bps.
**1Mbps与 1m/s 是有区别的,1m/s指的是是1024KB/S
而1Mbps指的是1000/8KB/S也就是125KB/S,
记住K和k是没区别的 ,区别在于bps属于位每秒的单位,而m/s ,KB/S这两个属于字节每秒的单位,一字节等于8位,即1k=8b

ref

http://023wg.com/message/message/cd_feature_link-layer.html


本文链接:http://www.hqyman.cn/post/4630.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: