java网络原理5

一、网络地址转换(NAT)

1. 原理

  • NAT 用于解决 IP 地址不够用的问题 ,将 IP 地址分为外网 IP(公网 IP)和内网 IP(私网 IP)。内网 IP 如 10.、172.16 - 172.31.、192.168.* 等,家用路由器一般分配 192.168 开头的内网 IP 。

  • 一个局域网内设备共用一个外网 IP ,通过端口号区分不同设备的网络请求 。运营商路由器记录 IP 和端口的映射关系,如 NAPT(网络地址端口转换) ,当内网设备 A(192.168.0.10)访问外网服务器,源 IP 在内网是 192.168.0.10 ,经运营商路由器转换为外网 IP(如 5.6.7.8 ),同时记录端口映射(如源端口 1000 映射为新端口 1000 ),外网服务器响应时,路由器依据记录还原转发给 A 。

2. 作用及安全性

  • 提高了 IP 地址利用率,使得有限的公网 IP 能满足大量内网设备联网需求。

  • 增强网络安全性,内网设备对外相对隐藏,外部设备无法主动访问内网设备(除非内网设备先发起访问建立连接 ),类似设备在有门禁的小区,黑客难以直接攻击。

二、局域网(LAN)组网

1. 设备与 IP 分配

  • 家用网络中,光猫和路由器是关键设备 。光猫带有"光口"用于插光纤,也是一种路由器 。路由器有 WAN 口和 LAN 口,WAN 口连接运营商网络获取外网 IP(如 10.1.2.3.4 ),LAN 口分配内网 IP 给连接设备(如 192.168.0.1 ) 。

  • 路由器通过 DHCP(基于 UDP 应用层协议 )功能自动为局域网内设备分配 IP ,同一局域网内设备网络号相同(如 192.168.0 ),主机号不同 。若两个设备主机号相同会导致网络冲突,无法上网 。不同局域网网络号不能相同 。

2. 示例

  • 图中展示了一个网络拓扑,光猫连接主路由器,主路由器下连接多个设备,如我的电脑(192.168.0.200)、师娘的电脑(192.168.0.199 )等 ,不同颜色标识不同局域网 。

三、网络层 IP 协议

1. IP 数据报结构

  • IP 协议负责地址管理和路由选择 。IP 数据报包含多个字段,如 4 位版本(一般为 IPv4 的 4 或 IPv6 的 6 )、4 位首部长度、8 位服务类型(TOS)、16 位总长度(表示数据报字节数,最大 64KB ) 。还有 16 位标识、3 位标志、13 位片偏移用于分片重组;8 位生存时间(TTL ,每次经路由器转发减 1 ,为 0 时丢弃 ,常见取值 32、64、128 );8 位协议(区分是 TCP 还是 UDP 等传输层协议 );32 位源 IP 地址和目的 IP 地址等 。

2. 工作机制

  • 进行 IP 数据报转发时,路由器依据目的 IP 地址转发 。若目的 IP 错误,数据报不应在网络中无限转发 。IP 协议内置拆包组包过程(由操作系统处理 ) 。

四、传输层协议(TCP 和 UDP)

  1. UDP:用户数据报协议,是无连接、不可靠的传输协议 ,简单高效,常用于对实时性要求高、能容忍少量丢包的场景,如视频直播、在线游戏等 。

  2. TCP

  • 是面向连接、可靠的传输协议 ,通过确认应答、超时重传机制保证数据可靠传输 ;三次握手建立连接,四次挥手断开连接 ;采用滑动窗口、流量控制、拥塞控制等机制优化传输效率和网络性能 ;面向字节流处理粘包问题 ;通过心跳包等处理异常情况 。常用于对数据准确性要求高的场景,如文件传输、网页浏览等 。

五、IPv4 与 IPv6

1. IPv4 现状与问题

  • IPv4 地址数量有限(约 42 亿 ),在移动互联网时代设备剧增情况下地址紧张 。采用动态分配 IP 地址和 NAT 机制缓解地址不足问题 ,但 NAT 也带来一些网络穿透等方面的复杂性 。

2. IPv6 特点与推广

  • IPv6 地址空间极大,理论上可给地球上每个沙子分配地址 。其提出时间与 NAT 相近,但在全球普及程度低 ,国内普及程度达 80% 以上 。IPv6 和 IPv4 不兼容,设备升级到 IPv6 需更换支持 IPv6 的路由器等设备 。国内大力推广 IPv6 ,一方面是为了摆脱对 IPv4 体系(由美国主导 ,分配权在美国人手中 ,话语权受制约 )的依赖,另一方面提升网络自主性和安全性 。

六、VPN 原理

VPN(虚拟专用网络)本质是工作在应用层的代理 。通过在特定设备(如 C )上安装特殊程序转发请求 ,构造数据报从 A 访问 C 时,请求中包含真实要访问的 IP(B 的 IP ) 。在网络中,路由器相当于加了"墙" ,会禁用部分服务器 IP ,阻止非法或受限的网络访问 。但 VPN 若被用于非法活动(如访问不良信息、违规传输数据等 )是不被允许的 。

相关推荐
小鸡脚来咯3 分钟前
MVCC实现原理
java·开发语言·数据库
Ronin3058 分钟前
【C++】21. 红黑树的实现
开发语言·c++
Nightmare00412 分钟前
airflow学习
学习·airflow
小鹭同学_16 分钟前
Java基础 Day20
java·开发语言
五步晦暝31 分钟前
【EcelVBA】系统学习 ActiveX 控件
服务器·windows·学习
@作死星人34 分钟前
C# :HImage转Mat方法
开发语言·c#
浩浩测试一下36 分钟前
Apache OFBiz 17.12.01 的远程命令执行漏洞 -Java 反序列化 + XML-RPC 请求机制
xml·java·安全·web安全·网络安全·apache·安全架构
天天进步20151 小时前
C# Unity容器详解
开发语言·unity·c#
27669582921 小时前
开盘啦 APP 抓包 逆向分析
java·python·app抓包·抓包分析·开盘啦
啥都想学的又啥都不会的研究生1 小时前
log日志最佳实践
java·spring boot·后端·spring·junit·log4j·logback