EE|计算机网络|Link Layer-链路层
网络协议栈
整体呈漏斗型,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)
负责物理传输,错误检测。(电路容易出错)
Link Layer
链路层的目的是物理上将两个位置的数据进行直接传输。
•物理传输
并行-单位时间位数为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的位置,即可判断哪一位传输错误。
相关文章
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!
- 技术分享 | ClickHouse 集群分片下扩容副本的方式
- 数据传输 | DTLE 3.21.10.0 来啦!
- 笔记分享(5)-ORACLE转MYSQL注意事项
- Java NIO 深入研究
- 基于流计算 Oceanus 和 Elasticsearch Service 实现实时监控系统
- Kafka常用监控框架百科全书