【linux--->数据链路层协议】

这篇具有很好参考价值的文章主要介绍了【linux--->数据链路层协议】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数据链路层协议概念

链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。
数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
网络中主机间通信的路由是有IP协议策划的,但是具体通信实施是由数据链路层实施的,主要负责相邻设备之间的通信.数据链路层是以帧为单位传输和处理数据,所以要把数据封装成帧.

数据链路层协议会根据不同的网络驱动程序和网络硬件设施而变化。不同类型的网络硬件设施,如以太网、无线局域网(WLAN)、广域网(WAN)等,具有不同的特性和限制。因此,为了在特定的网络环境中实现高效的数据传输,数据链路层协议需要根据网络驱动程序和硬件设施进行相应的调整和优化。例如,以太网是一种常见的有线局域网技术,其数据链路层协议包括以太网帧格式、MAC地址分配、帧传输机制等。而无线局域网(WLAN)则涉及到无线信道管理、帧碰撞避免机制、信号强度控制等。这些协议的设计和实现都要考虑到底层网络驱动程序和硬件设施的特性,以保证数据传输的可靠性、效率和安全性。

二、以太网帧格式

【linux--->数据链路层协议】,linux,网络,php

1.字段分析

地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的;帧协议类型字段有三种值,分别对应IP、ARP(地址解析协议)、RARP(逆地址解析协议);帧末尾是CRC校验码。其中ARP的作用是知道目标主机IP地址,用IP地址获取Mac地址,RARP作用是知道Mac地址,用Mac地址获取IP地址.

MAC地址用来识别数据链路层中相连的节点;长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址);IP地址描述的是路途总体的 起点 和 终点;MAC地址描述的是路途上的每一个区间的起点和终点

在极端情况下,如果数据帧的长度非常的长,数据帧传送过程中丢包,会造成这个数据帧重传,如果将这个很长的数据帧分割多个数据帧,发生丢包时丢包的数据就会减小.所以以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在PAD字段补充.

三、局域网通信原理

在局域网中一台主机发送消息,同网内的所有机器都会收到,目标主机通过Mac协议中的目的Mac地址确认报文是否是发给自己的,如果不是直接丢弃,如果是则向上解复用.

一个局域网中同一时间只允许一台主机在发消息,否则会造成数据碰撞,消息是本质是二进制码,二进制在传输媒介中以光波或者电波的形式传送,如果多个信号波同时在局域网中传送,势必会发生碰撞,造成信号波混乱,二进制码被打乱.所以局域网也成为碰撞域.

主机在局域网中发送消息,所有主机都会受到消息包括自己,在报文中有CRC报文检测字段,收到自己发出去的报文就检测报文有没有出错,如果出错了,说明当下有另一台主机也在发送消息,两台主机发生了碰撞,这叫做碰撞检测,主机会等待一个随机的时间段后,再向网络中发送消息,这个避免碰撞.如果局域网中有一台设备一直在想网络中发送数据,会影响其他设备的正常使用.

从数据碰撞的问题看,局域网就好像是线程间通信的临界资源,只不过没有锁的概念,而是换成了尝试找资源空隙的方法;令牌环网的局域网通信原理就是如同是给网络加了锁,主机A在发送消息给主机B,这时候只能主机A发送消息,当主机B收到消息时,就只能主机B发送消息.

局域网中主机的数量越少,发生碰撞的概率就会越低,所以网络中又引入了交换机设备,交换机可以划分碰撞域,连接在交换机一侧的主机之间发生碰撞,不会影响另一侧的主机.同侧的主机发送消息,不会扩散到另一侧的主机.

四、ARP协议

1.结构

【linux--->数据链路层协议】,linux,网络,php

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
硬件类型指链路层网络类型,1为以太网;
协议类型指要转换的地址类型,0x0800为IP地址;
硬件地址长度对于以太网地址为6字节;
协议地址长度对于和IP地址为4字节;
op字段为1表示ARP请求,op字段为2表示ARP应答。

2.作用

ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;

3.ARP通信过程

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;所以需要向网络中发送ARP请求报文获取目标主机mac地址,ARP协议请求报文填充如下:帧类型字段0806,硬件类型为1,协议字段是0800,硬件地址就是Mac地址长度为6字节,协议地址就是IP地址为4字节,op为1响应,发送端以太网地址为为自己的Mac地址,发送端IP为自己的IP地址,目的以太网地址是全F(全F为站位符),目的IP填充目的IP地址.

局域网中的主机都会接收到ARP请求报文,所有主机由数据链路层直接向ARP层协议提交报文,目标主机收到请求报文首先会对比op字段,如果op是1,就再对比目的IP地址字段,如果与自己的IP地址不相同报文就在ARP协议层丢弃.

如果与自己的IP地址相同就返回ARP响应报文,响应报文填充报文帧类型字段0806,硬件类型为1,协议字段是0800,硬件地址就是Mac地址长度为6字节,协议地址就是IP地址为4字节,op为2响应,发送端以太网地址为为自己的Mac地址,发送端IP为自己的IP地址,目的以太网地址就是接收报文的发送端以太网地址,目的IP填充接收到的报文的发送端IP地址.

局域网内通信,不用每次都发送ARP请求报文,操作系统会在主机中将建立好的IP地址和mac地址的映射关系缓存在主机中一段时间.

4.ARP协议相关命令

arp -a命令:查看查看主机内维护的IP与Mac映射关系
【linux--->数据链路层协议】,linux,网络,php
ping命令:测试网络连通情况,间接获取局域网内目标主机IP与Mac的映射关系
【linux--->数据链路层协议】,linux,网络,php

五、局域网内中间人原理

局域网中间人的原理,就是利用主机无脑接收ARP响应的漏洞,例如中间人主机C攻击目标是主机A,C主机向网络中发送包含源Mac地址为MacC,源IP地址为IPR的请求报文,目的是在主机A中建立路由器IP地址和MacC地址的映射关系;然后再发送含源Mac地址为MacC,源IP地址为IPA的请求报文,目的是在路由器中建立主机AIP地址和MacC地址的映射关系.使得路由器与主机A的通信信息都会被主机C截胡.但是主机C需要不断的向网络中发送这两个请求报文,因为主机为了保持最新的IP和Mac地址映射关系,IP地址和Mac地址的映射关系在主机中的缓存时间是有限的.
【linux--->数据链路层协议】,linux,网络,php
如果主机C截胡主机A到路由器的报文而不转发主机A的报文到路由器,就会造成主机A访问不了网络.

六、DNS系统(域名系统)

1.域名概念

从编程的角度看,网络中用IP地址和端口号确定一个进程,但是对于用户来说这样的方式是不友好的,所以从为用户考虑的角度出发,有了用主机名代替IP地址的网站访问方式,并在主机的hosts文件中缓存主机名和IP地址的映射关系.如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件.其他计算机也需要定期下载更新新版本的hosts文件才能正确上网;

cat /etc/hosts可以查看hosts文件信息
【linux--->数据链路层协议】,linux,网络,php

主机名也叫域名,域名是由子域名构成的,以百度域名为例,www.baidu.com com是顶级域名,baidu是二级域名,www是三级域名.顶级域名大致可以分成两类:一类是通用顶级域名(gTLD),比如.com、.net、.edu、.org、.xxx等等,共有 700 多个。另一类是国家顶级域名(ccTLD),代表不同的国家和地区,比如.cn(中国)、.io(英属印度洋领地)、.cc( 科科斯群岛)、.tv(图瓦卢)等,共有 300 多个。二级域名一般是指域名注册人选择使用的网上名称

2.DNS系统组成

随着计算机的增多使用hosts文件管理域名的方式已经不适应时代发展了,就有了DNS系统,但是也保留了hosts文件,

DNS系统是一种分布式地址信息数据库系统,采用客户机/服务器模式,服务器中包含整个数据库的某部分信息,并供客户查询。DNS允许局部控制整个数据库的某些部分,但数据库的每一部分都可通过全网查询得到。

由三部分构成:域名数据库、域名服务器和地址解析器。地址解析器负责解释域名给服务器和解释IP地址给客户端.域名服务器负责查询域名与IP映射关系信息,域名数据库负责存储域名与IP地址映射关系.

域名服务器分为根域名服务器,顶级域名服务器,权限域名服务器,本地域名服务器;
根据域名服务器维护着一张根域名列表,里面记载着顶级域名和对应的托管商,其实根域名列表的正式名称是 DNS 根区(DNS root zone),保存 DNS 根区文件的服务器,就叫做 DNS 根域名服务器(root name server)。根域名服务器保存所有的顶级域名服务器的地址

顶级域名服务器管理注册在该顶级域名下的所有二级域名,记录这些二级域名的 IP 地址。

权限域名服务器如果一个二级域名或者一个三/四级域名对应一个域名服务器,则域名服务器数量会很多,我们需要使用划分区的办法来解决这个问题。那么权限域名服务器就是负责管理一个“区”的域名服务器。

3.DNS协议

DNS(Domain Name System)是一种协议。它是互联网的核心基础设施之一,用于将域名转换为对应的IP地址。DNS协议定义了域名解析的规则和过程,包括域名的层次结构、域名服务器的交互方式等。通过DNS协议,我们可以使用便于记忆的域名来访问互联网上的资源,而不必直接使用IP地址。

3.浏览器输入域名后的通信过程

当用户在浏览器中输入一个域名,从用户输入到最终访问目的网站的整个过程可以分为以下步骤:

  1. 用户在浏览器中输入域名(例如www.example.com)。
  2. 浏览器首先会检查本地缓存中是否存在该域名对应的IP地址。如果存在且尚未过期,浏览器将直接使用缓存的IP地址。
  3. 如果本地缓存中不存在或已过期,浏览器将向本地DNS服务器发送域名解析请求。
    4.本地DNS服务器会查找自己的缓存,如果找到了对应的IP地址,它会将IP地址返回给浏览器,跳至第7 步。
  4. 如果本地DNS服务器的缓存中没有对应的IP地址,它会向根域名服务器发送请求。
  5. 根域名服务器会返回负责该顶级域名(如.com)的顶级域名服务器的地址给本地DNS服务器。递归服务器拿到地址以后,建立TCP连接;向IP地址,发送HTTP请求;服务器处理请求;返回响应结果;关闭TCP连接;

4.dig工具

安装 dig 工具可以查看域名解析过程:yum install bind-utils
【linux--->数据链路层协议】,linux,网络,php

  1. 开头位置是 dig 指令的版本号
  2. 第二部分是服务器返回的详情, 重要的是 status 参数, NOERROR 表示查询成功
  3. QUESTION SECTION 表示要查询的域名是什么
  4. ANSWER SECTION 表示查询结果是什么. 这个结果先将 www.baidu.com 查询成了 www.a.shifen.com, 再将
    www.a.shifen.com 查询成了两个 ip 地址.
  5. 最下面是一些结果统计, 包含查询时间和 DNS 服务器的地址等.

七、ICMP协议

1.ICMP协议作用

一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通; 但是IP协议并不提供可靠传输. 如果丢包了, IP协议并不能通知传输层是否丢包以及丢包的原因ICMP正是提供这种功能的协议; ICMP协议确认IP包是否成功到达目标地址.通知在发送过程中IP包被丢弃的原因.

ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6;,ICMP也是基于IP协议工作的. 但是它并不是传输层的功能, 因此把它归结为网络层协议;

2.协议格式

【linux--->数据链路层协议】,linux,网络,php
类型(Type):4位,标明ICMP报文的作用及格式。
代码(Code):4位,标明报文的类型。
校验和:8位,检验报文是否有误

报文各种类型与代码含义描述
【linux--->数据链路层协议】,linux,网络,php

3.ping命令

【linux--->数据链路层协议】,linux,网络,php
注意, 此处 ping 的是域名, 而不是url! 一个域名可以通过DNS解析成IP地址.
ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).ping命令会先发送一个 ICMP Echo Request给对端;
对端接收到之后, 会返回一个 ICMP Echo Reply;
ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息

4.traceroute命令

也是基于ICMP协议实现, 能够打印出可执行程序主机, 一直到目标主机之前经历多少路由器
【linux--->数据链路层协议】,linux,网络,php

八、代理服务器

代理服务器可以分为正向代理和反向代理。

  1. 正向代理(Forward Proxy):
    正向代理是位于客户端和目标服务器之间的代理服务器。当客户端需要访问目标服务器时,请求首先发送到正向代理服务器,然后由代理服务器转发请求给目标服务器,并将响应返回给客户端。客户端不直接与目标服务器通信,而是通过代理服务器进行通信。正向代理隐藏了客户端的真实身份和位置信息,可以用于访问被封锁的网站、提供缓存功能、加速访问等。游戏加速等就是因为使用了正向代理服务器.

  2. 反向代理(Reverse Proxy):
    反向代理是位于目标服务器和客户端之间的代理服务器。当客户端发送请求到目标服务器时,请求首先到达反向代理服务器,然后由代理服务器根据一定的策略将请求转发给目标服务器,并将目标服务器的响应返回给客户端。客户端不知道实际提供服务的是目标服务器,而是与反向代理进行通信。反向代理可以实现负载均衡、提供安全性、缓存静态内容、减轻目标服务器压力等。翻墙要通过反向代理服务器才能实现.

总结:
正向代理是客户端通过代理服务器访问目标服务器,隐藏了客户端的身份信息;
反向代理是客户端通过代理服务器访问目标服务器,隐藏了目标服务器的身份信息。文章来源地址https://www.toymoban.com/news/detail-625033.html


到了这里,关于【linux--->数据链路层协议】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络】数据链路层——MAC帧协议 | ARP协议

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 来到数据链路层后,完整的数据被叫做 数据帧 ,习惯上称之为MAC帧。 网络层的IP协议并不是将数据报直接发到了网络中,而是将数据报继续向下交付,给到了数据链路层。 如上图所示,

    2024年02月11日
    浏览(28)
  • 【linux--->数据链路层协议】

    链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。 网络中主机间通信的路由是有IP协议策划的,但是具体通信实施是由数据链路层实施的,主要负责相邻设备之间的

    2024年02月14日
    浏览(22)
  • 【数据链路层】网络基础 -- MAC帧协议与ARP协议

    用于两个设备(同一种数据链路节点)之间进行传递 在同一个局域网的主机,能不能直接通信?可以的,比如: 假如你正在上课,你的老师在课堂上问小明你昨天的作业怎么没做?这时候小明回答说他做了只不过交过去比较晚老师可能没看到。老师和小明交流的过程班级里面的

    2024年02月08日
    浏览(28)
  • 【计算机网络-数据链路层】介质访问控制协议(MAC协议)

    介质访问控制(MAC) :采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。 信道划分 MAC :将使用介质的每个设备与来自同一信道上的其他设备的 通信隔离开 ,将时域和频域资源合理地分配给网络上的设备。 特点 :按集中控制的方式解决发送信息的次序

    2023年04月16日
    浏览(37)
  • 【Linux】以太网协议——数据链路层

    IP拥有将数据跨网络从一台主机送到另一台主机的能力,但IP并不能保证每次都能够将数据可靠的送到对端主机,因此IP需要上层TCP为其提供可靠性保证,比如数据丢包后TCP可以让IP重新发送数据,最终在TCP提供的可靠性机制下IP就能够保证将数据可靠的发送到对端主机。 TCP除

    2024年02月12日
    浏览(44)
  • 【Linux】数据链路层:以太网协议

    约束不等于压迫,冷静和理性不等于冷淡和麻木。 1. (1)IP提供了将数据包跨网络发送的能力,这种能力实际上是通过子网划分+目的ip+查询节点的路由表来实现的,但实际上数据包要先能够在局域网内部进行转发到目的主机,只有有了这个能力之后,数据包才能跨过一个个

    2024年02月11日
    浏览(34)
  • 【网络原理】数据链路层 和 应用层 重点协议

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 以太网就是平时我们插网线的协议,平时插的网线也叫做 “以太网线” 以太网帧格式: 这里的 目的地址 源地址 是 mac 地址(物理地址)不是 IP 地址 6 个字节的 mac 地址要比 IP 地址多很多!42亿9千万 * 65535,mac 地址还可以做

    2024年02月07日
    浏览(37)
  • 【网络编程·数据链路层】MAC帧/以太网协议/ARP协议/RARP协议

     需要云服务器等云产品来学习Linux的同学可以移步/--腾讯云--/--阿里云--/--华为云--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。 目录 一、MAC帧 1、IP地址和MAC地址的区别 2、MAC帧协议 3、MTU对IP协议的影响 4、MTU对UDP协议的影响 5、MTU对TCP协议的影响 二、

    2024年02月07日
    浏览(38)
  • 网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

    网络层作用:在复杂的网络环境中确定一个合适的路径。 tcp/ip协议,tcp解决可靠性与效率,ip提供在网络中传输的能力。 传输层决定了单次向下交付数据包的大小。 IP(Internet Protocol)协议是一种网络层协议,用于在互联网上进行数据传输。它定义了数据如何在网络中进行分

    2024年02月15日
    浏览(32)
  • 网络层IP协议和数据链路层--理解NAT/NAPT路由技术

    传输层 为 应用层数据报文 提供 传输策略 ,而 网络层 则为 传输层数据报文 提供网络传输路径规划( 基于路由节点的路径规划 ), 数据链路层 则负责将 网络层报文 传送给 局域网内 的其他主机 由于 数据链路层 存在 最大传输单元 MTU (数据链路层报文的最大字节数),因此 IP 协议

    2024年04月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包