搜档网
当前位置:搜档网 › 有噪声信道的单工协议

有噪声信道的单工协议

有噪声信道的单工协议

实验内容:

有噪声信道的单工停等协议的实现。

实验目的:

了解数据链路层协议的基本原理;

掌握数据链路层的基本流量控制和差错控制的实现方法;

掌握有噪声信道的单工停等协议的工作过程。

实验要求:

选用任一编程工具和编程语言实现;

使用发送端程序和接收端程序实现数据的可靠传输。

实验原理:

在有噪声信道中的数据传输可能由于不确定的原因造成传输数据的丢失,包括发送方发出的信息和接受方返回的确认帧。而在有连接有确实的数据传输过程中要求数据正确无误的传送的接受方,所以在数据链路层的协议上对于各种数据的损坏或丢失都要进行更正。本实验演示了该协议在各种状况(数据丢失,确认丢失,数据延迟)下的处理方式。

原程序:

import java.awt.*;

import java.awt.event.*;

class Thread1 extends Thread{

int tim;

Button b;

Frame f;

Thread1(int t,Frame fra){

tim=t;

b=new Button("0");

b.setForeground(Color.blue);

b.setBounds(10,30,40,30);

f=fra;

f.add(b);

}

public void run(){

if(tim==10){

for(int j=0;j

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(10+5*j,30+20*j,40,30);

}

b.setLabel("丢失");

try{sleep(1000);

}catch(InterruptedException e){}

f.remove(b);

}

if(tim==20){

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(10+5*j,30+20*j,40,30);

}

b.setLabel("1");

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(100+5*j,400-20*j,40,30);

}

try{sleep(1000);

}catch(InterruptedException e){}

f.remove(b);

}

if(tim==40){

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(10+5*j,30+20*j,40,30);

}

b.setLabel("1");

for(int j=0;j<10;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(100+5*j,400-20*j,40,30);

}

b.setLabel("丢失");

try{sleep(1000);

}catch(InterruptedException e){}

f.remove(b);

}

if(tim==50){

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(10+5*j,30+20*j,40,30);

}

b.setLabel("等待");

try{sleep(2000);

}catch(InterruptedException e){}

b.setLabel("1");

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(100+5*j,400-20*j,40,30);

}

try{sleep(1000);

}catch(InterruptedException e){}

f.remove(b);

}

}

}

class Thread2 extends Thread{

int tim;

Button b;

Frame f;

Thread2(int n,Frame fra){

tim=n;

b=new Button("0");

b.setBounds(200,30,30,20);

b.setForeground(Color.blue);

f=fra;

}

public void run(){

try{sleep(40*100);

}catch(InterruptedException e){}

f.add(b);

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(200+5*j,30+20*j,40,30);

}

b.setLabel("1");

for(int j=0;j<20;j++){

try{sleep(100);

}catch(InterruptedException e){}

b.setBounds(300+5*j,400-20*j,40,30);

}

try{sleep(1000);

}catch(InterruptedException e){}

f.remove(b);

}

}

class Event1 implements ActionListener{

Button but[]=new Button[4];

Frame f;

Button head,but1;

Label t1,t2;

public Event1(){

f=new Frame("Event Example");

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e)

{System.exit(0);}});

initialize();

}

public void initialize(){

f.setSize(800,500);

f.setLayout(null);

but[0]=new Button("正常");

but[1]=new Button("数据丢失");

but[2]=new Button("确认丢失");

but[3]=new Button("延迟");

for(int i=0;i<4;i++){

but[i].setBounds(700,40+50*i,70,25);

but[i].addActionListener(this);

f.add(but[i]);

}

t1=new Label("发送方");

t1.setBounds(610,30,50,30);

t1.setForeground(Color.red);

f.add(t1);

t2=new Label("接受方");

t2.setBounds(610,400,50,30);

t2.setForeground(Color.red);

f.add(t2);

head=new Button();

head.setBounds(10,30,600,10);

head.setBackground(Color.blue);

f.add(head);

but1=new Button();

but1.setBounds(10,400,600,10);

but1.setBackground(Color.blue);

f.add(but1);

f.setVisible(true);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==but[0]){

Thread1 t1=new Thread1(20,f);

t1.start();

}

else if(e.getSource()==but[1]){

Thread1 t1=new Thread1(10,f);

Thread2 t2=new Thread2(10,f);

t1.start();

t2.start();

}

else if(e.getSource()==but[2]){

Thread1 t1=new Thread1(40,f);

Thread2 t2=new Thread2(40,f);

t1.start();

t2.start();

}

else if(e.getSource()==but[3]){

Thread1 t1=new Thread1(50,f);

Thread2 t2=new Thread2(50,f);

t1.start();

t2.start();

}

}

public static void main(String args[]){

new Event1();

}

}

运行结果:

(1)当选择“数据丢失”时,从发送方发出的数据在半途中丢失(如下图1),接受方没收到数据,不发送确认帧回去,发送方因为超时重发数据(如图2)。

图1

图2

(二)当选择“确认丢失”时,接受方接到发送方发来的数据并把确认帧发出去,但确认帧在途中丢失(如图3),发送方因为没有收到确认帧而超时重发。

发送方接到同一个数据再发一个确认帧回复,并把数据丢弃(如图4)。

图3

图4

(三)当选择“延迟”时,接受方接到数据并把确认帧发出,但数据或确认帧在途中延迟(如图5),使得发送方等待超时重发。当发送方接到超时的确认帧,与自己期待的确认帧不同则丢弃该帧;接受方接到发送方重发的数据,与之前的数据重复,也丢弃之。

图5

图6

椭圆曲线数字签名中阈下信道通信研究

椭圆曲线数字签名中阈下信道通信研究 摘要:针对阈下信道技术在椭圆曲线数字签名中的应用可能以及存在的安全隐患问题,通过对其中存在的窄带阈下信道进行实时性测试,在平衡传输信息容量与签名时间的条件下,确定了合理的阈下信息传输位数。实验结果表明,窄带阈下信道在椭圆曲线数字签名中可以被有效利用。 关键词:椭圆曲线密码体制;数字签名;窄带阈下信道;信息隐藏;Miracl大数库 中图分类号: TP309 文献标志码:A Covert communication based on subliminal channel in?? elliptic curve digital signature algorithm ZHANG Qiuyu, SUN Zhanhui College of Computer and Communication, Lanzhou University of Technology, Lanzhou Gansu 730050, China ) Abstract: There are narrowband and broadband subliminal

channels in the Elliptic Curve Digital Signature Algorithm (ECDSA),but broadband subliminal channel cannot be safely used. Therefore, the realtime test of narrowband subliminal channel was done. The reasonable bit rate of the sent message was confirmed when the capacity and realtime requests of narrowband subliminal channel were satisfied. The result shows narrowband subliminal channel can be effectively used in ECDSA. Key words: Elliptic Curve Cryptography (ECC); digital signature; narrowband subliminal channel; information hiding; Miracl large number library 0 引言 自Simmons[1]于1978年提出阈下信道概念以来,阈下信道已经发展成为一种典型的信息隐藏手段。研究表明,绝大多数数字签名方案中都可包含阈下信道的通信,其最大的特点是阈下信息包含于数字签名之中,但对数字签名和验证过程无任何影响。目前,关于阈下信道的研究主要分为两个方面:一是研究如何建立阈下信道;二是研究如何封闭阈下信道。虽然已经提出许多构造阈下信道[2-4]和封闭阈下信道[5-8] 的方案,但多存在于理论研究阶段,真正得到的应用很少。

第三章 信道与噪声

通信原理电子教案 第3章信道与噪声 学习目标: 信道的数学描述方法; 恒参信道/随参信道及其传输特性; 加性高斯白噪声; 信道容量的概念。 重点难点:调制信道模型;编码信道模型;恒参信道对信号传输的影响;加性高斯白噪声;Shannon信道容量公式。随参信道对信号传输的影响;起伏噪声;噪声等效带宽;连续信道的信道容量“三要素”。随参信道特性的改善。 课外作业: 3-5,3-11,3-16,3-19,3-20 本章共分4讲 《通信原理》第九讲 知识要点:信道等义、广义信道、狭义信道,调制信道和编码信道。 §3.1 信道定义与数学模型 1、信道定义 信道是指以传输媒质为基础的信号通道。信道即允许信号通过,又使信号受到限制和损害。 研究信道的目的:建立传播预测模型;为实现信道仿真器提供基础。 狭义信道仅指信号的传输媒质,这种信道称为狭义信道;广义信道不仅是传输媒质,而且包括通信系统中的一些转换装置,这种信道称为广义信道。狭义信道按照传输媒质的特性可分为有线信道和无

线信道两类。有线信道包括明线、对称电缆、同轴电缆及光纤等。 广义信道按照它包括的功能,可以分为调制信道、编码信道等。 图3-1 调制信道和编码信道 2、信道的数学模型 信道的数学模型用来表征实际物理信道的特性,它对通信系统的分析和设计是十分方便的。下面我们简要描述调制信道和编码信道这两种广义信道的数学模型。 1. 调制信道模型 图3-2 调制信道模型 二端口的调制信道模型其输出与输入的关系有 一般情况下,可表示为信道单位冲击响应与输入信号的卷积,即 或 其中,依赖于信道特性。对于信号来说,可看成是乘性干扰,而为加性干扰。 在实际使用的物理信道中,根据信道传输函数的时变特性的不同可以分为两大类: 一类是基本不随时间变化,即信道对信号的影响是固定的或变化极为缓慢的,这类信道称为恒定参量信道,简称恒参信道; 另一类信道是传输函数随时间随机快变化,这类信道称为随机参量信道,简称随参信道。 在常用物理信道中,的特性有三种典型形式。 是常数,或在信号频带范围之内是常数,即 在信号频带范围之内不是常数,但不随时间变化,即 。 在信号频带范围之内不是常数,且随时间变化,即 , 2. 编码信道模型

相关主题