介绍 :
协议是两个设备用来通信的一组规则。这些规则集通常由标头(由协议确定的固定标头)决定。这些标头指定了消息的内容以及该消息的处理方式。要检测该错误,标头必须是目标地址,源地址,消息的校验和。
协议分类:
协议的探讨分为可用于无噪声(无错误)信道的协议和可用于有噪声(引起错误)的信道的协议。第一类协议无法在现实生活中使用,但它们是噪声通道协议的基础。
无噪音频道:
一个理想的通道,其中不会丢失,破坏或复制任何帧。该协议未在此类别中实现错误控制。无噪声信道有两种协议,如下所示。
最简单的协议–
我们在这里认为接收器可以维持接收到的任何帧,而处理时间却很短。接收者的数据链路层立即从帧中删除报头,并将数据包分配给其网络层,该网络层也可以立即接受该数据包。也就是说,接收器永远不会被即将来临的帧所淹没。
- 设计 :
发送方站点上的数据链路层从其网络层获取数据,从数据中取出帧,然后发送。数据链路层(接收者站点)从其物理层接收帧,从帧中提取数据,并将数据传送到其网络层。发送方和接收方的数据链路层为其网络层提供通信/传输服务。数据链路层利用其物理层提供的服务进行位的物理传输。
- 发件人站点和接收者算法:
发件人站点算法–
while(true) //Repeat forever
{
waitForEvent(); //sleep untill an event occur
if (Event(RequestToSend)) //there is a packet to send
{
GetData();
MakeFrame();
SendFrame(); //send the frame
}
}
- 接收器算法–
while(true) //Repeat forever
{
waitForEvent(); //sleep untill an event occur
if (Event(ArrivalNotification)) //data frame arrived
{
ReceiveFrame();
ExtractData();
DeliverData(); //Deliver data to network layer
}
}
- 流程图 :
该流程图显示了使用最简单协议进行通信的示例。这很简单。发送方发送一系列帧,而无需进一步考虑接收方。让我们举个例子,发送者将发送三个帧,接收者将接收三个帧。请记住,数据框由倾斜的框显示;框的高度定义帧中第一位和最后一位之间的传输时间差。 - 图–
停止和等待协议–
如果数据帧接收器到达现场的速度超过了处理速度,则必须存储帧直到使用它们。通常,接收器没有足够的存储空间,尤其是当它从多个源接收数据时。
- 设计 :
在将停止等待协议设计模型与最简单协议设计模型进行比较后,我们可以看到前/前通道(从发送方到接收方)和后/反向通道上的流量。任何时候,在前向通道上都会有一个数据帧,或者在反向通道上都会有一个ACK帧。因此,我们需要一个半双工链接。
- 发件人站点和接收者算法:
发件人站点算法–
while(true) //Repeat forever
canSend = true // Allow the first frame to go
{
waitForEvent(); //sleep untill an event occur
if (Event(RequestToSend)AND canSend) //there is a packet to send
{
GetData();
MakeFrame();
SendFrame(); //send the data frame
canSend = false; //cannot send untill ACK arrives
}
WaitForEvent(); //sleep untill an event occurs
if(Event(ArrivalNotification)) //An ACK has arrived
{
RecieveFrame(); //Recieve the ACK frame
CanSend = true;
}
- 接收器算法–
while(true) //Repeat forever
{
waitForEvent(); //sleep untill an event occur
if (Event(ArrivalNotification) //data frame arrives
{
ReceiveFrame();
ExtractData();
DeliverData(); //Deliver data to network layer
SendFrame(); //Send an ACK frame
}
}
- 流程图 :
该图显示了使用“停止并等待”协议进行通信的示例。它仍然很简单。发送方发送帧并等待接收方的响应。当ACK(已确认)将从接收方到达时,则发送下一帧,依此类推。请记住,当有两个帧出现时,发送者将涉及四个事件,而接收者将涉及两个事件。