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

news2024/11/25 22:55:13

数据链路层和局域网

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.coloradmin.cn/o/1557456.html

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

相关文章

学习日记(SSM整合流程_SpringMVC_part_two)

目录 大致流程如下 1、创建工程 2、SSM配置类结构 3、功能模块 代码部分 整体结构 Jdbc.Config MyBatisConfig ServletConfig SpringConfig SpringMvcConfig BookController BookDao Book BusinessException SystemException Cord Result BookService BookserviceImpl jd…

手写红黑树【数据结构】

手写红黑树【数据结构】 前言版权推荐手写红黑树一、理论知识红黑树的特征增加删除 二、手写代码初始-树结点初始-红黑树初始-遍历初始-判断红黑树是否有效查找增加-1.父为黑,直接插入增加-2. 父叔为红,颜色调换增加-3. 父红叔黑,颜色调换&am…

java Web洗衣店管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 洗衣店管理系统是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用…

优化选址问题 | 基于帝国企鹅算法求解工厂-中心-需求点三级选址问题含Matlab源码

目录 问题代码问题 "帝国企鹅算法"并不是一个广为人知的优化算法,可能是一个特定领域或者特定情境下提出的方法。不过,对于工厂-中心-需求点三级选址问题,它可能是一种启发式优化方法,用于在多个候选位置中选择最优的工厂、中心和需求点位置。 这类问题通常涉及…

IPv4地址

IP v4 由32位二进制构成、可以用点分十进制表示。 例如:192.168.1.1 11000000101010000000000100000001 由网络位和主机位组成。为了区分网络位和主机位,需要用子网掩码,子网掩码也是由32位二进制构成,连续的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;当前版…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

python实战之异常篇

一. try-except语句 二. 多个except代码块 三. 多重异常捕获 四. try-except语句嵌套 五. 使用finally代码块释放资源 六. 自定义异常类 七. 手动引发异常 使用关键字 raise 手动抛异常

Android RecyclerView canScrollVertically方向与返回值,Kotlin

Android RecyclerView canScrollVertically方向与返回值&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx…

Node | Node.js 版本升级

目录 Step1&#xff1a;下载 Step2&#xff1a;安装 Step3&#xff1a;换源 发现其他博客说的 n 模块不太行&#xff0c;所以老老实实地手动安装 Step1&#xff1a;下载 Node 中文官网&#xff1a;https://nodejs.cn/download 点击后&#xff0c;将会下载得到一个 .msi 文件…

Go-React做一个todolist(服务端)【一】项目初始化

后端仓库地址 地址 项目依赖 # gin go get -u github.com/gin-gonic/gin # viper日志 go get -u github.com/spf13/viper # 数据库和gorm go get -u gorm.io/driver/mysql go get -u gorm.io/gorm # uuid go get -u github.com/google/uuid # token go get -u github.com/go…

蓝桥杯2015年第十三届省赛真题-三羊献瑞

一、题目 观察下面的加法算式&#xff1a; 祥 瑞 生 辉 三 羊 献 瑞 ---------------------- 三 羊 生 瑞 气 (如果有对齐问题&#xff0c;可以参看【图1】) 其中&#xff0c;相同的汉字代表相同的数字&#xff0c;不同的汉字代表不同的数字。 请你填写“三羊献瑞”所…

C语言-编译和链接

目录 1.前言2.编译2.1预处理&#xff08;预编译&#xff09;2.1.1 #define 定义常量2.1.2 #define 定义宏2.1.3带有副作用的宏参数2.1.4宏替换规则2.1.5 #和##2.1.5.1 #运算符2.1.5.2 ## 运算符 2.1.6 命名约定2.1.7 #undef2.1.8 条件编译2.1.9 头文件的包含2.1.9.1 本地文件包…

电商系列之取消订单

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

每日面经分享(Spring Boot: part2 DAO层)

1. Spring Boot DAO层的作用 a. 封装数据访问逻辑&#xff1a;DAO层的主要责任是封装与数据访问相关的逻辑。负责处理与数据库的交互&#xff0c;包括数据的增删改查等操作。通过将数据访问逻辑统一封装在DAO层中&#xff0c;可以提高代码的可维护性和可重用性。 b. 解耦业务逻…

java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 疫苗预约管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

蓝桥集训之游戏

蓝桥集训之游戏 核心思想&#xff1a;博弈论 区间dp 设玩家1的最优解为A 玩家2的最优解为B 1的目标就是使A-B最大 2的目标就是使B-A最大 当玩家1取L左端点时 右边子区间结果就是玩家2的最优解B-A 即当前结果为w[L] – (B-A) 当玩家1取R右端点时 左边子区间结果就是玩家2的最…

<TensorFlow学习使用P1>——《TensorFlow教程》

一、TensorFlow概述 前言&#xff1a; 本文中一些TensorFlow综合案例的代码逻辑一般正常&#xff0c;在本地均可运行。如有代码复现运行失败&#xff0c;原因如下&#xff1a; &#xff08;1&#xff09;运行环境配置可能有误。 &#xff08;2&#xff09;由于一些数据集存储空…

算法学习——LeetCode力扣图论篇2

算法学习——LeetCode力扣图论篇2 1020. 飞地的数量 1020. 飞地的数量 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个大小为 m x n 的二进制矩阵 grid &#xff0c;其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相…

实施阶段(2024年3月)

本次探究的项目化学习主题为&#xff1a;校内订餐系统的分析与设计 【主题情境说明】 社会大背景&#xff1a;国家颁发《“健康中国2030”规划纲要》&#xff0c;尤其关注青少年儿童膳食质量&#xff0c;明确提出要加强孩子食育教育&#xff0c;家庭、学校和社会需要共建健康…