当前位置: 首页 > news >正文

计算机网络笔记(三)—— 数据链路层

数据链路层概述

数据链路层以帧为单位传输数据。

封装成帧:给网络层提供的协议数据单元添加帧头帧尾

差错检测:检错码封装在帧尾

可靠传输:尽管误码不能避免,但如果可以实现发送什么就接受什么,就叫可靠传输

封装成帧

帧头帧尾具有重要控制信息

帧头和帧尾的作用之一为帧定界

透明传输:数据链路层对上层交付的传输数据没有任何限制

帧的数据部分应该尽量大,但也有上限。

差错检测

比特差错:0->1 ,0->1

差错检测码(FCS)来检测是否数据出现差错

 检错方法:

奇偶校验:添加奇偶校验位,使整个数据的1为奇数或者偶数。需要奇性改变才可检错。

循环冗余校验(CRC):生成多项式(必须包含最低次项)来进行计算校验,漏检率低。

 检错码只能检错不能纠错。

可靠传输

不可靠传输服务:丢弃有误码的帧即可

可靠传输服务:想办法实现重发帧,直到能正确接收

可开传输的实现机制

停止- 等待协议(SW)

收到确认分组后,才能将数据从缓存删除。但如果会出现接收方的确认否认丢失,会造成分组重复,所以需要给分组带上序号,用来标识与上个发送数组是否相同。

 SW协议信道利用率:发送端延时/(发送端发送延时+往返时间+接收端发送延时);信道利用率较低,(接收端发送延时一般可忽略)。

回退N帧协议(GBN)

采用流水线传输,提高信道利用率。

 如果分组出错,接收方会再传输上一个接受分组的ACK,发送方重发。

如果发送窗口尺寸超过上限会导致接收方无法分辨新旧数据分组。

选择重传协议(SR)—— 对于GBN的改进

 增大接收窗口的尺寸,这样需要进行逐一确认。

 

 

http://www.lryc.cn/news/9278.html

相关文章:

  • 【日常】矩阵正态分布参数检验问题
  • QML矩形(Rectangle)
  • CSS自定义鼠标样式
  • 春招Leetcode刷题日记-D4-双指针算法-滑动窗口快慢指针
  • 【go】结合一个go开源项目分析谷歌浏览器cookie为什么不安全 附go项目导包失败怎么解决教程
  • Windows瘦身方法
  • 19. 删除链表的倒数第 N 个结点
  • 【Linux】网络编程 - 基础概念
  • Unity 多语言 轻量高效的多语言工具集 LanguageManager
  • 在Linux和Windows上安装zookeeper-3.5.9
  • 【ESP32+freeRTOS学习笔记-(八)资源管理】
  • P1427 小鱼的数字游戏(赋值运算符和String)
  • Java学的好,工作不愁找
  • 表情包可视化编辑、生成配置信息数据工具
  • java简单循环结构
  • 【Servlet+Jsp+Mybatis+Maven】WEB图书馆管理系统
  • 【WPF】WindowChrome 自定义窗口完美实现
  • Python客户端使用SASL_SSL连接Kafka需要将jks密钥转换为pem密钥,需要转化成p12格式再转换pem才能适配confluent_kafka包
  • JDK8 ConcurrentHashMap源码分析
  • 前置知识-初值问题、欧拉法、改进欧拉法
  • 睡眠影响寿命,这几个睡眠习惯赶紧改掉!
  • Linux逻辑卷管理器(PV、VG、LV、PE)
  • Centos7 内核升级
  • SpringBoot 启动配置文件加载和参数配置修改问题
  • 布隆过滤器和布谷鸟过滤器详解
  • WebGIS前端框架(openlayers,mapbox,leaflet)图形图像底层渲染原理分析
  • AcWing语法基础课笔记 第五章 C++中的字符串
  • 抓包工具Charles(一)-下载安装与设置
  • SpringBoot09:Swagger
  • Git 常用命令