【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减少数据包的数量,可以降低网络通信的开销和延迟提高网络性能,这非常有利于大量数据和大型数据的传输。


总结:

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

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

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

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

相关推荐
Brilliantwxx2 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做2 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
richdata3 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667963 小时前
【无标题】
运维·服务器·网络
予昊4 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
一池秋_4 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
上海云盾-小余6 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠6 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件6 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
芯盾时代6 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全