整体呈漏斗型,Network只使用IP,因为对于网络而言,使用的用户数,会造成平方级别的链接,因此单个网络的人数越多越好。
send时层层加包,recieve时层层解包。
Application(B/S): URL
负责基本数据
Transport(Proxy, Firework): Port number
TCP维护Seq Ack等数据,用于验证(防止传输错误),因此有所谓三次握手。
负责传输失败时进行重传。
Network(Router): IP address
负责next hop。每个路由有route table,根据路由协议(防止呈环),逐渐找到正确的地址。
Link&Physical(Line)
负责物理传输,错误检测。(电路容易出错)
链路层的目的是物理上将两个位置的数据进行直接传输。
并行-单位时间位数为n,由于需要等待所有线同步传输,实际效率未必高
串行-单位时间位数为1,不需要等待response
如果共享时钟的话,可以先商量好传输多少次data,而不需要每次都进行一次请求。根据传递的data的频率,在B通过VCO(Voltage Controlled Oscillator)我们可以将时钟周期与A同步。然而如果全是0的话,看起来信号就会一值不变。因此引入曼彻斯特编码,0->10,1->01,减少速度传输效率,从而让VCO正确运转。
Manchester Code
同步通信 (telephone communication)
–Switch需要进行统筹
–需要建立和拆卸连接(因此需要保存状态)
每个电话建立的连接固定64kb带宽,固定了size和间距
电话的包会被拆分成多个frame
异步通信 (data communication)
–Message: 突发的、不适合固定大小和间距
–无需建立连接, 异步
frame长度任意,可以在任意link空闲时传输。由于无需connection,stateless
Multiplexing / Demultiplexing
信息的传递使用队列,在Demultiplex时通过header中的目的地,与switch中的forwarding table进行下一步传递。
可以选择一个简单的序列作为frame的定界符(如7个1,为了避免数据中出现,则打包时所有的6个1后添加0,解包时1111110后删去0)
常见的冗余编码,通过最终的码是否仍符合规则,判断什么位传输出了问题。
这里之所以插入在1,2,4位,是因为看表,下标相加即可。
把理论的P367推出的编码和实际的编码比较,根据Not Match的位置,即可判断哪一位传输错误。