版权声明:转载请附上博客地址 https://blog.csdn.net/weixin_38134491/article/details/84666875
无声通道就是一种不会丢失帧、复制帧、损坏帧的理想通道,应用于这种通道的有两种协议,
- 第一种是不使用流量控制
- 第二种是使用流量控制
两者都不使用差错控制,因为以及假设是理想通道了,排除外界干扰,
最简单协议 simplest protocol, 这个协议就是我们上面说的不使用流量控制的协议,此协议是单向的,数据帧从发送方到接收方单向传输,这种协议简单说就是接收方永远不会因为进入的帧而超载,就是理想化的传输。
设计
发送方站点的数据链路层从网络层接收到帧,从帧中取出数据,然后将数据传输到网络层,
注:物理层提供的服务有 发信号、多路复用...
算法实现
算法是实现:一个是 发送方的程序不断运行着,直到有来自网络层的请求才会有行为,
还有个是接收方的程序不断运行着,直到有来自物理层的通知才会有行为。
两端的程序都不断的运行,因为他们不知道相关时间何时发生
下面是发送方站点算法实现:
while(true){
WaitForEvent();
if(Event(RequestToSend)){
getData(); //从网络层获取数据包
MakeFrame(); //在数据包中添加头部和分界的flag形成帧
SendFrame(); //将帧发送到物理层
}
}
这个算法的功能就是发送方的数据链路层在不停地等待来自网络层的数据:WaitForEvent();
当一个数据从网络层来到数据链路层时开始执行操作:得到数据、把数据分组封装成帧、发送帧三个操作
上面这个算法是无线循环的,但又是时间驱动型的,也就是它在第三行休眠 直到第四行一个事件唤醒他,
下面是简单协议中接收方站点的算法:
while(true){
WaitForEvent();
if(Event(ArrivalNotification)){
ReceiveFrame();
ExtractData(); //从帧中取出数据
DeliverData(); //将数据传输到网络层
}
}
此算法也是时间驱动型算法,ExtractData()语句是从帧中取出数据,DeliverData()是将数据传输到网络层
Reference:《Encryptography and Networking Security》6th William Stalling