问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

计算机网络基础知识:数据链路层、以太网帧格式、MTU、ARP协议、NAT技术详解

创作时间:
作者:
@小白创作中心

计算机网络基础知识:数据链路层、以太网帧格式、MTU、ARP协议、NAT技术详解

引用
CSDN
1.
https://m.blog.csdn.net/weixin_69380220/article/details/145888021

计算机网络是现代信息技术的重要组成部分,其中数据链路层、以太网帧格式、MTU、ARP协议、NAT技术等概念是理解网络通信的基础。本文将详细介绍这些重要概念,帮助读者建立对计算机网络的全面认识。

数据链路层

在计算机网络中,数据链路层(Data Link Layer)位于物理层之上,主要负责解决相邻主机间的通信问题。数据链路层使用MAC地址来识别相连的节点,MAC地址是一个48位(6字节)的地址,通常用十六进制数字和冒号表示(例如:08:00:27:03:fb:19)。MAC地址在网卡出厂时就确定了,通常情况下不能修改。

在局域网通信中,数据链路层的作用是确保数据能够正确地从一个节点传输到另一个节点。MAC地址描述的是路途上的每一个区间的起点和终点,而IP地址则描述的是整个通信路径的起点和终点。

以太网帧格式

以太网(Ethernet)是一种广泛使用的局域网技术标准,它不仅包含了数据链路层的内容,还涉及了一些物理层的内容。以太网帧格式包括源地址、目的地址、帧协议类型字段等。其中,源地址和目的地址是指网卡的MAC地址,长度为6字节。帧协议类型字段可以是IP、ARP或RARP(将MAC地址转换为IP地址)。

以太网帧中的数据长度有最小和最大限制:最小46字节,最大1500字节。如果数据包的长度小于46字节,需要在后面添加填充位。最大值1500被称为以太网的最大传输单元(MTU)。

MTU

MTU(Maximum Transmission Unit)类似于快递包裹尺寸的限制,这个限制是由不同的数据链路对应的物理层产生的。以太网帧中的数据长度规定最小46字节,最大1500字节。如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片(fragmentation)。

在TCP协议中,单个数据报的最大消息长度称为MSS(Max Segment Size)。TCP在建立连接的过程中,通信双方会进行MSS协商。理想情况下,MSS的值应该是在IP不被分片处理的最大长度(即1460字节,1500 MTU - 20 IP报头 - 20传输层报头)。双方在握手发送SYN时会在TCP头部写入自己能支持的MSS值,然后选择较小的作为最终MSS。

局域网通信原理

在局域网中,一台主机向局域网发送信息时,该局域网中的所有主机都可以收到该信息。为了避免数据碰撞问题,需要保证任何时刻只有一台主机在使用局域网。如果发生了碰撞,碰撞双方需要休眠一段时间后再重发。交换机的作用就是划分碰撞域。

数据链路层规定,单次发送数据帧的长度不能超过MTU的长度。数据帧不能太长,否则主机发送单条数据的发送周期会长,容易发生碰撞;数据帧也不能太短,否则发送次数会太多。

ARP协议

ARP(Address Resolution Protocol)协议介于数据链路层和网络层之间,用于建立主机IP地址和MAC地址的映射关系。在数据包传输过程中,源主机的应用程序知道目的主机的IP地址和端口号,但不知道目的主机的硬件地址。因此,在通信前必须获得目的主机的硬件地址。

ARP的工作原理是先广播再单发。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段。目的主机接收到广播的ARP请求后,发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。每台主机都维护一个ARP缓存表,表项有过期时间(一般为20分钟)。

ARP数据报的格式包括硬件类型、协议类型、硬件地址长度、协议地址长度等字段。对于以太网,硬件类型为1,协议类型为0x0800(表示IP地址)。ARP协议的前6个字节基本是固定的,op字段为1表示ARP请求,op字段为2表示ARP应答。

NAT技术

NAT(Network Address Translation)技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。NAT技术能够将私有IP对外通信时转为全局IP,实现私有IP和全局IP的相互转化。

在NAT路由器内部,有一张自动生成的用于地址转换的表。如果局域网内有多个主机都访问同一个外网服务器,仅进行IP地址的替换会导致服务器返回的数据目的IP都相同。这时候NAPT(Network Address Port Translation)来解决这个问题,使用IP+port进行映射。

代理服务器

正向代理

正向代理(Forward Proxy)位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

反向代理

反向代理服务器作为Web服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

NAT与代理服务器的区别

  • 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换;代理服务器往往工作在应用层。
  • 从使用范围上讲,NAT一般在局域网的出口部署;代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
  • 从部署位置上看,NAT一般集成在防火墙、路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

网络总结

一次网络转发的完整过程包括:

  1. 从应用层,把数据做序列化,转换成字符串,然后把他从应用层拷贝到TCP的发送缓冲区
  2. TCP结合滑动窗口、流量控制、超时重传等策略,把数据包可能拆分成若干数据段,添加TCP报头,向下交付给IP
  3. 添加IP报头,封装成MAC帧,然后进行路由
  4. 路由的过程涉及:局域网通信,路由表查找,ARP的过程
  5. 到达目标主机,在自底向上,根据每一层协议的分包、分用,把报头向上交付,直到对方的接收缓冲区
  6. 应用层再采用read或recv将数据从缓冲区拷贝到应用层,然后解决粘包问题,进行反序列化,得到结构化数据
  7. 处理,将处理后的字符串,将上述过程再做一遍,即可完成一次完整的通信过程。

数据链路层的作用是两个设备(同一种数据链路节点)之间进行传递数据。以太网是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容。数据链路层需要理解MAC地址和ARP协议,以及MTU的概念。

网络层的作用是在复杂的网络环境中确定一个合适的路径。需要理解IP地址,理解IP地址和MAC地址的区别,理解IP协议格式,了解网段划分方法,理解如何解决IP数目不足的问题,掌握网段划分的两种方案,理解私有IP和公网IP,理解网络层的IP地址路由过程,理解一个数据包如何跨越网段到达最终目的地,理解IP数据包分包的原因,了解ICMP协议,了解NAT设备的工作原理。

传输层的作用是负责数据能够从发送端传输到接收端。需要理解端口号的概念,认识UDP协议,了解UDP协议的特点,认识TCP协议,理解TCP协议的可靠性,理解TCP协议的状态转化,掌握TCP的连接管理、确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性,理解TCP面向字节流,理解粘包问题和解决方案,能够基于UDP实现可靠传输,理解MTU对UDP/TCP的影响。

应用层的作用是满足我们日常需求的网络程序,都是在应用层。需要能够根据自己的需求,设计应用层协议,了解HTTP协议,理解DNS的原理和工作流程。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号