【Linux网络编程】数据链路层

前言:

数据链路层非常简单,对于程序员来说,这里只需要大致了解即可,本篇文章不做重点说明。

数据链路层介绍

数据链路层是OSI位于物理层之上和网络层之下,这一层的报文叫做帧。它的主要任务是确保数据从一个节点可靠地传输到相邻的节点(连接的网络设备),即专门解决网络传输中两台设备之间的通信。这里所说的节点指的是网络设备,而网络设备可以是计算机、交换机或路由器等。

这里重点说明下数据链路层和网络层。需注意,数据链路层只能处理网络中两台直接相连的节点之间的通信问题。它的作用范围仅限于直接相连的节点。对于跨越的网络通信(例如,从一台计算机传输数据到另一台不在同一局域网内的计算机或在同一网段下相隔离多台设备的两个节点),需要依赖网络层的服务来实现。网络层是专门处理数据在网络传输方面所遇到的问题。

MAC地址

MAC地址也称为物理地址,长度为48位(6个字节)一般用16进制数字加上冒号的形式来表示,例如: 08:00:27:03:fb:19。

MAC地址是网络设备的唯一标识符,它在网络设备的网卡中。MAC地址在网络中用于数据链路层,专门区分不同的网络设备。

MAC地址是全球唯一的、固定的。每个网络设备在出厂时都会被分配一个独一无二的MAC地址。它与IP地址不同,IP地址可能会变化,但MAC地址不会随着网络设备的移动而改变。

在网络通信中,当数据包从一个设备发送到另一个设备时,源设备和目标设备的MAC地址都会被包含在数据包中。这样,网络中的交换机和路由器就可以根据MAC地址来确定数据包的传输路径,确保数据包能够准确地到达目标设备。

MTU的认识

MTU(最大传输单元)是指网络通信中数据包在传输过程中的最大大小限制(以字节为单位)。MTU的大小决定了发送端一次能够发送报文的最大字节数,是数据链路层对数据帧长度的限制。在以太网中,MTU的默认值通常为1500字节,但在某些网络环境中,可能需要根据具体情况调整MTU值以获得更好的性能和稳定性。

数据在传输过程中,若是数据包的大小超过MTU,那么数据包会在发送端或中间设备(如路由器)被分片成较小的数据包以适应MTU的限制。这些分片的数据包会在接收端被重新组合成原始的数据包。

注意:数据包分片会增加网络的开销和延迟,因为每个分片都需要单独的传输和处理。此外,如果分片的数据包在传输过程中丢失或损坏,整个数据包都需要重新传输。

为什么要有MTU呢?要明白,数据在网络中的传输效率受网络性能的影响,MTU减少数据包的数量,可以降低网络通信的开销和延迟提高网络性能,这非常有利于大量数据和大型数据的传输。


总结:

网络部分这里重在放在传输层和应用层。其中,应用层是程序员为了满足自己的需求而设计的网络程序。传输层是负责将数据从一台主机发送到另一台主机。这两层都是程序员必不可少要接触的网络知识。至于其它网络层次结构,这里只需明白大致内容即可。

数据链路层的作用:负责两个设备(同一种数据链路节点)之间进行传递数据。

网络层的作用:在复杂的网络环境中确定一个合适的路径。

传输层的作用:负责数据能够从发送端传输到接收端。

相关推荐
fatiaozhang952721 小时前
中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
android·网络·电脑·电视盒子·刷机固件·机顶盒刷机
yongui478341 天前
CentOS系统如何查看当前内存容量
linux·运维·centos
jyhappy1231 天前
USB系统学习笔记 - 从概念到抓包解析
网络
xzq_java1 天前
CentOS操作系统虚拟机安装以及连接工具下载和远程连接工具远程连接
linux·运维·centos
青草地溪水旁1 天前
互联网接入网中PPPoE和PPP协议
网络·ppp·接入网
Sweety丶╮7941 天前
【Ansible】实施 Ansible Playbook知识点
服务器·云原生·ansible
ZLRRLZ1 天前
【Docker】Docker安装
运维·docker·容器
逐梦吧!旅行者1 天前
Linux之环境变量(内容由浅入深,层层递进)
linux·运维
挨踢攻城1 天前
Linux 应急响应实操 Checklist
linux·运维·linux命令·rhce·rhca·厦门微思网络·linux 应急响应
wanhengidc1 天前
什么是云手机?
运维·网络·安全·游戏·智能手机