每个包要贴掉多少字节
还是那份 1100 字节的资料,每个包最多装 400 字节。每个包都要依次贴上传输层(20 字节)、网络层(20 字节)、链路层(14 字节)三个头。 这段程序输出每个包一共贴掉多少字节和这一份资料一共贴掉多少字节。它输出什么? DATA,
贴了几个头,一共上路多少字节
同一份资料、同一种切法。这段程序输出一共贴了几个头和真正在线上跑的总字节数。它输出什么? DATA, MSS = 1100, 400 PER = 20 + 20 + 14 def split(total, mss): out =
自己写:切得太碎要付多少代价
还是这份 1100 字节的资料,但这次每个包只装 50 字节。 补全 cost(),让它算出这些包一共贴掉多少字节的头。输出包数和开销字节数,中间用 / 隔开。
自己写:两种切法,内容一个字都不能变
同一份资料,一次切成大包、一次切成小包。切法可以随便挑,但拼回来的内容必须一模一样——否则就是切错了。 补全 same(),输出两种切法各切出几个包,以及两边拼回来是不是一致。
自己写:把三个头一层层剥掉
一个包从外到里贴着链路、网络、传输三个头,最里面才是数据。 补全 peel(),从最外面那层开始剥,把剥掉的层名依次记下来。输出剥的顺序(用 - 连起来)和剥完还剩几样东西。
第一件事是什么
程序里写的是一个名字,不是一串数字。这次通信真正要做的第一件事是【0】。
最容易被忽略的一步
数据发出去了,也确实到了对方机器上。中间最容易被忘掉的一步是【0】。
怎样才算这次通信成功
一次通信要到哪一步才算成功?答案是【0】。
一次往返一共多少个包和头
请求是 1100 字节,响应是 600 字节,两边都按每包最多 400 字节切,每个包都贴三层头。 这段程序输出一来一回一共几个包和一共贴了几个头。它输出什么? def split(total, mss): out = []
切碎之后开销涨了多少倍
同一份 1100 字节的资料,一次切成大包(每包 400 字节),一次切成小包(每包 50 字节)。 这段程序输出两种切法各自的开销和后者是前者的几倍。它输出什么? def cost(total, mss): n = (total