计算机网络——31数据链路层和局域网引论和服务

数据链路层和局域网

WAN:网络形式采用点到点链路

  • 带宽大,距离远(延迟大)
    • 贷款延迟积大
  • 如果采用多点连接方式
    • 竞争方式:一旦冲突代价大
    • 令牌等协调方式:在其中协调节点的发送代价大

点到点链路的链路层服务实现非常简单,封装和解封装

LAN一般采用多点连接方式

  • 连接节点非常方便
  • 接到共享型介质上(或网络交换机),就可以连接所有其他节点

多点连接方式网络的链路层功能实现相当复杂

  • 多点接入:协调各节点对共享型介质的访问和使用
  • 竞争方式:冲突之后的协调
  • 令牌方式:令牌产生,占有和释放等

一些术语

  • nodes:主机和路由器是节点(网桥和交换机也是)
  • links:沿着通信路径,连接各个相邻节点通信信道的是链路
    • 有线链路
    • 无线链路
    • 局域网、共享性链路
  • frame:第二层协议数据单元帧,封装数据报

数据链路层负责从一个节点通过链路将(帧中的)数据报发送到物理相邻节点

链路层:上下文

数据报(分组)在不同的链路上以不同的链路协议传送:

  • 第一跳链路:以太网
  • 中间链路:帧中继链路
  • 最后一跳:802.11 (无线局域网通用的标准)

不同的链路协议提供不同 的服务(比如在链路层上提供( 或没有)可靠数据传送)

传输类比

  • 从Princeton到Lausanne
    • 轿车: Princeton to JFK
    • 飞机: JFK to Geneva
    • 火车: Geneva to Lausanne
  • 旅行者=数据报datagram
  • 交通段=通信链路 communication link
  • 交通模式=链路层协议 : 数据链路层和局域网 protocol
  • 票务代理=路由算法 routing algorithm

链路层服务

成帧,链路接入

  • 将数据报封装在帧中,加上帧头、尾部
  • 如果采用的是共享性介质,信道接入获得信道访问权
  • 在帧头部使用“MAC”(物理)地址来标示源和目的
    • 不同于IP地址

在相邻两个节点完成可靠数据传递

  • 第三章内容
  • 在低出错率的链路上(光纤和双绞线电缆)很少使用
  • 在无线链路经常使用:出错率高
    • Q:为什么在链路层和传输层都实现了可靠性
    • 一般化的链路服务,不是所有的链路层都提供这些服务,一个特定的链路层只是提供其中一部分的服务

在相邻节点间进行可靠的转发

  • 第一章内容
  • 在低差错链路上很少使用(光纤,一些双绞线)
    • 出错率低,没有必要每一个帧中做差错控制的工作,协议复杂
      • 发送端对每一帧进行差错控制编码,根据反馈做相应的动作
      • 接收端进行差错控制编码,反馈给发送端(ACK,NAK)
    • 在本层放弃可靠控制的工作,在网络层或者是传输层做可靠控制的工作,或者根本就不做可靠控制的工作
  • 在高差错链路上需要进行可靠的数据传送
    • 高差错链路:无线链路
    • Q:为什么要在采用无线链路的网络上,链路层做可靠数据传输工作;还要在传输层做端到端的可靠性工作?
    • 原因:出错率高,如果在链路层不做无差别控制工作,漏出去的错误比较高;到了上层如果需要可靠控制的数据传输代价会很大
      • 不做local recovery工作,总体代价大

流量控制

  • 使得相邻的发送和接收方节点的速度匹配

错误检测

  • 差错由信号衰减和噪声引起
  • 接收方检测出的错误:
    • 通知发送端进行重传或丢弃帧

差错纠正

  • 接收端检查和纠正bit错误,不通过重传来纠正错误

半双工和全双工

  • 半双工:链路可以双向传输,但一次只有一个方向

链路层在哪里实现

在每一个主机上

  • 也在每一个路由器上
  • 交换器的每个端口上

链路层功能在“适配器”上实现(aka network interface card NIC)或者在一个芯片组上

  • 以太网卡,802.11网卡;以太网芯片组
  • 实现链路层和相应的物理层功能

接到主机的系统总线上

硬件、软件和固件的综合体

在这里插入图片描述

适配器通信

在这里插入图片描述

发送方:

  • 在帧中封装数据报
  • 加上差错控制编码,实现RDT和流量控制功能

接收方

  • 检查有无差错,执行rdt和流量控制功能等
  • 解封装数据报,将之交给上层

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日面经分享(Spring Boot: part3 Service层)

SpringBoot Service层的作用 a. 封装业务逻辑:Service层负责封装应用程序的业务逻辑。Service层是控制器(Controller)和数据访问对象(DAO)之间的中间层,负责处理业务规则和业务流程。通过将业务逻辑封装在S…

设计模式(9):外观模式

一.迪米特法则(最少知识原则) 一个软件实体应当尽可能少的与其他实体发生相互作用。 二.外观模式 为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。它的核心是什么呢,就是为我们的子系统提供一个统一的入口,封装子…

newOJ-1093: 分香蕉

目录 题目链接: 思路: 坑一: 坑二: 坑三: 代码: 通过10%: 通过80%: 通过100%: 题目链接: P1093 - 分香蕉 - New Online Judge (ecustacm.cn) 思路&a…

RVM安装Ruby笔记(Mac)

环境 硬件:Macbook Pro 系统:macOS 14.1 安装公钥 通过gpg安装公钥失败,报错如下: 换了几个公钥地址(hkp://subkeys.pgp.net,hkp://keys.gnupg.net,hkp://pgp.mit.edu),…

使用Flink实现MySQL到Kafka的数据流转换

使用Flink实现MySQL到Kafka的数据流转换 本篇博客将介绍如何使用Flink将数据从MySQL数据库实时传输到Kafka,这是一个常见的用例,适用于需要实时数据connector的场景。 环境准备 在开始之前,确保你的环境中已经安装了以下软件:…

ML-Decoder: Scalable and Versatile Classification Head

1、引言 论文链接:https://openaccess.thecvf.com/content/WACV2023/papers/Ridnik_ML-Decoder_Scalable_and_Versatile_Classification_Head_WACV_2023_paper.pdf 因为 transformer 解码器分类头[1] 在少类别多标签分类数据集上表现得很好,但由于其查询…

PHP的定时任务框架的taskPHP3.0学习记录2(环境要求、配置Redis、crontab执行时间语法、命令操作以及Screen全屏窗口管理器)

环境要求 php版本> 5.5开启socket扩展开启pdo扩展开启shmop扩展 echo <pre>; echo --; $requiredVersion 5.6.0; $currentVersion phpversion(); if (version_compare($currentVersion, $requiredVersion, >)) {echo "1.PHP版本满足要求&#xff0c;当前版…

c语言:vs2022写一个一元二次方程(包含虚根)

求一元二次方程 的根&#xff0c;通过键盘输入a、b、c&#xff0c;根据△的值输出对应x1和x2的值(保留一位小数)(用if语句完成)。 //一元二次方程的实现 #include <stdio.h> #include <math.h> #include <stdlib.h> int main() {double a, b, c, delta, x1…

数据结构 - 算法效率|时间复杂度|空间复杂度

目录 1.算法效率 2.时间复杂度 2.1定义 2.2大O渐近表示法 2.3常见时间复杂度计算举例 3.空间复杂度 3.1定义 3.2常见空间复杂度计算举例 1.算法效率 算法的效率常用算法复杂度来衡量&#xff0c;算法复杂度描述了算法在输入数据规模变化时&#xff0c;其运行时间和空间…

opejdk11 java 启动流程 java main方法怎么被jvm执行

java启动过程 java main方法怎么被jvm执行 java main方法是怎么被jvm调用的 1、jvm main入口 2、执行JLI_Launch方法 3、执行JVMInit方法 4、执行ContinueInNewThread方法 5、执行CallJavaMainInNewThread方法 6、创建线程执行ThreadJavaMain方法 7、执行ThreadJavaMain方法…

Last-Modified:HTTP缓存控制机制解析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

docker配置github仓库ghcr国内镜像加速

文章目录 说明ghcr.io简介配置镜像命令地址命令行方式1panel面板方式方式一&#xff1a;配置镜像加速&#xff0c;命令行拉取方式二&#xff1a;配置镜像仓库&#xff0c;可视化拉取 说明 由于使用的容器需要从github下载镜像&#xff0c;服务器在国外下载速度很慢&#xff0c…

26. UE5 RPG同步面板属性(二)

在上一篇&#xff0c;我们解析了UI属性面板的实现步骤&#xff1a; 首先我们需要通过c去实现创建GameplayTag&#xff0c;这样可以在c和UE里同时获取到Tag创建一个DataAsset类&#xff0c;用于设置tag对应的属性和显示内容创建AttributeMenuWidgetController实现对应逻辑 并且…

理解游戏服务器架构-部署架构

目录 前言 我所理解的服务器架构 什么是否部署架构 部署架构的职责 进程业务职责 网络链接及通讯方式 与客户端的连接方式 服务器之间连接关系 数据落地以及一致性 数据库的选择 数据访问三级缓存 数据分片 读写分离 分布式数据处理 负载均衡 热更新 配置更新 …

html第二次作业

骨架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initi…

vscode初始化node项目

首先需要安装node环境&#xff0c;推荐直接使用nvm 安装node&#xff0c;方便切换node版本 1.npm init 初始化node项目 在命令行输入npm init指令 根据指令创建完成后会在当前目录下生成一个package.json文件&#xff0c;记住运行npm init执行的目录必须是一个空目录 2.创建…

金三银四面试题(八):JVM常见面试题(2)

今天我们继续探讨常见的JVM面试题。这些问题不比之前的问题庞大&#xff0c;多用于面试中​JVM部分的热身运动&#xff0c;开胃菜&#xff0c;但是大家已经要认真准备。 JRE、JDK、JVM 及JIT 之间有什么不同&#xff1f; JRE 代表Java 运行时&#xff08;Java run-time&#…

Kafka入门到实战-第四弹

Kafka入门到实战 Kafka集群搭建官网地址Kafka概述使用Kraft搭建Kafka集群更新计划 Kafka集群搭建 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件…

计算机视觉之三维重建(5)---双目立体视觉

文章目录 一、平行视图1.1 示意图1.2 平行视图的基础矩阵1.3 平行视图的极几何1.4 平行视图的三角测量 二、图像校正三、对应点问题3.1 相关匹配法3.2 归一化相关匹配法3.3 窗口问题3.4 相关法存在的问题3.5 约束问题 一、平行视图 1.1 示意图 如下图即是一个平行视图。特点&a…

2核2G服务器优惠价格轻量61元一年,CVM价格313元15个月

腾讯云2核2G服务器多少钱一年&#xff1f;轻量服务器61元一年&#xff0c;CVM 2核2G S5服务器313.2元15个月&#xff0c;轻量2核2G3M带宽、40系统盘&#xff0c;云服务器CVM S5实例是2核2G、50G系统盘。腾讯云2核2G服务器优惠活动 txybk.com/go/txy 链接打开如下图&#xff1a;…