代码网站怎么做的,学网络工程师培训学校,wordpress 去掉版权,荥阳建设网站以太网简介
以太网#xff08;Ethernet#xff09;是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准#xff0c;它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术#xff0c;取代了其他局域网标准如…以太网简介
以太网Ethernet是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术取代了其他局域网标准如令牌环、FDDI和ARCNET。
以太网的标准拓扑结构为总线型拓扑但目前的快速以太网100BASE-T、1000BASE-T标准为了减少冲突将能提高的网络速度和使用效率最大化使用交换机Switch hub来进行网络连接和组织。如此一来以太网的拓扑结构就成了星型但在逻辑上以太网仍然使用总线型拓扑和CSMA/CDCarrier Sense Multiple Access/Collision Detection即载波多重访问/碰撞侦测的总线技术。
以太网只是组成互联网的一个子集以太网是现在主流的局域网标准而互联网是指将大量的局域网连接起来进行资源的分享。另外互联网与以太网是两个不同的概念前者是范围概念后者是技术概念。互联网Internet、广域网WAN、局域网LAN可以算作一类它们都是按照区域和范围来分类的。而以太网Ethernet、ATM网和FDDI网可以算作一类它们是按照传输技术分类的。
下面是一个局域网的示意图 OSI七层模型
为了实现网络通信的标准化国际标准化组织International Organization for StandardizationISO将整个以太网通信结构制定了 OSI (Open System Interconnection)模型即开放式系统互联模型也就是著名的7层网络模型。其示意图如下 OSI7层模型只是个理想模型相当于开发商提供的参考设计它并不是强制规范一般的网络系统只涉及其中几层就可以完成通信。以最常见的TCP/IP协议为例它就只分为了4层或者5层。4层和5层的差异在于是否将最底层的两层合并了。 第一层与第二层
以太网在第 1 层上涉及信号、在介质中传输的比特流、将信号放到介质上的物理组件以及各种拓扑它在设备之间的通信中扮演主要角色。
数据链路子层极大地促进了技术兼容性和计算机通信。
1MAC 子层负责将要用于传送信息的物理组件并且准备通过介质传输的数据。 2逻辑链路控制 (LLC) 子层保持通信过程所用物理设备的相对独立性。 LLC 子层获取网络协议数据通常是IPv4 数据包并加入控制信息帮助将数据包传送到目的节点。第 2 层通过 LLC 与上层通信。
逻辑链路控制LLC
1.建立与上层的连接
2.将网络层数据包封装成帧
3.标识网络层协议
4.保持物理设备的相对独立性
MAC——获取到介质的数据
介质访问控制 (MAC) 是数据链路层以太网子层的下半层由硬件NIC实现以太网 MAC 子层主要有两项职责1数据封装2介质访问控制
数据封装帧定界、编址、错误检测
介质访问控制对于将帧放入介质中和从介质中取下帧实施控制、介质恢复 其它层
网络层网络层通过 IP 寻址来建立两个节点之间的连接为源端的运输层送来的组选择合适的路由和交换节点正确无误地按照地址传送给目的端的传输层就是我们常说的 IP 层。
传输层传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。主要协议 TCP、UDP。
应用层OSI 参考模型中最靠近用户的一层为计算机用户提供应用接口和各种网络服务。主要协议HTTPHTTPSFTPPOP3、SMTP、SNMP、DHCP、 DNS。
传输层用得最多的两个协议TCP和UDP。它们俩最大的区别就是TCP是通信双方是有链接的可靠的通信而UDP则是无连接的不可靠的通信。 TCP通信需要通过“3次握手4次挥手”来建立连接所以通信比较可靠但是因为多出来了这些多余的动作所以传输速度通常比UDP慢适合可靠性要求高的场合。UDP通信则不需要建立连接直接往对面发就完事了管你收到没收到收到你命好收不到也不关我的事反正就是一句话听天由命。因为这个特性UDP传输不可靠容易丢包误码率高但是对应的传输速度就比较快一点比较适合语音通话、视频通话这种应用场合偶尔丢几帧没关系只要别一直卡着就行。 网络层用得最多的是IP协议它解决的是如何从一个局域网传输到另一个局域网的问题实现这一功能主要依靠IP地址和路由交换机制。 MAC地址
MAC地址全称为 Media Access Control address即媒体访问控制地址由6个字节共48 位组成理论上每台主机网卡的MAC地址都是唯一的。
MAC 地址是由 IEEE电气和电子工程师协会的注册管理机构分配的。地址的前半部分前三组十六进制数字称为 OUI组织唯一标识符用于标识设备制造商。每个制造商都有一个或多个唯一的 OUI 代码。后半部分后三组十六进制数字则由制造商自行分配给其生产的每个设备确保每个设备的 MAC 地址在其生产的所有设备中是唯一的。 为了处理好MAC地址和交换机端口的对应关系在交换机内部还维护着一张MAC地址表它记录着每一个 MAC 地址的设备连接在其交换机的哪一个端口上。
在一个局域网中不同的设备通过交换机来进行信息的传递假设一个局域网网中有三台设备主机0想要与主机1进行通信那么就需要向交换机发送信息主机1的MAC地址交换机再向所有设备都发送信息MAC地址主机接收到之后与自己的MAC地址进行比较如果不相同则说明信息不是发送给自己的将信息丢弃如果相同则说明信息是发送给自己的接收信息。同时给交换机发送一个信号说明自己收到了信息那么交换机就知道了本次接收信息主机的MAC地址并将该地址记录到MAC地址表中。 IP地址
尽管MAC地址是唯一的但是它有个致命的问题就是一个局域网内的MAC地址很可能没规则。MAC地址就像人的姓名因为不同的网卡可能来自不同的设备商所以编码很难有什么相同的地方但是学号就是IP地址它是有地域性的一个局域网内不同主机分配的IP都有相同的前缀。
IP地址有两个版本IPv4和IPv6因为目前IPv4仍是主流所以本文就只讲IPv4了。IPv4一共有4个字节32位一共可以表示的地址数是2^32 4,294,967,296约43亿个。IP 地址IPv4 地址由32位正整数来表示IP 地址在计算机是以二进制的方式处理的。人类为了方便记忆采用了点分十进制的标记方式也就是将 32 位 IP 地址以每 8 位为组共分为4组每组以 . 隔开再将每组转换成十进制。 IP 地址分类成了 5 种类型分别是 A 类、B 类、C 类、D 类、E 类。 最大主机个数就是要看主机号的位数如 C 类地址的主机号占 8 位那么 C 类地址的最大主机个数2^8 - 2 254。
为什么要减 2 呢因为在 IP 地址中有两个 IP 是特殊的分别是主机号全为 1 和 全为 0 地址。主机号全为 1 指定某个网络下的所有主机用于广播主机号全为0指定某个网络。
这种IP 分类方式有两个大的缺点
同一网络下没有地址层次比如一个公司里用了 B 类地址但是可能需要根据生产环境、测试环境、开发环境来划分地址层次而这种 IP 分类是没有地址层次划分的功能所以这就缺少地址的灵活性。A、B、C类有个尴尬处境就是不能很好的与现实网络匹配。 C 类地址能包含的最大主机数量实在太少了只有 254 个一个大点儿的网吧都不够用。而 B 类地址能包含的最大主机数量又太多了6 万多台机器放在一个网络下面一般的企业基本达不到这个规模闲着的地址就是浪费。
这两个缺点都可以在CIDR无分类地址解决。CIDR无分类地址这种方式不再有分类地址的概念32 比特的 IP 地址被划分为两部分前面是网络号后面是主机号。表示形式 a.b.c.d/x其中 /x 表示前 x 位属于网络号 x 的范围是0~32这就使得 IP 地址更加具有灵活性。
比如 192.168.1.2/24这种地址表示形式就是 CIDR/24 表示前 24 位是网络号剩余的 8 位是主机号。
还有另一种划分网络号与主机号形式那就是子网掩码掩码的意思就是掩盖掉主机号剩余的就是网络号。将子网掩码和 IP 地址按位计算 AND就可得到网络号。子网掩码实际上就是前面一串1加后面1串0因为任何数和1相与都是其自身而任何数和0相与都是0所以子网掩码实际上就是那串1规定了IP地址的网络号长度比如子网掩码为255.255.255.0就是前面24个1加后面8个0这样和IP地址相与得到的实际就是前面24位的值后面8个0。
子网掩码最大的作用就是判断两个IP是否在同一个子网比如192.168.1.1/24和192.168.1.2/24它们的子网掩码都是255.255.255.0进行相与运算后值都是192.168.1.0所以这两个IP都是处于同一个子网即同一个局域网内。
回到上面的多台主机通信的案例不同的局域网的主机之间通信如果只靠MAC地址那么寻址是非常不方便的。
如何连接多个局域网呢此时每台主机除了MAC地址外还有一个IP地址
因为同一局域网的主机的MAC地址没有规律所以路由器不得不为所有的主机都建立一个MAC地址的对应关系随着主机的增多这个表将会变得巨大所需要的存储空间也非常大这无疑显得性价比和效率都极低。而使用了IP地址则同一局域网内的主机都有相同的网络号为此一个网络号可以对应多台主机那么路由器所需要的存储空间就小了很多。2个子网连接的示意图如下 当子网比较多的时候一个路由器明显是不够的因此不同的路由器之间也可以互相连接所以每个路由器的每个端口也应该有一个ip地址。 同样的因为不同的子网间主机无法直接通信不是同一个局域网的设备它们如果要通信只能通过各自对应的路由器端口来通信所以路由器的每个端口也需要一个MAC地址这样才能完成局域网的通信。
现在有个新问题就是主机怎么知道谁是路由器或者说路由器的IP是多少呢
其实说发给路由器不准确应该说 A 会把包发给默认网关。对 A 来说A 只能直接把包发给同处于一个子网下的某个 IP 上所以发给路由器还是发给某个电脑对 A 来说也不关心只要这个设备有个 IP 地址就行。所以默认网关就是 A 在自己电脑里配置的一个 IP 地址以便在发给不同子网的机器时发给这个 IP 地址。 不同子网主机的通信比如A发数据给CA发现和C不在一个子网后就会把数据发给路由器即默认网关那么路由器是怎么知道C在哪里的呢
前面说过交换机里边有个对应MAC地址和端口映射关系的表同样的道理也可以在路由器里边搞个路由表来存储不同的IP地址和端口之间的映射关系。但是要注意的是因为端口是有限的而连接的子网却可以有很多个所以有时候两个子网之间并不会有直接映射关系而是要通过多个路由表才能到达最后的子网。这就好比你要从县城去纽约可能首先需要去省城然后从省城去北京最后才从北京飞到纽约。
从一个路由器跳到下一个路由器称之为下一跳Hop只要路由算法算好了那就一定可以通过有限个路由器把数据传递出去那么每一个路由器只要记录下一跳地址就行了。就像你想从县城去纽约跑到火车站买票工作人员说不行你只能先去省城对县城的工作人员来说下一跳地址就是省城。去了省城的飞机场买票工作人员又说去不了只能去北京做飞机对省城的工作人员来说下一跳地址就是北京到了北京就终于能去纽约了这几段路程就是在不同路由器之间的下一跳。 以太网帧格式
在以太网链路上的数据包称作以太网帧。以太网帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议、ARP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。以太网帧格式如下图所示。 1.前导码和帧开始符是固定的为7个0x55紧跟着1个0xd5
2.目的MAC地址指明帧的接受者
3.源MAC地址指明帧的发送者
4.以太网类型指示帧的类型比如0x0800表示该帧是IP数据包0x0806表示该帧是ARP协议数据包
5.数据和填充就是所承载的数据包跟前面以太网类型对应。
6.帧校验序列是一个32位的循环校验码FCS。
ARP协议全称为Address Resolution Protocol即地址解析协议ARP协议属于以太网帧的一种前面以太网帧介绍中有说到我们如果从设备A发送以太网帧到设备B我们不可能每次都进行广播那么设备A如何知道设备B的物理地址呢ARP协议就是为了解决这个问题。
首先设备广播发送ARP请求等收到设备B的ARP应答以后就能知道设备B的MAC地址。ARP帧格式如下图所示 ARP字段就是前面以太网帧待填充的数据。硬件类型、上层协议类型、MAC地址长度、IP地址长度均固定不变。
假设设备A的IP地址为192.168.0.2MAC地址为0x00_0a_35_01_fe_c0我们知道目的IP地址为192.168.0.3不知道该IP地址对应的MAC地址如果设备A想要和IP地址为192.168.0.3的设备B进行通信如UDP或者IP通信就必须知道它的MAC地址。此时设备A就需要广播发送ARP请求接收方MAC地址填0xff_ff_ff_ff_ff_ff。这样IP地址为192.168.0.3的设备就会解析出这是一个ARP请求它询问自身的MAC地址此时它就会做出ARP应答将自身的MAC地址发送给对应IP地址的设备A。
注意发送ARP请求时操作码为0x0001应答时操作码为0x0002。
基于FPGA的以太网设计1----大白话解释什么是以太网_zynq 以太网描述符-CSDN博客
基础知识——以太网Ethernet -CSDN博客
FPGA学习之路深入剖析以太网原理_以太网数据帧格式fpga-CSDN博客