ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

数据链路层ARP协议、NAT路由技术、代理服务器、内网穿透、内网打洞、交换机+集线器

数据链路层ARP协议、NAT路由技术、代理服务器、内网穿透、内网打洞、交换机+集线器 bit::Shadow✧(≖ ◡ ≖✿目录与IP对比理解MAC地址局域网的理解数据帧如何找到对方的MAC地址ARP协议各字段ARP请求与应答请求首部主体应答首部主体数据帧与网络传输的介质分析【了解】1. 介质决定了数据帧的“封装格式”2. 介质决定了数据帧的“大小极限”3. 介质决定了数据帧的“传输方式”NAT技术 代理服务 网络穿透NAT技术NAPT表NAPT表项的生存【了解】1. 表项的创建是“按需触发”的动态建立2. 表项的寿命是“倒计时”的动态老化/超时3. 表项的公网端口是“临时占用”的动态释放与回收NAT技术的缺陷代理服务器正向代理反向代理校园网与云服务器的问题【了解】1. 为什么校园网不是“正向代理”2. 为什么腾讯云服务器不是“反向代理”3. 那完整的实际通信流程是什么样的4. 什么时候你的腾讯云服务器会变成“反向代理”终极总结内网穿透为什么需要内网穿透现实痛点内网打洞为什么要“打洞”问题的根源交换机、集线器交换机的两大核心功能进阶集线器的核心工作逻辑物理层“广播”与IP对比理解MAC地址IP地址描述的是路途总体的起点和终点。MAC地址描述的是路途上的每一个区间的起点和终点。局域网的理解局域网是一个碰撞域一个时刻只能发送一个数据帧。局域网是共享资源实际上在网络中传播的是“数据帧”而非其他数据帧数据帧Frame是数据链路层Layer 2的传输单元它是网络数据在物理介质如网线、光纤、WiFi上传输的最终封装格式。如何找到对方的MAC地址通过ARP地址解析协议协议将IP转换为MAC地址。注意ARP协议本身就是为了“问出”那个不知道的MAC地址而设计的、它不是一种可以“提前调用”的转换工具而是一个“现场询问”的通信过程。ARP协议各字段4*8比特以太网目的地址、以太网源地址、帧类型为ARP的14位首部字段之后是28位字节应答/请求字段。硬件类型指链路层网络类型1为以太网。协议类型指要转换的地址类型0X0800对应IP地址。硬件地址长度对于以太网地址为6字节。协议地址长度对应IP地址为4字节。op字段为1表示ARP请求为2表示ARP应答。ARP请求与应答A端发送端 B端接收端请求首部目的以太网地址FFFF ... #广播地址因为不知道目标MAC地址。以太网源地址A端MAC地址。帧类型0x0806 指ARP协议。主体硬件类型1 指以太网协议类型0x0800对应要转换的协议即IP协议。硬件地址长度6 指以太网地址是6字节。协议地址长度对应IP为4字节。op1 表示这是个请求报文。发送端以太网地址A端MAC地址。目的以太网地址FFFF .... 表示广播因为当前未知目标MAC地址目的IP地址被发送端报文填充内dst填充。应答B端应答A端的请求。由于是“应答”就代表接收到了“请求”。此应答报文的目的地址明确了。首部以太网目的地址即A端以太网地址。请求端以太网源地址即B端以太网地址。应答端帧类型0x0806 指ARP协议主体硬件类型1 指以太网。协议类型0x00对应要转换的协议即IP协议。硬件地址长度6指以太网地址是6字节。协议地址长度对应IP协议为4字节。op2表示这是一个应答报文。发送端以太网地址即B端以太网地址。发送端IP地址即B端IP地址。目的以太网地址即A端以太网地址。目的IP地址即A段IP地址。数据帧与网络传输的介质分析【了解】要理解数据帧和传输介质的关系最核心的一句话是数据帧是“逻辑上的快递包裹”而传输介质是“物理上的运输道路”。包裹的设计数据帧格式必须适应道路的特性介质特点否则就无法顺利送达。具体来说它们的关系体现在以下三个层面1. 介质决定了数据帧的“封装格式”不同的传输介质其数据帧的格式尤其是头部是不同的。最典型的例子就是以太网帧和Wi-Fi帧以太网有线工作在相对稳定、干扰小的环境中帧结构相对简单主要包含源/目的MAC地址、类型和校验码。Wi-Fi无线工作在干扰大、信号不稳定的环境中帧结构要复杂得多。它除了包含基本的地址外还增加了帧控制、持续时间等字段用于处理冲突避免、省电模式等问题。这就好比公路运输的货车和海运的集装箱虽然装的都是货物但为了适应道路和风浪其外形和结构必须不同。2. 介质决定了数据帧的“大小极限”这个极限就是最大传输单元MTU。数据帧的大小不能超过介质的MTU否则就需要在IP层进行分片。传统以太网的MTU通常是1500字节。千兆/万兆以太网支持Jumbo Frame巨型帧可以达到9000字节以上。Wi-Fi的MTU通常为2304字节。这个差异很好理解光纤和高速网线能轻松承载大块数据像高速公路让重型卡车跑而无线信号易受干扰如果帧太大传输中出错重传的成本太高所以限制更严格。3. 介质决定了数据帧的“传输方式”数据帧在介质上如何“行走”方式也完全不同有线介质双绞线、光纤使用电信号或光信号传输信道相对封闭干扰小可以实现全双工同时收发通信几乎不冲突。无线介质电磁波使用无线电波信道是开放的所有设备共享同一片空间极易冲突。因此Wi-Fi帧必须配合CSMA/CA载波侦听多路访问/冲突避免机制工作在发送前先“监听”并随机退避来减少碰撞。总结1.即“帧”在数据传输中被分作“有线”与“无线”两种“帧”只是传输的载体。2.“有线”较于“无线”实现了大数据/高效率传递低成本重传。NAT技术 代理服务 网络穿透NAT技术NAT技术是为了解决IP地址分配不足的问题。NAT技术一种使用于路由器转接IP的转接技术是一种“算法”直接决定了IPport间转换。NAT路由器将源地址从10.0.0.1替换为全局IP 202.244.174.27NAT路由器收到外部的数据时又会把目标IP从202.244.174.37替换为10.0.0.1在NAT路由器内部有一张自动生成的用于地址端口转换的表NAPTNAPT表如果局域网内有多个主机访问同一个外网服务器那么对于服务器返回的数据中目的IP都是相同的NAPT表使用IPport来区分不同主机。NAPT表项的生存【了解】1. 表项的创建是“按需触发”的动态建立NAPT表项不是提前配置好的而是只有当内网设备主动向外发起连接时路由器才会动态创建一条记录。体现当你打开浏览器访问百度时路由器才会在那一瞬间生成一条映射内网IP:端口192.168.1.100:54321-- 公网IP:端口120.1.1.1:55000。反例如果你把电脑关机或者不访问任何外网服务路由器的NAPT表里就完全没有关于这台电脑的任何记录。外部互联网根本不知道你的存在。2. 表项的寿命是“倒计时”的动态老化/超时这是NAPT动态性最直观的体现。每条表项都有一个“生存时间Timeout”计时器像秒表一样倒计时。体现当数据包持续收发时计时器会被重置续命保持活跃。当通信结束或长时间无数据交互例如你刷完网页后发呆超过几分钟计时器归零这条表项就会被路由器自动删除老化。不同协议时长不同TCP连接通常老化时间较长如5-30分钟而UDP无连接老化时间很短如30-60秒因为UDP没有明确的“断开”信号。3. 表项的公网端口是“临时占用”的动态释放与回收NAPT表项中的公网IP和端口TCP/UDP端口号资源是有限的端口只有65535个。动态性确保了这些稀缺资源能被循环利用。体现连接结束释放端口当你关闭游戏或断开VPN对应的表项迅速老化删除它占用的那个公网端口如55000会立即回归“空闲池”供其他内网设备比如你室友的手机下次上网时复用。冲突避免如果新连接恰好被分配了之前刚释放的端口路由器会通过检测“五元组”是否完全一致来区分新旧会话确保不会串线。NAT技术的缺陷由于NAT依赖这个转换表所以有诸多限制无法从NAT外部向内部服务器建立连接转换表的生成和销毁都需要额外开销通信过程中一旦NAT设备异常即使存在热备所有的TCP连接也都会断开代理服务器正向代理概述正向代理forward Proxy是一种常见的网络代理方式它位于客户端和目标服务器之间代表客户端向目标服务器发送请求。然后将请求转发给目标服务器最后将目标服务器的响应返回给客户端。通过这种方式正向代理可以实现多种功能如提供访问速度、隐藏客户端身份、实施访问控制等。工作原理客户端将请求发送给正向代理服务器。正向代理服务器接受请求并根据配置进行处理如缓存查找、内容过滤等。正向代理服务器将处理后的请求转发给目标服务器。目标服务器出来请求并将响应返回给正向代理服务器。正向代理服务器将响应返回给客户端。Nginx反向代理服务器的一种最常见类型功能特点缓存功能正向代理服务器可以缓存经常性访问的资源当客户端再次请求这些资源时可以直接从缓存中获取提高访问速度。内容过滤正向代理可以根据预设的规则对请求或响应进行过滤如屏蔽广告、阻止恶意网站等。访问控制通过正向代理可以实现对特定网站的访问控制如限制员工在工作时间访问娱乐网址。隐藏客户端身份正向代理可以隐藏客户端的真实IP地址保护客户端的隐私。负载均衡在多个目标服务器之间分配客户端请求提高系统的可扩展性与可靠性。反向代理概述反向代理服务器是一种网络架构模式其作为Web服务器的前置服务器接收来自客户端的请求并将这些请求转发给后端服务器然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性、可维护性。基本原理反向代理服务器位于客户端和Web服务器之间当客户端发起请求时它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的Web服务器并将Web服务器的响应返回给客户端。在这个过程中客户端并不知道实际与哪个Web服务器进行了交互它只知道与反向的代理服务器进行了通信。应用场景负载均衡反向代理服务器可以根据配置的负载均衡策略将客户端的请求分发给多个后端服务器上已实现负载均衡。这有助于提升网站的整体性能和响应速度特别在高并发场景下。安全保护反向代理服务器可以隐藏后端Web服务器的真实IP地址降低其被直接攻击的风险。同时它还可以配置防火墙、访问控制列表ACL等安全策略对客户端的请求进行过滤和限制以保护后端服务器的安全。缓存加速反向代理服务器可以缓存回答Web服务器的响应内容对于重复的请求它可以直接从缓存中返回响应而无需再次向服务端发起请求。这可以大大减少服务器的负载提示网站的响应速度。内容过滤与重写反向代理服务器可以根据配置的规则对客户端的请求进行过滤与重写例如添加或删除请求头】修改请求路径等。这有助于实现一些特定的业务需求如URL重写、用户认证等。动静分离在大学网站中通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上常常是CDN可以直接从反向代理服务器服务器返回静态资源的响应而无需再次向后端服务器发送请求。这可以大大提升静态资源的访问速度。校园网与云服务器的问题【了解】如果我购买了腾讯云的服务器使用校内校园网我在进行访问时是否就是“正向代理服务器校园网”“反向代理服务器”云这是一个非常典型且敏锐的思维碰撞直接给你结论不完全正确你把这个结构想反了。在你描述的这个具体场景校内校园网 腾讯云服务器下严格来说你的校园网不是正向代理服务器。你的腾讯云服务器不是反向代理服务器除非你特意去配置它。如果非要套用“代理”的概念你现在的访问模式最准确的称呼是“客户端-服务器C/S直连模式”或者叫“普通的公网访问”。为了让你彻底分清我们把这两个角色放到你的实际环境里重新“对号入座”1. 为什么校园网不是“正向代理”你可能会想“校园网不是很多人共用同一个公网IP出口吗这不就是代理吗”关键区别在于“是否主动配置”正向代理需要你在浏览器或电脑系统里手动填写代理服务器的IP和端口比如填proxy.school.edu.cn:8080。代理服务器会代替你去拿数据再把数据返回给你。校园网的NAT网络地址转换你不需要做任何配置插上网线就能上网。它是路由器在底层自动帮你做地址替换把192.168.x.x换成公网IP。结论校园网只做“网络地址转换NAT”不做“代理Proxy”。NAT只改数据包的“收发室号IP地址”不改“信件内容”而正向代理会解析“信件内容应用层数据”。所以校园网是NAT网关不是正向代理服务器。2. 为什么腾讯云服务器不是“反向代理”腾讯云服务器默认就是一台放在机房的物理电脑云主机。反向代理必须在服务器上额外安装特定软件如Nginx、HAProxy并配置规则让它把收到的请求转发给后面的其他服务器比如转发给内网的数据库服务器或另一台应用服务器。你的云服务器现状如果你只是在服务器上部署了一个网站服务如Tomcat、Node.js用户直接访问的就是这个服务本身。这里没有“后端服务器”存在所以不存在“反向”一说。结论你的云服务器此时是“源站Origin Server”不是反向代理服务器。3. 那完整的实际通信流程是什么样的当你用校园网里的电脑通过SSH或浏览器访问你的腾讯云服务器时流程是这样的你的电脑192.168.x.100发出请求。校园网出口路由器执行NAPT源地址转换把源IP替换成校园网的公网IP比如202.202.x.x。这里是NAT不是代理互联网骨干网数据包经过路由转发到达腾讯云机房。腾讯云服务器公网IP110.110.x.x网卡收到数据包操作系统将数据交给监听端口的应用程序比如Nginx或你的Java程序处理。原路返回服务器处理完数据直接将响应包发回给你的校园网公网IP202.202.x.x校园网路由器再根据NAPT表项还原成你的内网IP192.168.x.100发给你。4. 什么时候你的腾讯云服务器会变成“反向代理”假设你现在有两台腾讯云服务器A服务器公网安装Nginx配置反向代理规则。B服务器内网无公网IP部署真正的Java后端程序。此时用户访问A服务器的80端口A服务器收到后自动将请求转发给内网的B服务器。那么A服务器才正式扮演了反向代理服务器的角色。终极总结你的疑问实际情况正确答案校园网是正向代理吗没有手动配置代理是路由器自动换IP不是是NAT网关云服务器是反向代理吗没有配置转发规则直接处理请求不是是源站服务器这种访问叫什么客户端直接访问公网服务器标准的C/S客户端/服务器直连通信简单记忆法只有当你显式地在客户端填写了代理IP或者显式地在服务器配置了转发规则才算“代理”。否则统统是“直连经过NAT”。内网穿透内网穿透说白了就是解决“内网设备没有公网IP外网设备怎么主动找过来”的问题。我们前面聊了NAPT网络地址转换它让内网设备能主动访问外网但外网设备想主动连接内网设备比如你人在公司想访问家里电脑上的文件时就会撞上防火墙或NAT设备的“墙”直接被丢包。内网穿透就是在这堵墙上“打个洞”让外网能钻进来。为什么需要内网穿透现实痛点运营商不给公网IP家庭宽带默认都是内网IPNAT后的别人没法直接连你。路由器防火墙拦截即使有公网IP家用路由器默认也会拦截所有从外网主动发起的连接。动态IP变化就算有公网IP运营商隔几天会变一次你没法天天去记新IP。内网打洞不经过服务器转接而仅通过网络路由实现对端通信。薅运营商羊毛“内网打洞”通常指UDP 打洞 / NAT 穿透和我们刚才聊的“内网穿透”是亲兄弟但分工不同。用一个比喻帮你秒懂区别内网穿透Frp/Ngrok“打电话给总机总机转接”。所有数据都得经过中间的总机云服务器总机累了你就慢了。内网打洞UDP Hole Punching“双方同时伸出头喊话直接对上眼”。不需要总机传话两人直接建立私聊通道。“内网打洞”是“内网穿透”中最顶级、最高效的一种实现方式目的是实现P2P点对点直连让数据不经过昂贵的云服务器中转直接在两台内网设备之间传输。为什么要“打洞”问题的根源我们之前讲过NAT网络地址转换设备家里的路由器默认只允许内网主动发起的连接通过。设备 A内网想找设备 B另一个内网A 发数据给 B 的公网 IP路由器看到“目的地址是外网”放行。B 的路由器收到这个数据包时发现“我内网没人主动找过这个 A”于是直接丢弃数据包陌生人敲门不开门。打洞的目的骗过 B 的路由器让它以为“这个 A 是我内网设备主动找过的朋友”从而放行数据。交换机、集线器交换机的两大核心功能进阶交换机优化了局域网内发生的频繁碰撞问题。除了基本转发交换机在现代网络中还有两个极其重要的功能功能一隔离冲突域提升性能在早期的共享式网络中同一时间只能有一台设备发送数据否则会碰撞。交换机将每个端口划分为独立的冲突域使得多台设备可以同时全速收发数据互不影响。这是交换机取代集线器的根本原因。功能二VLAN虚拟局域网——逻辑隔离这是交换机最重要的管理功能。你可以在一台物理交换机上把端口划分为不同的逻辑组VLAN实现相互隔离。场景公司里财务部和人事部虽然插在同一个交换机上但通过VLAN配置财务部的电脑无法直接访问人事部的打印机和文件服务器除非经过路由器。好处提升安全性、减少广播风暴、简化网络管理。集线器的核心工作逻辑物理层“广播”集线器工作在OSI模型的第一层物理层它不理解MAC地址也不理解IP地址。它的唯一功能就是“复制电信号”收到信号某个端口比如连电脑A的端口收到一个电信号。放大整形把信号放大以对抗线路传输中的衰减。群发所有端口把这个信号原封不动地发送给其他所有端口除了接收端口。人话总结集线器就是一个“多接口的电源插排”。你在一端说话它就把声音用电平的形式传到所有插着的设备上不管这声音是不是喊给对面听的。经典面试题从浏览器发起http请求到得到网页的整个过程越详细越好感谢支持长期连载欢迎关注
返回列表