浦口建设局网站,团员关系没转就作废吗,网站推销话术,河北省建设银行网站首页一、TCP/IP五层模型 物理层#xff08;Physical Layer#xff09;#xff1a;物理层是最底层#xff0c;负责传输比特流#xff08;bitstream#xff09;以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流#xff0c;例如通过电缆、光纤或无线传输等。…一、TCP/IP五层模型 物理层Physical Layer物理层是最底层负责传输比特流bitstream以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流例如通过电缆、光纤或无线传输等。 数据链路层Data Link Layer数据链路层位于物理层之上负责在直接相连的节点之间传输数据帧Frame。它将比特流组织成帧并提供数据的可靠传输、差错检测和纠正等功能。常见的协议包括以太网Ethernet和Wi-Fi。 网络层Network Layer网络层处理分组Packet的传输和路由负责将数据从源主机传输到目标主机。它定义了逻辑地址如IP地址和路由选择算法并通过Internet Protocol (IP) 进行数据的分组、定址和转发。 传输层Transport Layer传输层提供端到端的可靠数据传输服务负责将数据从发送方传输到接收方的端口。它通过传输协议如TCP和UDP提供了连接管理、流量控制、差错检测和纠正等功能。 应用层Application Layer应用层是最高层负责处理特定应用程序之间的通信。它包括各种应用协议如HTTP、FTP、SMTP和DNS等用于实现不同应用程序之间的数据交换和通信。
OSI七层网络模型 二、以太网
以太网是应用最普遍的局域网技术取代了其他局域网技术如令牌环、FDDI和ARCNET。
以太网在局域网各种技术中占统治地位的原因:
造价低廉(以太网网卡不到100块);是应用最广泛的局域网技术;比令牌环网、ATM网便宜,简单;满足网络速率要求:10Mb/s~10Gb/s.
以太网的两个标准
DIX Ethernet V2 是世界上第一个局域网产品以太网的规约。IEEE 802.3 是第一个 IEEE电气电子工程师学会 的以太网标准。 DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别因此可以将 802.3 局域网简称为“以太网”。 严格说来“以太网”应当是指符合 DIX Ethernet V2 标准的局域网 。
为了通信的简便以太网提供无连接,不可靠的服务
无连接发送和接收方之间无“握手过程”。对发送的数据帧不进行编号也不要求对方发回确认。差错帧直接丢弃,差错纠正由高层负责。 这样做的理由是局域网信道的质量很好信道质量产生差错的概率很小。
也就说
以太网只实现无差错接收,不实现可靠传输。以太网提供的服务是不可靠的交付即尽最大努力的交付。当目的站收到有差错的数据帧时就丢弃此帧其他什么也不做。差错的纠正由高层来决定。如果高层发现丢失了一些数据而进行重传但以太网并不知道这是一个重传的帧而是当作一个新的数据帧来发送。
三、MAC地址
MAC地址英语Media Access Control Address直译为媒体存取控制位址也称为局域网地址LAN AddressMAC位址以太网地址Ethernet Address或物理地址Physical Address它是一个用来确认网络设备位置的位址。
MAC地址是网络设备的唯一识别码用于在局域网中确定设备的身份该地址全球范围内具有唯一性。 MAC地址的长度为48位即6个字节。其中前3个字节是OUIOrganizationally Unique Identifier由IEEE分配给不同的厂家后3个字节由厂家自行分配。 MAC地址通常表示为12个16进制数每2个数之间用冒号隔开例如09:2F:20:3A:5C:8D。
令牌环和以太网等 LAN 技术使用 MAC 地址作为其物理地址但有些网络 (AppleTalk) 不使用 MAC 地址。
已经有了IP地址为什么还要有MAC地址呢
IP地址描述的是整个数据传送过程中的起点和终点。 MAC地址描述的是数据传送过程中每一跳(一个区间)的起点和终点。 具体在网络中IP地址就是目标主机MAC地址就是两个相连路由器只有一跳一跳经过多个路由器数据才能被送到目标主机。
单站地址组地址广播地址
IEEE 规定地址字段的第一字节的最低位为 I/G 位。I/G 表示 Individual / Group。
当 I/G 位 0 时地址字段表示一个单站地址。当 I/G 位 1 时表示组地址用来进行多播以前曾译为组播。此时IEEE 只分配地址字段前三个字节中的 23 位。
当 I/G 位分别为 0 和 1 时一个地址块可分别生成 223 个单个站地址和 223 个组地址。
所有 48 位都为 1 时为广播地址。只能作为目的地址使用。
全球管理与本地管理
IEEE 把地址字段第一字节的最低第 2 位规定为 G/L 位表示 Global / Local。 当 G/L 位 0 时是全球管理保证在全球没有相同的地址厂商向 IEEE 购买的 OUI 都属于全球管理。 当 G/L 位 1 时 是本地管理这时用户可任意分配网络上的地址。
四、以太网帧Frame
以太网协议工作在数据链路层它用作数据传输的格式叫做Frame, 以太网帧也叫MAC帧。
4.1 以太网帧类型
目前共有4种类型的以太网帧格式 Ethernet Ⅱ以太帧 即DIX 2.0是Xerox与DEC、Intel在1982年制定的以太网标准帧格式已成为事实上的以太网帧标准。 Novell Netware 802.3 Raw以太帧 Novell Netware 802.3 Raw帧是Novell在1983年公布的专用以太网标准帧格式其对IEEE 802.3的数据字段进行了专门分隔以便传输NetWare类型的数据。 IEEE 802.3 LLC以太帧 这是1985年由IEEE正式发布的802.3标准由Ethernet V2发展而来。主要是加入了LLC控制字段所以又叫802.3 LLC。 IEEE 802.3 SNAP以太帧 这是1985年IEEE为了保证在802.2 LLC上支持更多的上层协议同时更好地支持IP协议而发布的标准。 后来为解决Ethernet II与802.3的兼容问题推出了折中的SNAP格式。
总的来说Ethernet II原本只是几家公司合伙制定的标准802.3是IEEE发布的正式国际标准但由于历史原因Ethernet II成了事实上大家都遵循的标准。
最初流行的Ethernet Ⅱ帧第三个字段为帧类型也没有定义帧长度字段。后来随着IEEE 802.3帧的发布为了允许一些使用以太II版本的数据报和一些使用802.3封装的最初版本的数据包能够在同一个以太网段使用以太类型值必须大于等于1536(0x0600)。这个值比802.3数据包的最大长度1500byte (0x05DC)要更大。因此如果这个字段的值大于等于1536则这个帧是以太II帧而那个字段是类型字段。否则(小于1500而大于46字节)他是一个IEEE 802.3帧而那个字段是长度字段。15001536(不包含)的数值未定义。
4.2 Ethernet II以太帧
Ethernet Ⅱ帧也称为Ethernet V2帧是如今局域网里最常见的以太帧是以太网事实标准。 Ethernet II也是目前使用最为广泛的帧格式也在事实上成为以太网的帧标准。 源地址6个字节。发出数据包设备的物理地址(MAC地址)长度是48位是在网卡出厂时固化的不可以修改。目的地址6个字节。接收数据包设备的物理地址。帧协议类型2个字节。该字段有三种值也就是向上交付时要交付的协议类型 0x0800 对应IP0x0806 对应ARPox0835 对应RARP 有效载荷。有效载荷的大小是46~1500字节。CRC校验码4个字节。处于帧末尾用来校验数据是否正确和校验和是一样的作用。
4.3 IEEE802.3帧
可以认为Novell Netware 802.3 Raw以太帧、IEEE 802.3 LLC以太帧 、IEEE 802.3 SNAP以太帧都遵循以下的一个框架结构。 Length字段。 定义了Data字段包含的字节数; 逻辑链路控制LLC(Logical Link Control) 由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成; SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet_Ⅱ中的Type字段相同
LLC和SNAP共占用了Data字段的8个字节; 当DSAP和SSAP都取特定值0xff时802.3帧就变成Netware-Ethernet帧用于承载Netware类型的帧 当DSAP和SSAP都取特定值0xaa时802.3帧就变成Ethernet_SNAP帧用于传输多种协议 DSAP和SSAP其他的取值均为纯IEEE802.3帧。
4.3.1 802.3 Raw以太帧 -----------------------------------------------------------------------| DMAC | SMAC | Length | 0xFFFF | Data | FCS || 6 Bytes | 6 Bytes | 2 Bytes | 2 Bytes | Variable length | 4 Bytes |-----------------------------------------------------------------------字段长度含义DMAC6字节以太网帧的目的MAC地址指明帧的接收者。SMAC6字节以太网帧的源MAC地址指明帧的发送者。Length2字节指后续数据的字节长度但不包括FCS字段。Data44~1498字节数据字段标识帧的负载可能包含填充位。数据字段的最小长度必须为44字节以保证帧长至少为64字节这意味着传输1字节信息也必须使用44字节的数据字段。如果填入该字段的信息少于44字节该字段的其余部分也必须进行填充。数据字段的最大长度为1498字节。以太帧的长度必须为整数字节因此帧的负载长度不足整数字节需插入填充字段以保证数据帧的长度为整数字节。FCS4字节帧校验序列FCSFrame Check Sequence是为接收网卡提供判断是否传输错误的一种方法如果发现错误丢弃此帧。FCS只是通用叫法具体的FCS还可以细分多种校验方法。在以太帧中FCS通常采用循环冗余码校验CRCCyclical Redundancy Check。
802.3 RAW使用Length字段代替了type又从Data里挪了2个字节赋值成0xFFFF。前面说过802.3 RAW是Novel公司在IEEE还未正式推出802.3时在其临时版本上自己推出的一个版本。在802.3临时版中使用Length字段代替了type字段Novel公司沿用了这个设定但后续802.3正式发布时又从Data中挪了3个字节用作DSAP、SSAP、Control字段各一个字节下面会讲到。为了与正式版的802.3做兼容和区分RAW就把DSAP和SSAP这两个字段赋值成0xFFFF同时Control字段还是划回到Data里去。
4.3.2 IEEE 802.3 LLC以太帧
-------------------------------------------------------------------------------------------
| DMAC | SMAC | Length | DSAP | SSAP | Ctrl | Data | FCS |
| 6 Bytes | 6 Bytes | 2 Bytes | 1 Bytes | 1 Bytes | 1 Bytes | Variable length | 4 Bytes |
-------------------------------------------------------------------------------------------字段长度含义DMAC6字节目的MAC地址该字段标识帧的接收者。SMAC6字节源MAC地址该字段标识帧的发送者。Length2字节指后续数据的字节长度但不包括FCS字段。DSAP1字节目的服务访问点长度为1字节取值范围是0x00~0xFF。SSAP1字节源服务访问点长度为1字节取值范围是0x00~0xFF。Ctrl1字节该字段值通常设为0x03表示无连接服务的IEEE 802.2无编号数据格式。Data431497字节数据字段标识帧的负载可能包含填充位。FCS4字节帧校验序列FCSFrame Check Sequence是为接收网卡提供判断是否传输错误的一种方法如果发现错误丢弃此帧。FCS只是通用叫法具体的FCS还可以细分多种校验方法。在以太帧中FCS通常采用循环冗余码校验CRCCyclical Redundancy Check。
4.3.3 IEEE 802.3 SNAP以太帧
-------------------------------------------------------------------------------------------------------------
| DMAC | SMAC | Length | DSAP | SSAP | Ctrl | OUI | Type | Data | FCS |
| 6 Bytes | 6 Bytes | 2 Bytes | 1 Bytes | 1 Bytes | 1 Bytes | 3 Bytes | 2 Bytes | Variable length | 4 Bytes |
-------------------------------------------------------------------------------------------------------------字段长度含义DMAC6字节目的MAC地址该字段标识帧的接收者。SMAC6字节源MAC地址该字段标识帧的发送者。Length2字节指后续数据的字节长度但不包括FCS字段。DSAP1字节目的服务访问点该值固定为0xAA。SSAP1字节源服务访问点该值固定为0xAA。Ctrl1字节该字段值通常设为0x03表示无连接服务的IEEE 802.2无编号数据格式。SNAP-ID5字节由OUI和Type两部分组成。OUI3字节3字节的组织唯一标识符Organizationally Unique Identifier其值通常等于MAC地址的前3字节即网络适配器厂商代码。Type2字节标识以太网帧所携带的上层数据类型。根据RFC1042标准OUI使用一个特殊的数值0x00-00-00当这个字段为0x00-00-00时Type字段与Ethernet II封装中的Type具有相同的含义。Data381492字节数据字段标识帧的负载可能包含填充位。数据字段的最小长度必须为38字节以保证帧长至少为64字节这意味着传输1字节信息也必须使用38字节的数据字段。如果填入该字段的信息少于38字节该字段的其余部分也必须进行填充。数据字段的最大长度为1492字节。以太帧的长度必须为整数字节因此帧的负载长度不足整数字节需插入填充字段以保证数据帧的长度为整数字节。FCS4字节帧校验序列FCSFrame Check Sequence是为接收网卡提供判断是否传输错误的一种方法如果发现错误丢弃此帧。FCS只是通用叫法具体的FCS还可以细分多种校验方法。在以太帧中FCS通常采用循环冗余码校验CRCCyclical Redundancy Check。
SNAP是为了将802.3 LLC与Ethernet II进行兼容兼容方式是保留Length、DSAP、SSAP、Control这4个字段同时再从Data里挪5个字节用作SNAP字段。而SNAP字段又由2个部分组成前3个字节是org code其含义是组织代码其实就是MAC地址里前3个字节所以其实没啥用。后2个字节是type与Ethernet II的type字段一模一样。其实也是通过这个SNAP里的type字段与Ethernet II帧兼容。
为了与LLC帧进行区别DSAP、SSAP的值固定为0xAAControl的值固定为0x03。
4.4 IEEE 802.1Q标签
IEEE 802.1Q标准对以太帧格式进行了修改在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。802.1Q Tag也称为VLAN Tag带有VLAN Tag的以太帧称为VLAN帧。
所有四种以太帧类型都可包含一个IEEE 802.1Q选项来确定它属于哪个VLAN以及他的IEEE 802.1p优先级(QoS)。这个封装由IEEE 802.3ac定义并将帧大小从64字节扩充到1522字节(注不包含7个前导字节和1个字节的帧开始符以及12个帧间距字节)。 ----------------------------------------| TPID | PRI | CFI | VID || 2 Bytes | 3 Bits | 1 Bits | 12 Bits |----------------------------------------| || || || |
------------------------------------------------------------------------------
| DMAC | SMAC | 802.1Q Tag | Length/Type | Data | FCS |
| 6 Bytes | 6 Bytes | 4 Bytes | 2 Bytes | Variable length | 4 Bytes |
------------------------------------------------------------------------------4字节的VLAN TAG 包含以下参数
2个字节的标签协议标识0x81002个字节的标签控制信息 用户优先级3 位取值范围0~7值越大优先级越大。CFI规范格式标识符1位0代表帧VLAN正确1代表VLAN错误VID12位标识VALN ID也就是VLAN号
4.5 最小帧长
以太网帧最小帧长为64B——有效载荷46字节这是信号从争取信道到占领信道的最短时间。 凡是小于64B的帧都视为被冲突破坏的信号应当丢弃。如果要发送小于64B的帧需要MAC子层在数据字段后填充字段。
这个长度是由CSMA/CD载波侦听多路访问/碰撞检测算法以及最大传输距离的需求共同决定的。这样的设计可以避免在网络中发生不必要的冲突确保数据包能够在网络中正确传输。如果数据包太短例如小于64字节那么它可能在发送过程中被网络中的其他设备误解为冲突信号从而导致数据丢失或重传。因此最小帧长有助于区分由冲突引起的短帧和正常传输的有用帧从而保证数据传输的效率和可靠性。
规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位因此也称该时间为512位时。这个时间定义为以太网时隙或冲突时槽。512位64字节这就是以太网帧最小64字节的原因。
4.6 最大帧长
以太网的最大帧长度为1518字节不包括帧校验序列其中包括最大的数据帧长度为1500字节和额外的帧头和帧尾。最大帧长度的设置是为了避免单一主机占用信道时间过长。在不同的网络环境下能够适应不同的数据传输需求和网络负载。
MAC帧协议规定自己的有效载荷不能超过1500字节由MTU控制——最大传送单元可以修改这1500个字节限制包括了上层报头有效载荷。 路由器也是主机也有自己的最大MTU的限制如果某个路由器的MTU为500字节但是接收到了局域网内某个主机1500字节的报文这是路由器就会对这个报文再次进行分片组装
数据包的大小只有传输层能控制但有时仍会超过1500字节只能由IP协议进行分片与组装来解决发送端IP层进行分片每一个分片都会有IP报头对端IP层进行组装字节超限并不是主流情况。TCP和MAC帧并不关心IP对数据包进行了分片和组装这仅仅是IP层自己的行为。
4.7 协议类型
如上图0x0800表示要分用给IP协议0x0806表示要分用给ARP协议0x8035表示要交给RARP协议后两者协议在后面会详细介绍。
4.8 解包
从整个数据帧读取前14个字节然后再从最后读取4个字节剩下的就是有效载荷如此就完成了解包过程。
4.9 分用
根据帧协议类型交给对应的上层协议即可如0x0800就交给网络层的IP协议去处理有效载荷。
五、MTU
对于以太网来说既然会存在碰撞那么发生的数据帧是长了好还是短了好呢
太长和太短都不行太短会导致数据帧无法校验因为CRC校验是需要数据帧中有一定数量的有效载荷的所以MAC帧协议规定有效载荷的长度要大于等于46字节。如果最终交付到数据链路层的有效载荷太小小于46字节MAC帧协议会在后面补充到46字节。
如果太长的话数据在以太网中传输的时间就会变长从而增加了数据碰撞的概率也不合适所以MAC帧协议规定有效载荷的最大值是1500字节也被叫做以太网的最大传输单元(MTU)。
不同的网络类型有不同的MTU。 如果IP层的数据报大于MTU了则需要分片然后再交给数据链路层。
5.1 MTU对IP协议的影响
由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包
将较大的IP包分成多个小包, 并给每个小包打上标签;每个小包IP协议头的 16位标识(id) 都是相同的;每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0);到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;一旦这些小包中任意一个小包丢失, 接收端的重组就会失败但是IP层不会负责重新传输数据传输层若为TCP将超时重传UDP将表现为丢包。
5.2 MTU对UDP协议的影响
一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报。这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了。
5.3 MTU对TCP协议的影响
TCP的一个数据报也不能无限大, 还是受制于MTU。TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size);TCP在建立连接的过程中, 通信双方会进行MSS协商。最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)。双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。然后双方得知对方的MSS值之后, 选择较小的作为最终MSS。MSS的值就是在TCP首部的40字节变长选项中(kind2)。
六、ARP协议
https://www.ietf.org/rfc/rfc826.txt
6.1 ARP协议的作用
ARP协议是一个介于数据链路层和网络层之间的协议。 在局域网通信中必须得知道目标主机的MAC地址才能将数据封装成MAC帧。 源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的MAC地址需要使用ARP协议来查找IP和MAC地址的映射关系。
6.2 ARP老化
ARP缓存表中保存了IP地址和对应的MAC地址映射关系。但是网络中的设备是动态的可能会发生IP地址分配变化或设备更换的情况。为了保持ARP缓存表的准确性需要一种机制来处理过时的条目。这就是ARP老化机制。
ARP老化是指ARP缓存表中的条目在一定时间内没有被使用而被删除的过程。每个条目都有一个生存时间存活时间一般默认为20分钟左右。如果在该时间内没有再次与该IP地址通信那么该条目将被删除。当然如果在生存时间内继续与该IP地址通信那么该条目的生存时间会被重置以保持其有效性。
在Linux中ARP老化是由内核的网络协议栈负责的。内核会定期检查ARP缓存表中的条目并清除过时的条目以确保ARP缓存表的及时更新。
6.3 ARP协议格式 ARP协议下层是MAC帧帧类型为0x0806。
ARP数据包字段
硬件类型2字节。指链路层网络类型, 1为以太网。协议类型2字节。指发送方要转换的地址类型0x0800为IP地址;硬件地址长度1字节。对于ARP请求或者应答来说该值为6物理地址长度。协议地址长度1字节。对于ARP请求或者应答来说该值为4IP地址长度。op操作类型2字节。1表示ARP请求,2表示ARP应答。发送端以太网地址6字节。和以太网源地址相同。发送端IP地址4字节。目的以太网地址6字节。发送ARP请求时该字段置0。目的IP地址4字节。
注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
6.4 ARP请求
6.4.1 ARP广播请求
当一个主机第一次想去获取同一网络中某个设备的MAC地址由于此时主机不知道设备的MAC地址所以只能广播ARP请求以便于这个ARP请求能被设备收到当第一个过程走完之后其实就是主机收到了设备的ARP应答双方都知道对方的IP–MAC映射也会在自己的ARP表中生成这个映射。
这是一条10.10.11.14发出的广播请求询问10.10.11.114的MAC地址。
硬件类型为1说明为以太网协议类型为0x0800, IPv4硬件地址长度为6协议长度为4操作类型为1表示ARP请求发送端MAC地址 和 MAC帧头部源MAC地址一样。发送端IP地址为本机地址目的以太网地址留空ARP请求置0目的IP地址就是要查询的IP地址。
MAC地址FF:FF:FF:FF:FF:FF, 代表这是一个广播MAC帧。
6.4.2 ARP单播请求
由于ARP老化机制第二种–单播轮询主机会定期向设备发送点到点的单播ARP请求报文用来确认对方是否存在确认这条ARP缓存是该更新主要是更新老化定时器还是删除同时使用单播还可以减少网络中的ARP报文数量因此。这种明知故问的单播ARP请求报文其实是非常合理的
这是10.10.11.114发出的一个ARP请求问询10.10.11.14的MAC地址以前已经知道才能填写在MAC帧的首部但是要过期了查询是否需要更新。
6.5 ARP应答 目的主机接收到ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;ARP收到应答的时候会以最新的应答为准。 当被请求主机发送ARP应答时其他主机在数据链路层就可以通过以太网目的地址字段区分这个MAC帧是不是给我的。
6.6 Gratuitous ARP免费 ARP
Gratuitous ARP 是一种特殊的 ARP 请求当主机启动时发送一个 Gratuitous ARP 请求即请求自己的 IP 地址和 MAC 地址即目标 IP 地址为 自己的 IP 地址。
Gratuitous ARP 的作用 - 以广播的形式发送自己的 IP 地址 和 MAC 地址在网络中宣告自己的信息可以是宣告新添加的主机或者更新自己的 MAC 地址 - 检测 IP 地址冲突若收到了 ARP 响应报文则说明网络中已存在使用该 IP 地址的主机。
七、RARP协议
Reverse Address Resolution Protocal逆地址解析协议。 https://www.ietf.org/rfc/rfc903.txt
7.1 RARP协议作用
允许局域网的物理机器使用MAC地址从网关服务器的ARP表或缓存上请求IP地址。 主要用于无盘工作站因为给无盘工作站配置IP地址不能保存。
在网络中配置一台RARP服务器里面保存着IP地址和MAC地址的映射关系当无盘工作站启动后就封装一个RARP数据包里面有其MAC地址然后广播到网络上去当服务器收到请求包后就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文因此RARP只能用于具有广播能力的网络。
7.2 RARP工作原理
发送端发送一个本地的RARP广播包在此广播包中声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址。本地网段上的RARP服务器收到此请求后检查其RARP列表查找该MAC地址对应的IP地址。如果存在RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用如果不存在RARP服务器对此不做任何响应。源端在收到从RARP服务器来的响应信息后利用得到的IP地址进行通信如果一直没有收到RARP服务器的响应信息则表示初始化失败。
7.3 RARP协议格式
RARP协议格式和ARP协议格式相同。使用区别是
RARP请求或应答帧代码类型是0x8035RARP的请求的操作代码是3应答操作代码是4。
可以看出这个包发送出来的时候是没有IP地址的——因为不知道就是要查询自己的IP。 然后是目的MAC是一个广播地址。
八、以太网帧Frame的传输过程
以太网采用广播机制所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址确定是否进行接收或放弃。如果证明数据确实是发给自己的工作站将会接收数据并传递给高层协议进行处理。
以太网采用CSMA/CD媒体访问机制任何工作站都可以在任何时间访问网络。在发送数据之前工作站首先需要侦听网络是否空闲如果网络上没有任何数据传送工作站就会把所要发送的信息投放到网络当中。否则工作站只能等待网络下一次出现空闲的时候再进行数据的发送。
而局域网中存在多台主机这些主机都和以太网相连都能够看到以太网故而也能看到以太网中跑的数据。
网络通信本质上就是进程间通信而网络就是临界资源。 所以局域网中的所有主机都唔那个收到主机MAC1发送的数据每台主机在收到数据后数据链路层会对比数据帧报头中的目的MAC地址如果和自己的MAC地址相同则进行解包分用交给下一层。
如果数据帧报头中的目的MAC地址和自己的MAC地址不符那么直接在数据链路层就丢弃该数据上层根本不知道曾经有过这个数据。
8.1 单播
主机B给主机C发送单播帧主机B首先要构建该单播帧在帧首部中的目的地址字段填入主机C的MAC地址源地址字段填入自己的MAC地址再加上帧首部的其他字段、数据载荷以及帧尾部就构成了该单播帧
主机B将该单播帧发送出去主机A和C都会收到该单播帧 主机A的网卡发现该单播帧的目的MAC地址与自己的MAC地址不匹配于是丢弃该帧 主机C的网卡发现该单播帧的目的MAC地址与自己的MAC地址匹配于是接受该帧并将该帧交给其上层处理
8.2 广播
假设主机B要发送一个广播帧主机B首先要构建该广播帧在帧首部中的目的地址字段填入广播地址也就是十六进制的全F源地址字段填入自己的MAC地址再加上帧首部中的其他字段、数据载荷以及帧尾部就构成了该广播帧
主机B将该广播帧发送出去主机A和C都会收到该广播帧发现该帧首部中的目的地址字段的内容是广播地址就知道该帧是广播帧主机A和主机C都接受该帧并将该帧交给上层处理
8.3 多播
假设主机A要发送多播帧给该多播地址。将该多播地址的左起第一个字节写成8个比特第一个字节的最低比特位是1这就表明该地址是多播地址 快速判断地址是不是多播地址就是上图所示箭头所指的第十六进制数不能整除21,3,5,7,9,B,D,F则该地址是多播地址 假设主机BC和D支持MAC多播各用户给自己的主机配置多播组列表如下所示
主机B属于两个多播组主机C也属于两个多播组而主机D不属于任何多播组
主机A首先要构建该多播帧在帧首部中的目的地址字段填入该多播地址源地址字段填入自己的MAC地址再加上帧首部中的其他字段、数据载荷以及帧尾部就构成了该多播帧
主机A将该多播帧发送出去主机B、C、D都会收到该多播帧 主机B和C发现该多播帧的目的MAC地址在自己的多播组列表中因此主机B和C都会接受该**多播帧**并交付给上层处理 主机D发现该多播帧的目的MAC地址不在自己的多播组列表中则丢弃该多播帧
8.3 两主机同一子网不经过网关
当主机A发向主机B的数据流在网络层封装成IP数据包IP数据包的首部包含了源地址和⽬标地址。 主机A会⽤本机配置的24位IP网络掩码255.255.255.0与目标地址进⾏与运算得出⽬标网络地址与本机的⽹络地址是不是在同⼀个⽹段中。
如果在同一个子网可以通过ARP协议获取目的IP的MAC地址数据链路层直接封装以太网帧发送出去。 这个过程中源IP、目标IP、源MAC、目标MAC都不会改变。
8.3 路由转发过程
当主机A发向主机B的数据流在网络层封装成IP数据包IP数据包的首部包含了源地址和⽬标地址。 主机A会⽤本机配置的24位IP网络掩码255.255.255.0与目标地址进⾏与运算得出⽬标网络地址与本机的⽹络地址是不是在同⼀个⽹段中。
如果不是将IP数据包转发到网关。在发往⽹关前主机A还会通过ARP的请求获得默认⽹关的MAC地址。在主机A数据链路层IP数据包封装成以太网数据帧然后才发住到网关……也就是路由器上的⼀个端⼝。
当网关路由器接收到以太网数据帧时发现数据帧中的目标MAC地址是自己的某⼀个端⼝的物理地址这时路由器会把以太网数据帧的封装去掉。路由器认为这个IP数据包是要通过自己进行转发接着它就在匹配路由表。匹配到路由项后它就将包发往下⼀条地址。
IP地址始终不变
目的IP地址是为了确认目的主机。如果IP地址改变则目的主机改变无法进行正常通信。 源IP地址由于NAT等相关技术可能会发生变化看情况。
经过交换机 源/目的MAC地址不变
数据帧在交换机之间转发。在一个网段内部通过数据包通过MAC寻址二层交换机和终端都有MAC表查表或者通过MAC广播因此在二层交换机数据包里的源目MAC地址肩负着把数据包从发包终端传递到目的IP所在终端网段的其他主机~其他网段IP的话就是给网关的任务。
经过路由器源/目的MAC地址变
经过路由器由于三层设备转发跨网段了原来的MAC地址当然就不能使用了所以出接口的MAC此时成为在新一个网段实现两个IP之间寻址的源MAC根据MAC表找到匹配到的路由条目指出的需要转给的下一个IP的MAC地址没的话ARP广播得到然后封装好新的源目MAC转给新网段之间的交换机。。。直到完成新的网段里两点之间的数据包的传递。 在帧不断转发的过程中IP源/目的地址不变MAC源/目的地址根据所经过的路由器端口变化。
参考
https://www.cnblogs.com/kingwz/p/16938768.htmlhttps://blog.csdn.net/sj15814963053/article/details/124128878