目录

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


总结:

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

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

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

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
JhonKI6 分钟前
【Linux】日志模块实现详解
linux·运维·服务器
学也不会1 小时前
Ubuntu-安装redis
linux·运维·ubuntu
共享家95272 小时前
Linux常用命令详解:从基础到进阶
linux·服务器·数据库
小徐Chao努力3 小时前
【centos】经常使用的脚本
linux·运维·centos
FlyingBuffer3 小时前
Data_Socket和UDP_Socket
网络·网络协议·udp
慈云数据3 小时前
从开发到上线:基于 Linux 云服务器的前后端分离项目部署实践(Vue + Node.js)
linux·服务器·vue.js
rainFFrain6 小时前
日志与策略模式
linux·运维·vscode·策略模式
sqmeeting7 小时前
Linux NUC小主机化身视频会议服务器: 技术优势与部署实战
linux·服务器·windows·音视频·实时音视频
xxc_my8 小时前
LVS高可用负载均衡
服务器·负载均衡·lvs·高可用
无情白8 小时前
k8s运维面试总结(持续更新)
运维·面试·kubernetes