跳转到主要内容

计算机网络与物流系统

计算机网络就像一个物流系统,区别在于物流系统传递的是邮件包裹这类物质实体,而计算机网络传递的是信息这种无形的东西。

计算机网络从下到上分为五个层:物理层,数据链路层,网络层,传输层,应用层:

  1. 密密麻麻的公路组成了 物理层
  2. 中转站和公路一起构成了 数据链路层
  3. 各个集散分拨中心,就是路由器,它们构成了 网络层 的核心。
  4. 再往上,那些派送的门店成为了 运输层 的主体。
  5. 最后各个用户,消费者,企业,公司位于系统的最顶端——应用层

1.应用层

消费者在网上购买东西,向远方的朋友寄信,都需要用到物流系统提供的服务。

共享(传递)数据(货物),沟通交流,是网络的两大功能。

消费者和卖家在网上商量好购物和付款的细节流程以及规矩,这就是 协议(Protocol)

寄包裹有寄包裹的规矩,比如 文件传输协议(FTP)

寄信有寄信的规矩,比如 简单邮件协议(SMTP)

卖家联系了物流公司,这叫请求服务。

快递员就是 服务接入点(SAP)

而要寄的货物就是协议 数据单元(PDU)

有的人寄得是包裹,需要去柜台或者小区门卫。有的人寄的是信,可以直接投到家里的邮筒里。

柜台和邮筒就是 端口(Port),他们为不同的应用层对象提供不同的服务。

2. 传输层

邮件到了门店,来自同一个地方许许多多的邮件以目的地分类打成一个个大包裹(TCP/UDP数据报)

平信弄丢,邮局是不负责的,但它们会尽最大努力(谁知道呢)去交付。这个规矩叫 用户数据报协议(UDP)

如果弄丢的话,那就没办法了,只能让用户再发一份了(应用层重传)。还好,交通通畅的时候,这种事基本很少发生。

虽然并不是很靠谱的样子,不过平信好在便宜。所以大多数不是很重要,或者不急的邮件与邮包,都是这么寄的。因为没有那么多手续,所以这么寄还稍微快一点。

挂号信,稍微麻烦一点,比较贵(开销大)。但是邮局是保证送到的。如果丢失,它们会帮你再送一次(重传)。

具体的规则是:每次寄件前,都会联系目的地的门店,告诉它们我们要寄一个包裹请查收(连接请求),然后对方确认收到之后再开始邮寄流程(连接确认)。当对方收到包裹之后,还会告诉这边:我们收到了(对确认的确认) 。

这整个三次握手的流程就是 传输控制协议(TCP) 的一部分。

每个邮件的地址上必须写上寄到什么地方,是扔邮箱还是放门卫还是上门自提(端口号)。这个地址和分拨中心的 地址(IP地址) 结合起来叫做 套接字(Socket)

有时候物流压力比较大的时候,对方门店会给这边寄得包裹里捎上纸条(窗口字段),说你们包裹压一压,少发些,我这边还没处理完呢。(窗口控制)。

有时候,信件上插着鸡毛(紧急指针),见到这种信,邮局会马上停下手头的投递活动把这封信送达用户。(紧急数据)

交通阻塞总是难免的,或者有时候运输车辆路上翻了,邮件全毁了。这时候只要这边邮局过一段时间收不到回应,就会重新发一份包裹(超时重传)

不管怎么样,门店收来的包裹,都要上缴(使用网络层的服务)到分拨中心(路由器)进行统一调度(路由选择)。

3. 网络层

物流系统有许许多多的分拨中心(路由器),各个分拨中心之间也有许多交通方式(数据链路)连接着。

每一个接入到公共交通网(互联网)的分拨中心(路由器),都有一个独一无二的地址(IP地址)。当然,每个城镇(主机)也可能有多个分拨中心(多个IP地址)。

有时候,土皇帝(局域网管理员)还会建一个本地的邮政网络(局域网),这种局域网用的都是本地的地址(本地局域网IP地址)。写着这种地址的邮件是进不了公共交通网的。

每个邮包在到达分拨中心(路由器)后,都会被贴上一个标签(IP数据报表头),上面写着目的地址和寄件人地址。比如浙江宁波XXX分拨中心,江苏南京XXX分拨中心之类。

以前,邮件地址只要写四段(4段十进制IP地址标记法)就可以,比如 中国 – 浙江省 – 宁波市-鄞州区,因为那时候分拨中心比较稀有,不过随着经济发展,连一些山旮旯里的村里都修上分拨中心了,四段地址就显得不够用了,所以现在正在推广的一种标准就是六段地址,不仅要写到市,还要写镇,村,小区…总共六级(IPV6)。

当然这个包裹的标签上的内容还有很多。

当分拨中心看到要寄往的分拨中心IP(目标IP),它虽然知道这个分拨中心叫什么(网络地址IP),但是不知道应该走哪条路(物理地址MAC)。所以他向所有连着的路都发送了一封信,写着,我要找XXX的分拨中心,谁知道,告诉我走哪条路。这个叫(ARP寻址)。然后XXX收到了这个,回了一封信:我是XXX,走这条路过来。(ARP响应分组)

包裹发出去后,下一个分拨中心会再次选择最好的路线,继续把这个包裹传递下去(路由选择)。

通常情况下,分拨中心也是有等级(网络类型)的。国家级(A类),省级(B类),市级(C类)。等级越高,这个分拨中心的辖域(网络大小)就越大,这一类分拨中心的数目就越少。有时候,乡镇里面也会有自己的分拨点,比如各个小区建了提货送货点(子网)。

各个分拨中心在工作的时候,相互协调交流不是通过电话,也是通过信件相互联系——网际控制报文协议(ICMP)。交流一下哪条路不好走(终点不可达),路太堵了,压低业务量(原点抑制)之类的情报。

有时候,各个分拨中心也会相互交流一下最好的物流路线.(路由选择协议)。一般省内,市内的网络比较喜欢内部先交流好(路由信息协议RIP),然后对外再选定一个主要分拨中心作为本省物流主要出口(BGPSpeaker边际网关协议发言人),然后国家级的分拨中心再来安排省间的邮路选择(开放最短路径优先协议OSPF)。

4. 数据链路层

辛苦的司机,永远工作在送货的路上。他们的工作非常简单,出发前打个电话(同步),然后拉着货(IP数据报),打个包(封装成帧)就上路了。

为了防止货物中通丢失或者被司机贪污。分拨中心会在每个集装箱里面放一个装有货物信息的清单(效验码)。如果收货的时候对不上(校验和错误),那么这一车货物就必须丢掉。(丢弃帧)。不过司机只管运输的活,要重新发货就要重新掏一次钱(数据链路层不提供重传服务,绝大多数时候)。

通常,一个市(用户)都有到省会(ISP)的直达高速道路,货车开这种路是再爽不过,因为永远不会迷路(点到点协议PPP),而且这条路是独享的,宽敞没人抢。发送的包裹上面也不用告诉司机走哪条路(PPP协议不需要物理地址),因为是点到点的。

然而,大多数时候没这么爽,城市内本地的道路网络(以太网)都是错综复杂的。在这种道路网上行驶需要导航和地址(MAC)。一种比较流行的道路结构是一条主干道连接着许许多多的支路(总线型以太网)。最坑爹的是这条路还是单行的,一次只能让一个方向过一辆车(半双工工作模式)。所以各个区的货车想上公共交通网络,必须要争抢这条路(冲突)。

因为一次只能过一辆车,为了解决冲突,货车司机们立了一个规矩(CSMA/CD协议):上路前先把耳朵贴在路上听听有没有车,如果没有车,再上路(载波监听CS)。可是经常会发生两个司机一起听到路空然后上路,结果撞上了(冲突),两车货都作废了。新的解决方案是:。首先计算出货车沿着主干道最长的路径往返一次需要的时间2t(争用期)。每次撞车后,双发都先大喊撞车了撞车了(强化碰撞)让所有人都知道。然后双发随机等待一段时间再上路,如果又撞了,那就在更长的范围里随机等一会(动态退避)再上路。(截断二进制指数退避)。如果撞了十六次,那说明这路实在太堵了。还是乖乖回家吧。(网络忙。传送失败)。

那么司机是怎么认路的呢?答案是每个需要在城市路网(以太网)上跑的集装箱(MAC帧)都写了地址。这个地址是全球唯一的,每一个邮箱,每一个柜台,每一个收发室,都有这么一个地址。

但是通常门牌号(MAC)都不容易看到。所以司机在送货的时候会每个小区跑个遍,说:寄往XXX小区的包裹,快来领(广播)。如果地址对上了,那么这个包裹传达室大爷(网卡)就收下了。当然也有一些冒领包裹的狗东西偷偷摸摸就把这个包裹收下了(这一点是因为信息能复制)。叫做(混杂方式)。还有的坏人在路上装监控(嗅探器),来偷看包裹里的东西。

顺带一提,城际点对点的高速公路(PPP),如果不是由省会(小弟级ISP)连接到某个特定城镇(用户),而是连接到一个城镇构成的交通网(局域网/以太网),那么货物的规格(帧的格式)也需要统一。业内习惯的做法是把专线用的集装箱(PPP帧)再用普通公路网的集装箱(MAC帧)套一层。把这个双层包装叫做“在城市路上跑的专线集装箱”(PPPoE PPP on Ethernet 在以太网上跑的PPP帧)。

5. 物理层

物理层,就是司机们走的路

高铁就是光纤;高速公路,就是同轴电缆和双绞线。

最大载重量也就是最大数据率——带宽

但公路上的速率并不对应计算机网络的速率,它对应的是发车的快慢。

时延与吞吐量是一样的概念。时延分为好几种。发车的时间(发送时延)。花在路上的时间(传播时延)。在收费站浪费的时间(排队时延)。在分拨中心浪费的时间(处理时延)。

送货的用时(延迟),主要取决于道路的宽度(带宽,网速)。一批100车的货,每次只能上一辆车的路,和每次能上十辆车的路,肯定用时相差很多。货车开的很快(近光速),所以路上用的时间非常短。一公里只要5微秒就跑完了。当然,如果这是路况(网络状况)好的时候,如果堵起车来。那就主要取决于排队与处理的时间了。

一般来说,一条路只跑一个公司的车太垄断了,所以工程师总是想着让一条路同时跑更多公司的车辆(比特流)。主要的方法有:一条路上扩展车道:A车道,B车道。。(频分复用FDM),大家轮流使用(TDM时分复用).或者一辆车同时装好几家公司的货(CDM码分复用)。

那么路是怎么来的呢?一般来说主干道都是国家部门(大佬ISP)直接开荒地修的。而城镇里的路一般都是借着以前的土路(公共电话网络)连着主干道的,虽然是土路,但也够宽敞。以前跑的拖拉机(3KHz电话信号),现在也能够跑大卡(1MHz数字信号)。不过这种土法子(ADSL)都有个毛病,主干道地势都比较高,所以货车下来的速度是很快,但是上去就非常吃力(ADSL非对称用户线下行速率远大于上载速率)。

有的城镇比较有钱,直接把高速铁路修到家门口了(FTTH光纤到户),次一点的也修到市中心了(FTTx光纤到街道,到小区,到…)。