我住在A社区,想要给住在B社区的一个朋友寄个礼物——一只超级大的宣威火腿!于是我把这个礼物准备好然后交给计网快递公司帮我送到我的朋友家。

我把火腿用保鲜膜封上,并在保鲜膜表面写上一些信息,这些信息就是你所选用的应用层所用协议报文的头部,比如若是你想用这只宣威火腿换朋友家的伊比利亚火腿,那么这只火腿可以看做是个http请求报文的实体主体(实体主体也可以没有,那么你就是空手套白狼,啥都不给朋友,让朋友给你信息),然后你写的信息就是http协议请求报文的请求行+首部行。

好了你包装好之后,你叫了上门服务,然后快递公司快递员上门来取你这个件,你可以选择是让快递员放在朋友家门口,还是让快递员工必须精准送到朋友手中。选择前者的话,就是使用传输层的UDP协议,尽快递员最大努力交付就行,这样就不用签字收获即无需建立连接,也没有拥塞控制,朋友在家洗澡时快递员送到了,不用一直等朋友洗完澡给完他才能去送下个件;选择后者就是使用TCP连接,这个就是比较可靠有序了,基本上就相当于有快递员专门为我和我朋友两人服务,我俩可以随时向对方发快递。好了现在快递员拿到了我给他的包装完的火腿,他自己又给火腿套了一层塑料袋,袋子上写着UDP或者TCP的报文首部。

现在快递员把包装好的火腿拿到了A社区门口的快递点,让负责发快递的同事给发出去,发快递的同时又把这个火腿放进了包装袋内,封上口,贴上“计网速运”这么个封条,封条上有IP数据报的首部。然后他开始查找B社区所在的省份城市等等,看看我们下一步发到哪一个快递点,比如要是从南京发到北京,那么可能下一步先从A社区快递点发到南京分拣总部,然后从南京分拣总部发到徐州分拣部,再从徐州发到济南,再从济南发到天津,最后发到北京。那么在A社区,他确定了先从A社区发到南京分拣总部。

然后负责发快递的小哥叫来了运输负责人,负责人一来一看,呵,这火腿怪大!因为我们从A社区到南京分拣总部的交通系统是属于局域网,最大传送单元MTU是1500B,所以你这个火腿得分一分片,然后负责人,把这个装好包装袋的火腿拦腰砍成了几段,除了第一段上有之前贴好的IP数据报首部,其他的几段他又加上了这些首部。然后负责人还有保证南京那边的交通负责人不要收到错误的货,也不能这边一直发导致那边拣货来不及造成堵塞,于是它还要完成组帧,流量控制,差错控制等任务。负责人拿出一个纸箱子,把每一个分好段的火腿放进去(组帧),在里面空隙处塞上泡沫(差错控制),并和南京那边联系,看看他能接受我多少货,而且两地负责人约定好若是拿出货物时通过泡沫来判断货物是否受损或变质,出了问题的件就不要了,重新发送。

然后就要准备装车了,其实说是装车,也可以是轮船或者飞机,有很多交通方式,这个就是物理层面的选择了。

快递公司有