当前位置: 首页 > news >正文

网络通信IP细节

目录

1.通信的NAT技术

2.代理服务器

3.内网穿透和内网打洞


1.通信的NAT技术

        NAT技术产生的背景是我们为了解决IPV4不够用的问题,NAT在通信的时候可以对IP将私网IP转化为公网IP,全局IP要求唯一,但是私人IP不是唯一的。

将报文发给路由器进行转发的时候,,路由器有一张NATP表,记录了IP的替换情况,比如在一个局域网内我的客户端A要去访问我们的服务器,它就会将报文交给路由器,路由器将SRC转化为它的公网IP,再把这个报文交给我们的服务器,服务器往回发的时候DST就是运营商路由器的公网IP和端口,然后路由器收到我们的服务器的应答在路由器内取查它的NATP表,IP和端口全部对上,进行跳跃,接下来的就是局域网内进行转发的工作了。

我们一个局域网内可能同时有多台主机要去访问同一个服务器和端口,服务器返回的时候SRC都是相同的,它怎么把报文精准送达的呢?答案就是NATP表,每个路由器在对该局域网内的报文进行转发的时候都会构建一一对应的映射表,我们的运营商路由器的公网IP是全球唯一的,加上不同的端口,我们的这个IP+端口就是全球唯一的!

当我们把数据发送给运用商的路由器,它就会在它的内部构建一一对应的映射关系,为我们的私人IP分配一个端口,如果端口冲突,就会自动分配一个端口,拿着这个IP+端口去访问服务器就可以了。

所以如果我们的私人IP不向公网发请求的话,公网是无法随意访问我们的私人IP的,它没有NAPT映射表就找不到我们对应的主机,数据自然无法传输。

但是内网可以访问公网,因为在发送的过程中在路由器会建立NAPT表!返回的时候查NAPT表查到是哪个主机发的请求,再把请求返回给这个主机,我们就完成了内网对公网的访问。

所以当我们聊微信的时候,你必须先登录微信,对方也登录微信,才可以进行聊天,不就是因为我们的公网无法直接访问私人IP吗?需要内网IP先向公网发送数据,公网才知道你这个主机在哪里?才好给你进行消息的转发。

2.代理服务器

        我们校园网上网需要认证,认证是什么?不就是申请一个私人IP吗?

        这样我们访问数据客户端要先把请求交给校园网的机房,然后校园网构建应答,去互联网去发送请求,当请求返回来的时候再返回给对应的客户端。

        代理服务器有缓存查找和内容过滤的功能,我们可以把一些常用的资源缓存在本地,提高访问的效率,内容过滤就是当一些请求含有恶意网站的时候,不让它响应,直接丢掉。

也可以进行访问控制,比如不让你看腾讯视频,直接把腾讯视频的请求识别拦截,直接干掉,就无法访问这个网站了。

具体的应用是:

        上面的服务器是我们的正向代理,是客户端把请求全部交给服务器,让服务器统一去访问互联网。

        反向代理呢?反向代理就是,我们公司有很多服务器,然后为了统一调配,我们有一个前置Web服务器,服务器的响应全部交给Web服务器,然后有Web服务器再把响应返回给客户端。

反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先
会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web
服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际
与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。
有了反向代理服务器,可以实现负载均衡,实现高并发,还可以隐藏服务器真正的IP地址,还可以把一些常常访问的数据缓存在服务器里,加速访问,还可以进行内容过滤和重写。

总而言之,正向代理是代表客户端去和服务器。反向代理是代表服务器去和客户端。

我们的CDN就是利用了反向代理

由于我们的前端代码是公开的,也有对应的库和框架,但是如果每一份前端代码都带一个库和框架会浪费资源,所以把框架和库放在一个服务器上,如果需要就直接向服务器发起请求。

CDN背后是一个服务器集群,我只需要访问CDN,它帮助我和它连接的服务器进行交互。

3.内网穿透和内网打洞

        内网穿透就是把本地的某个端口给到云服务器,然后映射一个端口比如8080,然后我另一台主机如果想要时刻访问这个主机,我拿着映射的端口8080就可以访问到我们的本地主机了。

        它主要运用于让我们的能直接从公网访问到内网。

        而内网打洞呢,是利用NAT的特性,当我们把自己的报文发到同一台服务器,然后服务器把它们的报文互相交换,各自拿到对端的IP和端口,这样我们下一次进行访问的话就不用通过服务器了,直接进行通信了。

        本质就是互相拿到对方的入口路由器的IP和端口。

        我们数据返回的时候也因为拿到了我们数据来的时候入口路由器的公网IP和端口,根据NAT技术进行转发才进行应答的。

        我们之所以无法访问谷歌的网站是因为我们将我们的报文给我们的运营商的路由器它会对我们的链接做域名解析,发现你访问的是黑名单的连接会直接丢掉,我们为了学习了解一下原理,报文在第一步就被干掉了,连公网都没进去就没了,所以我们需要对我们的报文进行加密,把我们得分请求放在加密的数据里面,然后把它交给一个既可以访问国内的服务器,也可以访问国外的服务器的地区,比如香港,把报文发给香港,然后香港去访问外网,然后再把应答加密,发回给我们的主机,主机再对报文进行解密。

        

http://www.dtcms.com/a/364108.html

相关文章:

  • 【Vue】前端 vue2项目搭建入门级(二)
  • 嵌入式概述 与 51 单片机
  • 【单片机day01】
  • 第二章:技术基石:写出“活”的代码(1)
  • 什么时候需要使用虚继承,什么是菱形继承
  • HI3519DRFCV500/HI3519DV500海思核心板IPC算力2.5T图像ISP超高清智能视觉应用提供SDK软件开发包
  • 平衡车-ADC采集电池电压
  • 从 Arm Compiler 5 迁移到 Arm Compiler 6
  • HandyControl 解决不全局引入控件部分内容不显示问题
  • 论文学习30:LViT: Language Meets Vision Transformerin Medical Image Segmentation
  • 给大模型开卷考试的机会——写给开发者的 RAG 技术入门
  • 2025年女性最实用的IT行业证书推荐:赋能职业发展的8大选择
  • Shell编程从入门到实践:基础语法与正则表达式文本处理指南
  • RPM 构建错误: /var/tmp/rpm-tmp.gAmM5N (%prep) 退出状态不好,怎么办
  • HBuilder X 4.76 开发微信小程序集成 uview-plus
  • 关于IDE的相关知识之一【使用技巧】
  • GFSK信号生成算法原理详解
  • 避免侵权!这6个可免费下载字体网站能放心商用
  • 「数据获取」《安徽建设统计年鉴》(2002-2007)(2004、2006缺失)(获取方式看绑定的资源)
  • 【世纪龙科技】汽车专业数字化课程资源包-虚拟仿真实训资源建设
  • MYSQL配置复制拓扑知识点
  • 告别集成烦恼!H-ZERO iframe 支持第三方系统 / AI 助手轻松接入
  • 【机器学习入门】5.3 线性回归原理——从模型定义到参数求解,手把手带练
  • 模型常见训练超参数介绍(1)
  • Vue.js 中深度选择器的区别与应用指南
  • Corrosion: 1靶场渗透
  • 新手也能轻松选!秒出PPT和豆包AI PPT优缺点解析
  • 自学嵌入式第三十三天:网络编程-UDP
  • SpringMVC的RequestMapping注解与请求参数绑定
  • 六、结构化开发方法