JavaEE--IP协议

1.IP的报文结构

4位版本:IPV4

4位首部长度:IP报头的长度,与TCP相同,以4个字节为单位,最长为60字节,最短为20字节

8位服务类型(仅4位有效且互斥,只能有一位为1):1) 最小延时(传输过程中消耗的时间最短)  2) 最大吞吐量(单位时间内传输的数据尽可能多)  3) 最高可靠性(降低丢包概率)  4) 最小成本(节省系统开销)

16位总长度:整个IP数据包的长度,长度为0~64kb,IP自身实现了拆包组包的功能(如果携带的载荷超出长度上限,就会自动拆分成多个数据包,每个数据包携带一部分发送到对方后,再拼接好)

16位标识(用于拆包组包):区分哪些数据包要进行合并,如果多个数据包的16位标识相同,那么就说明这些数据包需要组合到一起

3位标志(用于拆包组包,只有2个有效):一个用来表示数据包是否触发了拆包,另一个结束标志,表示当前包是最后一个需要组包的部分

13位片偏移(用于拆包组包):要拼接的数据包的先后顺序

8位生存时间:一个IP数据包在网络上转发的最大次数(初始情况下,IP数据包有一个值TTL,每次数据包经过一个路由器的转发,TTL就减1,减到0后该数据包就会被丢弃)

8位协议 :标识载荷部分是哪种协议的数据包

16位首部校验和:仅针对IP报头的校验和

32位源IP地址/32位目的IP地址:表示发送端和接收端的IP地址(IP地址是一个32位的整数,通常采用“点分十进制”形式表示,例如192.168.1.1)

2.IP地址的数量限制

IP地址是一个32位的整数,最大大约为42亿,理论上来说不同的设备IP地址都不能重复,可能会出现IP地址不够用的情况,那么如何解决这个问题呢?

2.1 动态分配IP地址

动态分配IP地址,即设备上网时就分配IP地址,不上网就不分配,但这样的方法本质上没有增加IP地址的数量,只是缓解了IP地址不够用的问题,无法从根本上解决。

2.2 NAT机制(网络地址映射)

IP地址分为两大类:1) 私网IP(局域网内部使用):IP地址为10.*,172.16.*~172.31.*,192.168.*   2)公网IP(广域网使用):除私网IP外都是公网IP

NAT机制约定公网IP唯一,私网IP在不同局域网中可以重复,一个公网IP能够代表一组设备,NAT机制本质上没有增加IP地址的数量, 但极大提高了IP地址的复用性。

引入NAT机制后的通信:

• 同一个局域网内部,设备之间通信,由于一个局域网内部的设备之间的IP地址是不重复的,所以这些设备可以正常通信

• 广域网设备之间相互通信,广域网设备的IP地址唯一,所以可以正常通信

• 局域网1的设备和局域网2的设备通信,所属局域网不同,不允许进行通信

• 广域网设备主动访问局域网设备,不允许进行通信

• 局域网设备主动访问广域网设备,此时NAT机制就开始发挥作用,下图是该场景中的一个例子的简单流程

2.3 IPV6

正常情况下,我们通过上述动态分配+NAT机制来解决IP地址数量不够的问题,但其实没有从根本上解决问题,反而增加了网络的复杂程度,随着设备进一步增多,IP地址还是会不够用,这时候就引入了IPV6这个概念。IPV6,使用了更长的字节数(16个字节)来表示IP地址,IP地址的数量非常庞大,足够使用。

3.IP地址的基本规则

3.1 地址管理(网段划分)

处于同一个局域网的主机,都按照一定的规则分配IP地址。IP地址分为两个部分,前半部分是用于标识局域网的网络号,后半部分是用于区分同一局域网中不同主机的主机号。在同一个局域网中,主机之间的IP地址,网络号相同,主机号不同。两个相邻的局域网(连接同一个路由器,WAN口和LAN口处于不同局域网)网络号不能相同,反之不相邻的局域网网络号可以相同。

那么在IP地址中,到底哪些是主机号,哪些是网络号呢?这就需要引入子网掩码的概念。子网掩码,是一个32位的整数,前半部分都是1,后半部分都是0,不会出现01交替出现的情况,1的位置标识网络号,0的位置标识主机号,例如子网掩码255.255.255.0,前24位为1,后8位为0,说明前24位是网络号,后8位是主机号。

特殊的IP地址:1) 主机号全0:这样的IP地址表示网段,不能分配给主机   2)主机号全1:这样的IP地址表示广播IP,向广播IP发送数据,就会发送给局域网中的所有设备  3)127.*:这样的IP地址表示环回IP,往环回IP发送数据,接收方就是自己

3.2 路由选择

路由选择,就是在复杂的网络结构中,找出一条通往终点的路线,就像我们进行导航一样,立足于全局的数据,得到一个“最优路线”。但在网络中,由于每台路由器无法知道整个网络的全貌,路由器的寻路,无法做到“最优”只能做到“较优”,但是路由器可以知道附近的网络设备情况。对于路由器来说,在进行转发数据时,可能无法很快知道目的IP对应的设备如何到达,只能通过“启发式”,“探索式”的方式找到最终目标。

“启发式”的过程:每个路由器虽然无法感知网络结构的全貌,但是可以感知到周围的网络设备,在路由器中,会维护一个数据结构,用于记录周围的网络设备,称为路由表。当路由器收到数据时,就会根据目的IP,在路由表中进行查询,看是否存在,如果存在则继续按照目标的位置转发,反之就会转发给路由表中的“下一跳表项”(与路由表生成算法有关,这里不做过多介绍)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值