WordPress搭建手机网站,济南seo网站排名关键词优化,腾讯cdn api wordpress,推广网站有多少家文章目录 数据链路层#xff08;MAC地址#xff09;1、以太网2、以太网帧格式3、MAC地址4、对比理解 MAC 地址和 IP 地址5、最大传输单元#xff08;MTU#xff09;6、MTU 对 IP 协议的影响7、MTU 对 UDP 协议的影响8、MTU 对 TCP 协议的影响9、查看硬件地址和 MTU10、ARP … 文章目录 数据链路层MAC地址1、以太网2、以太网帧格式3、MAC地址4、对比理解 MAC 地址和 IP 地址5、最大传输单元MTU6、MTU 对 IP 协议的影响7、MTU 对 UDP 协议的影响8、MTU 对 TCP 协议的影响9、查看硬件地址和 MTU10、ARP 协议10.1、ARP 协议的作用10.2、ARP 协议的工作流程10.3、ARP 数据报的格式 数据链路层MAC地址 用于两个设备同一种数据链路节点之间进行传递。 1、以太网 “以太网” 不是一种具体的网络而是一种技术标准既包含了数据链路层的内容也包含了一些物理层的内容。 例如规定了网络拓扑结构访问控制方式传输速率等。 以太网中的网线必须使用双绞线传输速率有 10M100M1000M 等。 以太网是当前应用最广泛的局域网技术和以太网并列的还有令牌环网无线LAN 等。 2、以太网帧格式 源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址)长度是 48 位是在网卡出厂时固化的 帧协议类型字段有三种值分别对应 IP0800、ARP0806、RARP8035 帧末尾是 CRC 校验码主要用来检测或校核数据传输或者保存后可能原数据出现的错误。 3、MAC地址 MAC 地址用来识别数据链路层中相连的节点长度为 48 位即 6 个字节。 一般用 16 进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19) 在网卡出厂时就确定了不能修改。 MAC 地址通常是唯一的(虚拟机中的 MAC 地址不是真实的 MAC 地址, 可能会冲突也有些网卡支持用户配置 MAC 地址) 4、对比理解 MAC 地址和 IP 地址 IP 地址描述的是路途总体的起点和终点 MAC 地址描述的是路途上的每一个区间的起点和终点在这区间下一跳的 MAC 地址的是靠 IP 来获取的下面会讲ARP协议。 5、最大传输单元MTU 最大传输单元MTU是数据链路层能携带的最大数据。 以太网帧中的数据长度规定最小 46 字节最大 1500 字节传输的数据包的长度不够 46 字节要在后面补填充位最大值 1500 称为以太网的最大传输单元(MTU)不同的网络类型有不同的MTU如果一个数据包从以太网路由到拨号链路上数据包长度大于拨号链路的 MTU了则需要对数据包进行分片(fragmentation)不同的数据链路层标准的 MTU 是不同的。比如拨号网络PPPoEMTU是 1492 字节。 6、MTU 对 IP 协议的影响 由于数据链路层 MTU 的限制对于较大的 IP 数据包要进行分包。 将较大的 IP 包分成多个小包并给每个小包打上标识每个小包 IP 协议头的 16 位标识(id) 都是相同的每个小包的 IP 协议头的 3 位标志字段中第 2 位置为 0表示允许分片第 3 位来表示结束标记(当前是否是最后一个小包是的话置为 1否则置为 0)到达对端时再将这些小包会按顺序重组拼装到一起返回给传输层一旦这些小包中任意一个小包丢失接收端的重组就会失败但是 IP 层不会负责重新传输数据 7、MTU 对 UDP 协议的影响 一旦 UDP 携带的数据超过 1472(1500 - 20(IP 首部) - 8(UDP 首部))那么就会在网络层分成多个 IP 数据报 这多个 IP 数据报有任意一个丢失都会引起接收端网络层重组失败因为 UDP 没有超时重传等机制 这就意味着如果 UDP 数据报在网络层被分片整个数据被丢失的概率就大大增加了 8、MTU 对 TCP 协议的影响 TCP 的一个数据报也不能无限大还是受制于 MTU TCP 的单个数据报的最大消息长度称为 MSS(Max Segment Size) TCP 在建立连接的过程中通信双方会进行 MSS 协商 最理想的情况下MSS 的值正好是在 IP 不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的 MTU) 双方在发送 SYN 的时候会在 TCP 头部写入自己能支持的 MSS 值然后双方得知对方的 MSS 值之后选择较小的作为最终 MSS MSS 的值就是在 TCP 首部的 40 字节变长选项中(kind2) MTU 和 MSS 的关系这里 FCS 和 CRC 差不多意思都是校验数据的。 9、查看硬件地址和 MTU 使用 ifconfig 命令可以看 IP 地址子网掩码MAC 地址MTU。 xp2Xpccccc:~$ ifconfig
eth0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.0.2 netmask 255.255.0.0 broadcast 192.168.255.255inet6 fe80::216:3eff:fe69:921e prefixlen 64 scopeid 0x20linkether 00:16:3e:69:92:1e txqueuelen 1000 (Ethernet)RX packets 2006234 bytes 1866052644 (1.8 GB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 1265736 bytes 330604772 (330.6 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0IP 地址192.168.0.2 子网掩码255.255.0.0 MAC 地址00:16:3e:69:92:1e MTU1500 10、ARP 协议 虽然我们在这里介绍 ARP 协议但是需要强调ARP 不是一个单纯的数据链路层的协议而是一个介于数据链路层和网络层之间的协议。 10.1、ARP 协议的作用 地址解析协议ARPAddress Resolution Protocol ARP 协议建立了主机 IP 地址 和 MAC 地址 的映射关系 在网络通讯时源主机的应用程序知道目的主机的 IP 地址和端口号却不知道目的主机的硬件地址 由于数据包首先是被网卡根据 MAC 地址接收到再去处理上层协议的如果接收到的数据包的硬件地址与本机不符则直接丢弃 因此在通讯前必须获得目的主机的硬件地址 如果当前局域网不存在目标主机 IP 则把默认转发的 IP 口路由器的 MAC 返回。 10.2、ARP 协议的工作流程 源主机发出 ARP 请求询问“IP 地址是 172.20.1.2 的主机的硬件地址是多少并将这个请求广播到本地网段(以太网帧首部的硬件地址填 FF:FF:FF:FF:FF:FF 表示广播一对多) 目的主机接收到广播的 ARP 请求发现其中的 IP 地址与本机相符则发送一个ARP 应答数据包给源主机将自己的硬件地址填写在应答包中这个过程是单播一对一 每台主机都维护一个 ARP 缓存表可以用 arp -a 命令查看。缓存表经常访问的 IP 可以节省时间中的表项有过期时间(一般为 20 分钟防止有的 IP 不在了比如失效)如果 20 分钟内没有再次使用某个表项则该表项失效下次还要发 ARP 请求来获得目的主机的硬件地址。 xp2Xpccccc:~$ arp -a
? (192.168.0.1) at ee:ff:ff:ff:ff:ff [ether] on eth010.3、ARP 数据报的格式 注意到源 MAC 地址、目的 MAC 地址在以太网首部和 ARP 请求中各出现一次对于链路层为以太网的情况是多余的但如果链路层是其它类型的网络则有可能是必要的硬件类型指链路层网络类型1 为以太网协议类型指要转换的地址类型0x0800 为 IP 地址硬件地址长度对应为 以太网地址 为 6 字节协议地址长度对应 IP 地址为 4 字节op 字段为 1 表示 ARP 请求op 字段为 2 表示 ARP 应答 OKOK数据链路层MAC地址就到这里如果你对Linux和C也感兴趣的话可以看看我的主页哦。下面是我的github主页里面记录了我的学习代码和leetcode的一些题的题解有兴趣的可以看看。
Xpccccc的github主页