付费推广平台有哪些,惠州seo整站优化,wap网站模板下载,万能视频下载神器大家好#xff0c;上次我们学完了数据链路层#xff0c;有关OSI网络模型的几层我们就都已经学完了#xff0c;今天我们在补充一些知识并做一下总结。好了那么我们开始今天的学习#xff1a;
目录
NAT、代理服务、内网穿透
1. NAT 技术背景
1.1 NAT IP 转换过程
1.2 NA…大家好上次我们学完了数据链路层有关OSI网络模型的几层我们就都已经学完了今天我们在补充一些知识并做一下总结。好了那么我们开始今天的学习目录NAT、代理服务、内网穿透1. NAT 技术背景1.1 NAT IP 转换过程1.2 NAPT1.3 NAT 技术的缺陷2. 代理服务器2.1 正向代理工作原理功能特点应用场景2.2 反向代理基本原理应用场景NAT 和代理服务器3. 内网穿透4. 内网打洞5. 总结数据链路层核心作用核心组件网络层核心作用核心组件传输层核心作用核心组件应用层核心作用核心组件网络通信全景NAT、代理服务、内网穿透1. NAT技术背景之前我们讨论了, IPv4 协议中, IP地址数量不充足的问题NAT 技术当前解决 IP地址不够用的主要手段,是路由器的一个重要功能NAT能够将私有IP对外通信时转为全局IP.也就是就是一种将私有IP和全局 IP 相互转化的技术方法:很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局 IP;全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP 是完全不影响的;1.1 NAT IP转换过程NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回 10.0.0.10;在NAT路由器内部,有一张自动生成的,用于地址转换的表;当10.0.0.10第一次向163.221.120.9发送数据时就会生成表中的映射关系;1.2 NAPT那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的.那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?这时候NAPT来解决这个问题了.使用IPport来建立这个关联关系如果只替换IP地址的话那么当子网内两台主机同时使用同一个端口号进行收发数据时IP地址和端口号就都是相同的了所以要对端口号也进行替换。这种关联关系也是由NAT路由器自动维护的.例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项1.3 NAT技术的缺陷由于NAT依赖这个转换表,所以有诸多限制1. 无法从 NAT 外部向内部服务器建连接NAT 的转换表就像 “小区快递柜的取件码对应表”—— 只有 “内部住户先往外寄了快递内部主动发起连接”快递柜才会生成 “取件码外部 IP 端口→住户门牌号内部 IP 端口” 的对应关系。如果外部的人想直接给小区里的住户寄快递外部主动连内部快递柜里根本没有对应的取件码记录所以包裹请求会直接被 “快递柜管理员NAT 设备” 拒收。2. 转换表的生成 / 销毁有额外开销NAT 设备要给每一个内部发起的连接都记录 “外部 IP 端口、内部 IP 端口、协议类型” 等信息相当于给每个快递生成唯一取件码并登记连接断开后还要及时销毁这些记录避免占用内存。如果内部设备同时发起上千个连接NAT 设备就要维护上千条转换表记录既占内存也会增加设备的处理压力相当于快递柜同时存几百个包裹管理员登记、清理的工作量会变大。3. NAT 异常会导致 TCP 连接全断转换表是 “临时存在 NAT 设备内存里的”—— 就像快递柜的取件码记录只存在柜机里。如果 NAT 设备突然故障比如柜机断电即使换了备用柜机热备设备备用柜里没有之前的取件码记录之前的所有 “取件码→住户” 的对应关系都没了。而 TCP 连接依赖这些转换表外部发的数据包要通过转换表找到内部主机所以所有正在通信的 TCP 连接都会因为 “找不到对应关系” 而断开得重新发起连接。2. 代理服务器2.1 正向代理正向代理Forward Proxy是一种常见的网络代理方式它位于客户端和目标服务器之间代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求然后将请求转发给目标服务器最后将目标服务器的响应返回给客户端。通过这种方式正向代理可以实现多种功能如提高访问速度、隐藏客户端身份、实施访问控制等。工作原理客户端将请求发送给正向代理服务器。正向代理服务器接收请求并根据配置进行处理如缓存查找、内容过滤等。正向代理服务器将处理后的请求转发给目标服务器。目标服务器处理请求并将响应返回给正向代理服务器。正向代理服务器将响应返回给客户端。功能特点缓存功能正向代理服务器可以缓存经常访问的资源当客户端再次请求这些资源时可以直接从缓存中获取提高访问速度。内容过滤正向代理可以根据预设的规则对请求或响应进行过滤如屏蔽广告、阻止恶意网站等。访问控制通过正向代理可以实现对特定网站的访问控制如限制员工在工作时间访问娱乐网站。隐藏客户端身份正向代理可以隐藏客户端的真实IP地址保护客户端的隐私。负载均衡在多个目标服务器之间分配客户端请求提高系统的可扩展性和可靠性。应用场景企业网络管理企业可以通过正向代理实现对员工网络访问的管理和控制确保员工在工作时间内专注于工作避免访问不良网站或泄露公司机密。公共网络环境在公共场所如图书馆、学校等提供的网络环境中通过正向代理可以实现对网络资源的合理分配和管理确保网络使用的公平性和安全性。内容过滤与保护家长可以通过设置正向代理来过滤不良内容保护孩子免受网络上的不良信息影响。提高访问速度对于经常访问的网站或资源正向代理可以通过缓存机制提高访问速度减少网络延迟。跨境电商与海外访问对于跨境电商或需要访问海外资源的企业和个人正向代理可以帮助他们突破网络限制顺畅地访问海外网站和资源。2.2 反向代理反向代理服务器是一种网络架构模式其作为Web服务器的前置服务器接收来自客户端的请求并将这些请求转发给后端服务器然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。基本原理反向代理服务器位于客户端和Web服务器之间当客户端发起请求时它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器并将 Web服务器的响应返回给客户端。在这个过程中客户端并不知道实际与哪个 Web服务器进行了交互它只知道与反向代理服务器进行了通信。应用场景负载均衡反向代理服务器可以根据配置的负载均衡策略将客户端的请求分发到多个后端服务器上以实现负载均衡。这有助于提升网站的整体性能和响应速度特别是在高并发场景下。安全保护反向代理服务器可以隐藏后端Web服务器的真实IP地址降低其被直接攻击的风险。同时它还可以配置防火墙、访问控制列表ACL等安全策略对客户端的请求进行过滤和限制以保护后端服务器的安全。缓存加速反向代理服务器可以缓存后端Web服务器的响应内容对于重复的请求它可以直接从缓存中返回响应而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载提升网站的响应速度。内容过滤和重写反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求如 URL重写、用户认证等。动静分离在大型网站中通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上可以直接从反向代理服务器返回静态资源的响应而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。CDNContent Delivery Network内容分发网络就是采用了反向代理的原理NAT和代理服务器路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程. 代理服务器看起来和 NAT设备有一点像.客户端像代理服务器发送请求,代理服务器将 请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端.那么NAT和代理服务器的区别有哪些呢?从应用上讲, NAT设备是网络基础设备之一,解决的是IP不足的问题.代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器.从底层实现上讲, NAT是工作在网络层,直接对IP地址进行替换.代理服务器往往工作在应用层.从使用范围上讲, NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网.从部署位置上看, NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上.代理服务器又分为正向代理和反向代理花王尿不湿是一个很经典的尿不湿品牌,产自日本.我自己去日本买尿不湿比较不方便,但是可以让我在日本工作的表姐去超市买了快递给我.此时超市看到的买家是我表姐,我的表姐就是正向代理;后来找我表姐买尿不湿的人太多了,我表姐觉得天天去超市太麻烦,干脆去超市买了一大批尿不湿屯在家里,如果有人来找她代购,就直接把屯在家里的货发出去,而不必再去超市.此时我表姐就是反向代理正向代理用于请求的转发(例如借助代理绕过反爬虫).反向代理往往作为一个缓存.3. 内网穿透这个图展示的是用 frp内网穿透工具解决 “在家访问学校内网平台” 的场景—— 因为学校平台是 “只有学校内网才能访问的资源”放假在家时你的设备在自己家的内网没法直接连学校内网frp 就像个 “公网中转站”帮你打通家里到学校内网的连接。我用 “学校教务平台仅学校内网可访问” 为例对应图里的组件拆解步骤先明确 3 个核心角色对应图里的元素云服务器图里的 “云服务器”有公网 IP 的中间转发节点部署frpsfrp 的服务端相当于 “快递中转站”。学校内网设备对应图里的 “家”在学校内网里的电脑 / 服务器部署frpcfrp 的客户端相当于 “学校那边的快递员”。你家里的设备对应图里的 “公司或者学校”你在家用的电脑要访问学校内网的教务平台。具体步骤对应你的需求在家访问学校内网平台步骤 1学校内网端配置 frpc把学校平台 “挂” 到中转站在学校内网的设备上安装并配置frpc客户端告诉 frpc“把学校内网教务平台的端口比如平台是 80 端口映射到云服务器 frps 的 8080 端口”相当于学校的快递员把 “教务平台” 这个包裹送到中转站的 8080 号货架。同时frpc 会主动和云服务器的 frps 建立TCP 长连接保持中转站和学校内网的通路。步骤 2云服务器配置 frps准备好中转站在云服务器上部署frps服务端只需要简单配置比如允许 frpc 连接、开放 8080 端口相当于 “中转站准备好 8080 货架等着学校的包裹送过来”。步骤 3你在家访问学校平台从中转站取包裹放假在家时你在自己的电脑上直接访问云服务器的 8080 端口比如输入云服务器公网IP:8080云服务器的 frps 收到你的请求后会通过之前和学校 frpc 的长连接把请求转发给学校内网的 frpc学校的 frpc 再把请求转发到学校内网的教务平台80 端口最后学校平台的响应会沿着 “学校 frpc→云服务器 frps→你家电脑” 的路径返回 —— 这样你在家就能打开只有学校内网才能访问的平台了。对应图里的流程适配你的需求原本图里是 “公司 / 学校访问家里的设备”换成你的场景就是 “家里访问学校内网的平台”图里的 “家部署 frpc”→ 学校内网部署 frpc映射学校平台端口图里的 “公司或者学校访问云服务器端口”→ 你家里的电脑访问云服务器的映射端口核心逻辑不变通过 frp 的 “客户端 - 服务端” 转发让两个内网家里、学校的设备借助公网云服务器打通连接。4. 内网打洞先铺垫背景你在家的电脑设备 B、学校宿舍的电脑设备 A上面开着学校教务平台都在各自的NAT 内网里学校有学校的路由器你家有你家的路由器——NAT 会给设备分配 “内网 IP”比如学校 A 是 192.168.1.10你家 B 是 192.168.0.5但这些 IP 只有自己小区内网能识别公网根本 “看不见”所以正常情况下 B 和 A 互相找不到对方。内网打洞的过程像 “小区邻居互递东西找中介约好取货点”我们需要一个有公网 IP 的 “打洞服务器”相当于 “中介”帮两边 “约好临时取货点”然后在 NAT 的 “围墙” 上打洞步骤 1中介打洞服务器准备好先租一台有公网 IP 的云服务器比如公网 IP 是203.0.113.10作为两边的 “信息传递站”。步骤 2学校的 A 先找中介登记 “取货点”学校宿舍的电脑 A内网 IP192.168.1.10主动连接打洞服务器学校的 NAT 路由器围墙保安会给 A 分配一个 **“公网映射地址”**比如120.79.80.5:8000—— 相当于 “学校小区门口的临时取货点写着 A 的名字”打洞服务器把 A 的 “公网映射地址120.79.80.5:8000” 记录下来。步骤 3家里的 B 也找中介登记 “取货点”你在家的电脑 B内网 IP192.168.0.5也主动连接打洞服务器你家的 NAT 路由器围墙保安会给 B 分配一个 “公网映射地址”比如114.22.33.44:9000—— 相当于 “你家小区门口的临时取货点写着 B 的名字”打洞服务器把 B 的 “公网映射地址114.22.33.44:9000” 也记录下来。步骤 4中介把两边的 “取货点” 互相告诉对方打洞服务器把 A 的 “公网映射地址120.79.80.5:8000” 发给 B同时把 B 的 “公网映射地址114.22.33.44:9000” 发给 A。步骤 5两边互相 “去对方取货点递东西”—— 打洞成功你家的 B主动给 A 的 “公网映射地址120.79.80.5:8000” 发一条 “打招呼” 的消息学校的 NAT 路由器保安看到 “有消息发往 A 的取货点”会把这条消息转发给内网里的 A同时学校的 A 也主动给 B 的 “公网映射地址114.22.33.44:9000” 发一条消息你家的 NAT 路由器保安看到 “有消息发往 B 的取货点”也会把消息转发给内网里的 B。这一步的关键是NAT 路由器默认会拒绝 “外部主动来的消息”但如果是 “自己设备先主动联系过的地址”就会允许对方的消息进来—— 相当于两边互相 “敲了对方小区的门”保安NAT就给开了个临时的 “洞”。步骤 6在家直接访问学校平台打洞成功后B 和 A 已经建立了直接的 TCP 连接不用再经过打洞服务器你在家的 B 就可以直接访问 “学校 A 的内网 IP: 平台端口”比如192.168.1.10:80打开仅学校内网能访问的教务平台了。为什么叫 “内网打洞”NAT 像 “把设备关在小区里的围墙”外部进不来而两边互相发消息的操作相当于在围墙上 “打了个临时的洞”让对方的流量能通过这个洞进到自己的内网里。和之前 frp 的区别frp 是 “全程靠公网服务器中转”相当于所有东西都先寄到中介那里再转发速度慢、占服务器带宽内网打洞是 “中介只负责传地址之后两边直接连”相当于中介只告诉取货点之后两家直接递东西速度快、不占中介资源。举个例子一种新的直播方式就是一个内网打洞的例子观众和主播通过直播平台建立连接这样可以减轻服务器压力但是如果观众量很大的时候这种方式还是不太友好。5. 总结数据链路层核心作用在同一数据链路如局域网内的设备间可靠传输数据帧实现点到点通信。核心组件以太网最主流的局域网技术定义了帧格式、拓扑结构、传输速率 (10M/100M/1Gbps) 和访问控制方式 (CSMA/CD)。MAC 地址全球唯一硬件标识符 (烧录在网卡)用于局域网内寻址。FCS帧校验检测传输错误。MAC 地址6 字节 (48 位)如00:1A:2B:3C:4D:5E作用数据链路层寻址交换机通过 MAC 表实现微秒级转发与 IP 区别MAC 是数据链路层物理地址 (本地有效)IP 是网络层逻辑地址 (全局路由)ARP 协议功能将目标 IP 地址解析为 MAC 地址 (网络通信的 临门一脚)工作流程主机广播 ARP 请求谁有 IP 192.168.1.100告诉我 MAC目标主机回复 MAC 地址源主机缓存 IP-MAC 映射 (ARP 表)避免重复查询MTU (最大传输单元)以太网默认1500 字节(数据部分)作用限制帧最大长度防止过大数据包影响超过 MTU 时IP 层会进行分片接收后重组路径 MTU两台主机间所有链路 MTU 的最小值决定实际传输的最大包长网络层核心作用在复杂网络环境中 (跨网段) 选择路径实现端到端数据包路由。核心组件IP 地址IPv432 位点分十进制 (如 192.168.1.1)分类A类: 0xxx...(0-127) | B类: 10xx...(128-191) | C类: 110x...(192-223) D类: 1110...(组播) | E类: 1111...(保留)私有 IP10.0.0.0/8, 172.16.0.0-172.31.0.0/12, 192.168.0.0/16特点内网使用不路由到公网IP vs MACIP: 网络层逻辑地址用于全局路由规划(跨省)MAC: 链路层物理地址用于本地交付(送上门)IP 数据包格式版本(4位)|头长度(4位)|服务类型(8位)|总长度(16位)| 标识(16位)|标志(3位)|片偏移(13位)|TTL(8位)| 协议(8位)|校验和(16位)|源IP(32位)|目标IP(32位)| 选项(可变)|填充|数据TTL防止数据包无限循环 (每跳减 1为 0 时丢弃)协议指示上层协议 (如 6-TCP, 17-UDP)路由选择工作流程主机检查目标 IP 是否在本地网段 (通过子网掩码)同网段直接通过 MAC 地址交付不同网段发给默认网关 (路由器)路由器根据路由表查找下一跳逐跳转发IP 地址不足解决方案子网划分将大网络分成多个小网络提高地址利用率例: 192.168.1.0/24 → 分成4个子网: 192.168.1.0/26, 192.168.1.64/26等CIDR (无类别域间路由)可变长子网掩码更灵活分配地址NAT (网络地址转换)多台内网设备共享一个公网 IPNAT 工作原理部署在路由器连接内网 (私有 IP) 和公网 (公有 IP)转换类型静态 NAT一对一映射 (固定内网 IP→固定公网 IP)动态 NAT多对多映射 (从 IP 池中分配)PAT (端口地址转换)最常用多对一映射通过端口区分不同主机工作流程内网→外网: 替换源IP(私有→公有)端口重映射 外网→内网: 根据端口映射表还原目标IP局限性无法从外网主动向内网建立连接转换表开销NAT 故障时所有 TCP 连接断开ICMP 协议网络层的 交通警察负责错误报告和状态查询常见类型Ping (Echo 请求 / 响应)测试网络连通性Traceroute通过 TTL 超时定位路由路径目标不可达网络 / 主机 / 端口不可达时报告传输层核心作用实现端到端的数据传输控制确保可靠性 (对 TCP) 或高效性 (对 UDP)。核心组件端口号16 位 (0-65535)区分同一主机上的不同应用知名端口HTTP (80)、HTTPS (443)、FTP (21/20)、SSH (22)、DNS (53) 等UDP 协议特点无连接、不可靠、面向报文、无流量控制优点开销小、速度快、延迟低适用场景视频流、音频通话、DNS 查询、实时游戏UDP 数据包源端口 目标端口 长度 校验和 数据TCP 协议特点面向连接、可靠、面向字节流、全双工可靠性保障机制三次握手建立连接同步序列号客户端: SYN → 服务器: SYNACK → 客户端: ACK确认应答每包必确认确保按序到达超时重传未收到确认则重发滑动窗口流量控制动态调整发送速率拥塞控制防止网络拥塞导致的性能下降连接管理建立: 三次握手 → 数据传输 → 四次挥手(断开) 四次挥手: 主动关闭方: FIN → 被动方: ACK → 被动方: FIN → 主动方: ACKTIME_WAIT 状态主动关闭方等待 2 倍 MSL 时间防止旧连接数据包干扰新连接TCP 状态转换CLOSED → SYN_SENT → ESTABLISHED → FIN_WAIT_1 → ... → TIME_WAIT → CLOSED粘包问题原因TCP 面向字节流无消息边界解决消息定长、添加消息边界标记、头部携带长度字段MTU 对传输层影响TCP通过 MSS (最大段大小) 适应 MTU通常为 MTU-40 (IPTCP 头)UDP若数据包超过 MTU 且不允许分片会被直接丢弃 (导致丢包)应用层核心作用提供与用户应用交互的接口实现具体网络服务 (如网页浏览、文件传输)。核心组件HTTP 协议特点无连接、请求 - 响应模式、基于 TCP (端口 80/443)请求格式GET /index.html HTTP/1.1 Host: www.example.com User-Agent: ...响应格式HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1234 ...(body)版本HTTP/1.1 (持久连接)、HTTP/2 (多路复用)、HTTP/3 (基于 QUIC)DNS 协议功能将域名 (如www.baidu.com) 解析为 IP 地址工作流程客户端向本地 DNS 服务器发送查询本地 DNS 逐级查询 (根→顶级域→权威 DNS)找到对应 IP 后返回客户端优化DNS 缓存、负载均衡、HTTPDNS (防劫持)应用层协议设计原则分层设计与下层解耦专注应用逻辑消息格式定义请求 / 响应结构 (如 JSON、XML)错误处理定义错误码和恢复机制安全考虑认证、授权、加密 (如 HTTPS 的 TLS)网络通信全景应用层数据 → 传输层(TCP/UDP头) → 网络层(IP头) → 数据链路层(帧头FCS) → 物理层(比特流)层次关键特征核心协议寻址方式数据链路层本地通信以太网、ARPMAC 地址 (物理)网络层跨网路由IP、ICMPIP 地址 (逻辑)传输层端到端控制TCP、UDP端口号 (应用)应用层用户服务HTTP、DNS域名 (用户友好)总结网络通信是一场精密的接力赛每一层专注解决特定问题共同构建出可靠高效的全球互联网络。理解分层模型是掌握网络技术的基础。到这里我们有关OSI模型的四层就全部学习完了如果感到有收获的话还请点赞收藏那么我们下次再见