【计算机网络笔记】数据链路层概述

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)------速率、带宽、延迟
计算机网络性能(2)------时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层------多路复用和多路分用
传输层------UDP简介
传输层------可靠数据传输原理之Rdt协议
传输层------可靠数据传输之流水线机制与滑动窗口协议
传输层------TCP特点与段结构
传输层------TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层------拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型------虚电路网络
网络层服务模型------数据报网络
Internet网络的网络层------IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
网络地址转换(NAT)
ICMP(互联网控制报文协议)
IPv6简介
路由算法之链路状态路由算法
路由算法之距离向量路由算法
路由算法之层次路由



概述

先来简单看一下数据链路层以及这一层经常使用到的术语。

图中红色部分标注的就是一段段链路,数据链路层主要就是针对这一段段的链路如何实现结点到结点的数据传输。概括起来就是:数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报

在数据链路层中,我们经常会用到这几个术语:

  • 结点(nodes):主机和路由器
  • 链路 :实际上包括物理链路和数据链路。这里介绍的链路是数据链路,就是在物理链路之上,如何实现一个个数据包(帧)的传输。同时和物理链路紧密相关
    • 有线链路(wired links)
    • 无线链路(wireless links)
    • 局域网(LANs)
  • (frame),:数据链路层所封装的数据包或者分组

数据链路层提供哪些服务

概括性地说,主要有这么几点:

  • 组帧 (framing):封装数据报构成数据帧,通常会增加首部和尾部。组帧的另外一个重要的任务是实现帧同步

  • 链路接入(link access):有时候也称链路访问。当网络中使用的链路是共享的时候就要解决信道接入问题。确定谁能使用、谁不能使用、怎样确定使用这个链路发送数据成功了等等。

    • 伴随链路接入,还有链路层的寻址问题。帧首部中的"MAC"地址,用于标识帧的源和目的
  • 相邻结点间可靠交付

    • 在低误码率的有线链路上很少需要解决这个问题(如光纤,某些双绞线等)
    • 对于误码率很高的比如无线链路,需要可靠交付
  • 流量控制(flow control) :协调(pacing)相邻的发送结点和接收结点

  • 差错检测(error detection):应对信号衰减和噪声等等因素引起的差错。不同的协议对于如何处理差错可能有所不同

  • 差错纠正(error correction):接收端直接纠正比特差错

  • 全双工和半双工通信控制

    • 全双工:链路两端结点同时双向传输
    • 半双工:链路两端结点交替双向传输

链路层的具体实现实际上就是网络接口卡来实现的,比如以太网网卡、802.11网卡 、以太网芯片组等等,同时实现了链路层和物理层的功能。

数据链路层的数据传输形式往往是下面这样的:

网卡将高层的数据报构造成数据帧,通过物理链路发送出去,接收端检测差错,实现可靠数据传 输和流量控制等,然后提取数据报,交付上层协议实体

相关推荐
scdifsn3 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
孤寂大仙v5 小时前
【计算机网络】非阻塞IO——select实现多路转接
linux·计算机网络
Amo Xiang6 小时前
计算机网络第2章(下):物理层传输介质与核心设备全面解析
计算机网络·传输介质·物理层·物理设备
jackson凌6 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.7 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
大写-凌祁8 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable2228 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
傍晚冰川9 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
Love__Tay10 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
半导体守望者10 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造