JAVA EE_网络原理_网络层
晨雾散尽,花影清晰。
----------陳長生.
❀主页:陳長生.-CSDN博客❀
📕上一篇:数据库Mysql_联合查询-CSDN博客
1.IP协议
1.1.基本概念
IP协议是网络层的核心协议,负责将数据从一端传送到另一端
主机:有IP标识,但没有路由选择
路由:既有IP标识也有路由选择
节点:图中的任意一个图形都为节点(即任意主机和路由器)
1.2.协议头格式
4位版本:指IP协议版本,标识IPv4,目前常用的有IPv4和IPv6。
4位首部长:以4字节为单位表示IP头部长度。
8位服务位:实际上只有4位服务位,分别是最大吞吐量(传输速率),最小延迟(发送和接受数据的时间),最高可靠性(减少丢包率),最小成本(对应时间内消耗最少),4个服务位具有唯一性,也就是同一时间只有有一个服务位进行。
16位总长度:长度为64kb的长度,当超过64kb就会进行数据分组。
16标识:会为分组后的数据包提供IP报头,便于后续重组数据。
13位片偏移:为传输的数据保证顺序性。
3位标志位:有一位不使用,有一位禁止分片,有一位作为数据传输的结束标志。
8位生存时间:数据在传输时,会经历多个路由点,我们将数据传送到下一个路由器位“下一条”,那么8位生存时间一般表示为32/64/128跳,如果超出了,那么就丢弃该数据包。
8为协议:描述当前的数据包应该使用哪种协议。
16位首部校验和:用于校验数据包是否正确,如JAVA EE_网络原理_UDP与TCP-CSDN博客中讲解的校验和相同。
2.地址管理
2.1.网络划分
可将网段划分为网络号和主机号
网络号:相同局域网中的网络号必须相同,不同局域网中的网络号必须不同。
主机号:相同局域网中的主机号必须不同(若相同会产生两个一样IP地址的主机,那么这两台主机就会竞争一个IP地址而导致上不了网),不用局域网中的主机号可以相同。
我们有可以将网络划分为3类
A类:8位网络号,24位主机号(大范围)
B类:16位网络号,16位主机号(中范围)
C类:24位网络号,8位主机号(小范围)
2.2.特殊的IP地址
网络号:主机位全为0,代表该段的整段子网
广播地址:主机位全位1,代表该段子网的广播IP,往这个IP上发送数据,该段子网的其他IP也能接收0到
环回地址:IP为127.0.0.1,可以自己发送数据自己接收,一般用于测试,例如:本地服务测试,网络协议验证,开发调试,安全隔离
2.3.私有IP地址和公网IP地址
2.3.1.私有IP地址
即局域网中使用的IP地址
地址范围可分为:
- 10.*
- 127.16.*~127.32.*
- 192.168.*
2.3.2.公网IP地址
除了私网中的范围其余都是公网IP地址
2.4.IP地址的数量和限制
目前最常用的为IPv4,它的数量为2^32 大约45亿左右,这个数量在早期的网络环境中是完全够用的,但随着网络越来越发达,IP地址愈发紧张,那么总有办法来缓解IP紧张的问题。
2.4.1.动态分配IP地址
因为地球不同的地方有时间差,就举例中国和美国,昼夜颠倒,当中国人晚上休息的时候,他们手机上的IP地址是空闲的,但因为时间差,美国这时候就就为白天,使用手机和电脑的人就多了,那么就可以将中国地区的IP地址暂时给美国地区的人使用,这便是动态分配IP。
这个办法在早期是有用的,但是人口越来越多,这种办法也没法有效缓解IP紧张的情况。
2.4.2.NAT机制(网络地址映射)
假设有A和B两个设备
- 在相同局域网中,A和B设备可以直接通信。
- 在不同局域网中,A和B不能直接通信。
- 若A为内网的IP,B为外网的IP,A可以访问B,B不能访问A(应为外网B是唯一的,但内外A不是唯一的,所以B不知道要访问哪个A),但是B可以通过A的访问路径来找到A
2.4.3.路由选择
路由选择是一种探索式,启发式的发送数据的方式,一个路由器不知道数据目的地的时候,会向相邻路由器发送数据,此时相邻的路由器也不知道数据目的地,于是又向相邻路由器发送数据,当发送次数超出最大限制时,就会停止发送,丢弃该数据。
以下面为例: 长生与小美是异地恋,都处于不同的位置,那么他们在网络上聊天的时候,数据就会从长生位置的路由器开始找对方位置,如果找不到,那么就会往更大的范围的路由器去找,依次到Y1省时,它知道小美在X1省,那么就会向X1省发送数据,此时依次向下路由器寻找,直到找到小美所在的区域。