浅谈随机访问介质访问控制

为什么需要随机访问介质控制协议

1.随机访问中,发送信息的次序控制不依靠集中控制方式解决。即并没有一个中央处理机来调度。
2.用户发送信息是随时的,想发就发,并且发的时候是占用全部信道的。
3一条信道中如果有两个信息,那么会发生碰撞。

纯ALOHA(Additive Link On-line HAwaii system)协议

每个站点想发就发,无需检测。当过一段时间后没有收到“确认”,则认为发生了碰撞。

while(true)
{
	send();//发送信息
	if(is_ok()) break;//无碰撞,发送成功,退出循环
	wait()//有碰撞,等待一段**随机时间**
}

时隙ALOH(Additive Link On-line HAwaii system)协议

各个站点时钟同步并将时间分为若干相等的时隙(一个时隙恰好发送一个帧),想发之前先判断当前时刻是否是时隙的开端。

while(true)
{
	if(t%T==0) send()
	if(is_ok()) break;
	wait();
}

1-坚持CSMA(Carrier Sense Multiple Acess,载波监听多路访问)

比纯ALOHA协议多了一个监听信道步骤

while(true)
{
	while(is_busy()) ;//监听信道,直到不忙
	send();//发送信息
	if(is_ok()) break;//无碰撞
	wait();//有碰撞,等待一个随机时间
}

非坚持CSMA(Non-persistent CSMA)

将循环监听直到不忙变成了 :监听一次,不忙则发送信息;忙则等待一个随机时间再监听。

while(true)
{
	while(true)
	{
		if(is_busy()==false) break;//监听到信道空闲
		wait();//等待一个随机时间
	}
	send();//发送信息
	if(is_ok()) break;//无碰撞
	wait();//有碰撞,等待一个随机时间
}

p-坚持CSMA(p-persistent CSMA)

将非坚持中“监听到忙则等待一个随机时间”变成“等待到下一个时隙”
将“监听到空闲立即发送信息”变成“以p的概率发送,以(1-p)的概率延迟到下一个时隙发送”

while(true)
{
	while(true)
	{
		if(t%T!=0) continue;//如果不是时隙的起始时刻,不监听
		if(is_busy()==false) break;//监听到信道空闲
	}
	if(p())//p的概率发送信息
	{
		send();//发送信息
		if(is_ok()) break;//无碰撞
		wait();//有碰撞,等待一个随机时间
	}
}

CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/碰撞检测)

先听后发,边听边发,冲突停发,随机重发

while(true)
{
	while(is_busy()) ;//监听直到不忙
	send_and_detection();//边发边听
	if(is_ok() break;//无碰撞
	crowd();//有碰撞,发送一个48比特的拥塞信号
	tbeb_wait();//用截断二进制指数退避算法等待一个随机时间
}

对于监听的理解:
监听只是检测本结点收没收到信息,收到了则说明忙;反之,则认定为空闲。
当信息在信道中,还没有到达结点时,监听的结果会显示信道空闲。

你可能感兴趣的:(计算机网络)