主机A向同一个网络上的另一个主机B发包时,会通过地址解析协议(Address Resolution Protocol,ARP)获得对方的物理地址,然后把包发给对方。
主机A需要发送一个数据包到主机B,在整个传输流程中,源和目的IP地址是保持不变的(不考虑NAT),源和目的MAC地址是随着具体链路的变化而变化。
传输流程
主机A在本机的路由表中查询匹配主机B的IP的网络号;
如果能够查询到,说明主机B和主机A在同一网段(通常是在同一局域网内),则下一跳即为主机B。主机A在ARP缓存中查找主机B的MAC地址(如没有则先发送ARP广播),然后将数据包封装成帧发送至通信线路上。该帧的源MAC是主机A的MAC地址,目的MAC是主机B的MAC地址。
如果主机A和主机B是网线直连的,那么主机B直接收到主机A发来的帧。
如果主机A和B是通过交换机相连的,交换机的某个端口收到主机A发来的帧,然后根据帧中的目的MAC地址在MAC地址表中查询对应的转发端口。如果找到了,直接从该端口转发出去;如果没找到,则在除了接收到数据包以外的所有端口进行转发(广播)。
如果主机A和B是通过路由器相连的,路由器的某个端口收到主机A发来的帧,其后的处理流程见步骤4。
如果不能查询到,说明主机A和主机B不处于同一网络中,需要通过网关来进行跨网络的通信。主机A会通过默认网关(通常是路由器)来提交报文,即下一跳是路由器。主机A根据网关的IP在自己的ARP缓存中查找对应的MAC地址(如没有则先发送ARP广播),然后将数据包封装成帧发送至通信线路上。该帧的源MAC是主机A的MAC,目的MAC是路由器的MAC。
当网关路由器接收到数据帧时,首先提取包头中的目的MAC地址,在MAC表进行查询。如果找到对应项,则按对应的端口进行转发(这一步实现了与交换机一样的功能);如果没找到对应项,则提取数据包包头中的目的IP。
如果目的IP是自己(这是可能的,比如ping路由器),则交由上层处理。
如果目的IP不是自己,则需要进行转发,在路由表中查询目的IP的转发端口和下一跳IP。若找到了对应的路由表项,则按照路由表项转发;若没找到对应的路由表项,则按照缺省路由进行转发。转发时,源和目的IP地址不变,源MAC地址改为转发端口的MAC地址,目的MAC地址改为下一跳IP的MAC地址。
题目
电路交换和分组交换的比较
要传送的报文共 x ( bit )。从源点到终点共经过 k 段链路,每段链路的传播时延为 d ( s ),数据率为 b ( bit / s )。在电路交换时电路的建立时间为 s ( s )。在分组交换时,分组长度为 p ( bit ),每个分组所必须添加的首部都很短,对分组的发送时延的影响在题中可以不考虑。此外,各节点的排队等待时间也可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察 k 段链路共有几个节点。)
分析
1)电路交换
电路交换时需要先建立连接,然后由一方发送数据到另一方。
电路交换时总时延=建立时延+起点的发送时延+在链路中的传播时延。
2)分组交换
分组交换时需要先将报文分为若干个分组,然后发送各分组到链路中,然后通过节点转发到下一个链路,直至节点是终点。
k段链路,共k-1个节点。
分组交换总时延=起点的发送时延+节点的发送时延+在链路中的传播时延
3)列式
电路交换
总时延T1=s(建立时延)+x/b(发送时延)+kd(在链路中传播时延)。
T1=s + x/b + kd
分组交换
总时延T2=(p/b) × (x/p)(发送时延)+kd(传播时延)+(k-1)×(p/b)(节点的发送时延)。
T2= (p/b) × (x/p) + kd + (k-1) × (p/b)
有朋友可能就会问:为什么节点的发送时延只算了一个分组呢?
就像上面所分析的那样,我们应该关注的是最后一个比特,而最后一个比特又在最后一个分组,所以最后一个分组所需的时间,便是总时间。
关于往返时延RTT的问题
引用《计算机网络:自顶向下方法》中的介绍:RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。(就是不包括分组发送时延)
往返时间 (RTT) 是以毫秒 (ms) 为单位的网络请求从起点到达目的地并再次返回起点所需的持续时间。 RTT 是确定本地网络或更大 Internet 上连接健康状况的重要指标,网络管理员通常使用它来诊断网络连接的速度和可靠性。![](/i/l/?n=23&i=blog/2769618/202301/2769618-20230111074433761-23834283.png)
影响RTT的最终因素是路由器的出口队列的排队长度,网络空闲就为0,网络拥塞时几毫秒、几十毫秒、几百毫秒不等。
![](/i/l/?n=23&i=blog/2769618/202301/2769618-20230111074809165-495277629.png)
这道题中AB之间没有路由器,所以用120ms/2=60ms.
原文链接:https://blog.csdn.net/hxkcmp/article/details/48028159
http://t.csdn.cn/OMc9Q
![](https://common.cnblogs.com/images/loading.gif)
标签:主机,交换,MAC,分组,时延,链路,路由器 From: https://www.cnblogs.com/Pekoe-blackTea/p/17041373.html