考虑三个IP网络A,B和C.网络A中的主机HA将每个包含180字节应用数据的消息发送到网络C中的主机HC.TCP层为消息添加前缀20字节的头。这通过中间网络B.
每个网络中的最大数据包大小(包括20字节IP标头)为: 答:1000字节 B:100个字节 C:1000字节 网络A和B通过1 Mbps链路连接,而B和C通过512 Kbps链路连接(bps =每秒位数)。
Q). Assuming that the packets are correctly delivered,
how many bytes, including headers, are delivered to the IP layer
at the destination for one application message, in the best case?
Consider only data packets.
(a) 200
(b) 220
(c) 240
(d) 260
我遇到了很多这个问题的解决方案,他们没有考虑eathernet标题或数据链接层的其他内容。下面给出了类似的解决方案
(D)来自网络的数据A = 180字节应用数据+ 20字节TCP报头+ 20字节IP报头。 IP报头将在网络B中被剥离。因此,B将分割(180 + 20)个字节= 3个段中的200个字节的数据,即。 (80 + 80 + 40)允许20个字节的IP头空间。因此,总IP头开销=(20 * 3)字节= 60字节。要传送到网络的总数据C =(80 + 80 + 40 + 60)字节= 260字节。
答案 0 :(得分:2)
问题是:
将多少字节...传递到 IP 层
在将帧传送到IP层之前,链接层标头被剥离,因此您无需计算它。
此外,问题没有说明正在使用什么链接层,那么你怎么可能知道它的标题有多大?
答案 1 :(得分:0)
这里的关键是要了解IP使用非透明分段,因此当220字节数据包[20字节网络层标头+ 20字节传输层标头+ 180字节应用程序数据] 进入网络B,因为网络B中的最大数据包大小为100字节,它会被分段。 对于网络层,200字节部分[20字节tcp报头和180字节应用数据]将是数据部分,因为网络层不会打扰它上面的层的标题。 因此,在网络B中,220字节数据包被分段为: 220 [20 | 200] = 100 [20 | 80] 100 [20 | 80] 60 [20 | 80]
现在,当这些片段离开网络B并进入网络C时,即使网络C可以支持更大的数据包大小,由于非透明的分片,这些数据包不会被网络B重新组装。因此,网络C中的主机接收3个fragmnet,因此100 + 100 + 60 = 260个字节。
提示:IP使用非透明碎片。 ATM使用透明碎片。 因此,如果网络是ATM网络,那么ans会有所不同。