计算机网络基础04

来源:互联网 发布:html链接js不管用 编辑:程序博客网 时间:2024/05/22 20:23
数据链路层


对网络层交下来的数据加上一定的校验组织成一个帧,一个帧就是一个二进制比特串。
相连:两台计算机有一条物理的媒体,硬件设备相连。
物理链路:两个节点之间有真正的物理媒体,然后这边有个物理层,那边也有个物理层,实现比特流的传输。
数据链路:有正确性、可靠性保证的链路,通过配置双方数据链路协议。
数据链路层为网络层提供服务通过有无确认、有无连接来区分。连接是指跟对方进行数据链路层通信之前,和对方有没有打过招呼,也就是对方的数据链路层协议是否已经启用了。确认是我发送一个信息,对方有没有应答,对方收到没有。
     1.无确认无连接:在发送据之前不打招呼,所谓打招呼是指我这边数据链路启动了,你那边的数据链路启动了,也就是我们两台计算机有了数据通路,这就是连接建立的含义。无确认我收到数据帧以后不需要给你确认。应用环境是传输距离短,线路可靠的情况下。很多局域网都是无确认无连接的服务。
     2.有确认无连接:在发送数据之前,没有必要打招呼,但是对方收到信息的时候,要告诉我是收到还是没有。用在传输延迟比较大的情况,例如:卫星通讯。
     3.有确认有连接:每个发出去的帧都要给我应答,传输数据之前有个连接建立,传输数据之后有个连接释放。
数据链路层主要功能是提供两点之间可靠传递,如何实现呢?
  • 把一串比特组合一个帧,在帧里面涉及计算方法,对帧进行计算,计算结果随帧一起发送,到了接收端,进行同样的计算,如何计算的结果和传过来的计算结果不一样认为出错了,这一过程称为校验。那么出错了就重发,有时传输过程是正确的,但是到了接收方来不及接收,那么只能扔掉,这种情况采用协调发送方和接收方的速率来实现,这就被称为流量控制。
问题一:如何组织数据帧
  1. 字符计数法:在发送帧的时候,把帧长度信息放在前面。问题是如果传递过程中差错出在第一个字节,无可救药。不适用。
  • 带字符填充的首尾界符法:面向字符的传递方式,里面内容是ASCII,一般丢失一个帧头或帧尾的时候,下一次只要再找到一个帧头的标志,那就是第二帧找到了,在这种情况下,丢失的是这个帧,对后面的帧没有影响。字符填充:帧的内容都是ASCII可显示字符,采用ASCII字符里面很少出现的字符作为帧头和帧尾的标志,帧里面的内容和帧头和帧尾一样,解决这个问题的话采用字符插入法。字符插入法是对特殊字符前面再加上一个特殊字符。
  • 带位填充的首尾界符法:例如在帧头和帧尾有6个连续的1,那么假设在传递数据中不允许6个1连续出现,同样在接收端接收5个1时就检查第6个,第6个是0,就肯定是我插入的,如果接收5个1第6个也是1那就是帧尾的标志。
  • 物理层编码违例法:帧头和帧尾用0101用不到的编码方式编码,比如在物理层用曼彻斯特编码,帧头和帧尾用连续的高电平或者低电平,就把这些信号作为帧的头部和尾部,就不会和真正的数据混淆。例如令牌环用的是差分曼彻斯特编码方式,把连续的高电平或连续的低电平作为帧头、帧尾的标记。
问题二:可靠传输
  • 差错控制:帧的校验方法。帧出错了怎么办——重发机制。帧重复——帧有编号。纠错用海明码,校验用校验和(定义校验和长度,计算校验和,把帧的信号以校验和来分,分好以后把每一段当做二进制的数据,一段一段全部加起来),校验和检错的强度很低,块校验和,循环冗余校验码
  • 流量控制:发送方和接收方的速率不一样。
原创粉丝点击