【Java】网络层协议IP协议

网络层协议IP协议

  • IP协议
  • IP地址
    • NAT机制
  • IPv6

IP协议

【Java】网络层协议IP协议_第1张图片

  • 四位版本号:指定IP协议的版本,对于IPv4来说,就是4
  • 四位头部长度:IP头部的长度是多少个4字节,也就是头部长度*4的字节数,4bit位能表示的最大数字是,15,因此IP头部最大长度是60字节
  • 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留
    字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。
    这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于
    ftp这样的程序,最大吞吐量比较重要。
  • 16位总长度(total length):IP数据报整体占多少个字节。
  • 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每
    一个片里面的这个id都是相同的。
  • 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第
    二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表
    示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。
  • 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是
    在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,
    除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)
  • 8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是64。每次
    经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出
    现路由循环。
  • 8位协议:表示上层协议的类型。
  • 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。
  • 32位源地址和32位目标地址:表示发送端和接收端。
  • 选项字段(不定长,最多40字节):略

IP地址

IP地址(Internet Protocol Address)是在计算机网络中用于唯一标识和定位设备的一组数字。IP地址是网络通信中非常重要的概念,用于路由数据包以正确地将它们传递给目标设备。

IP地址由32位二进制数或IPv4(Internet Protocol version 4)格式表示,例如 192.168.0.1。每个IPv4地址由四个8位字段组成,每个字段用十进制表示,范围从0到255。IPv4地址的全球唯一性由Internet分配的机构进行管理和分配。

随着互联网的扩大和设备数量的增加,IPv4地址空间变得有限。为了解决这个问题,引入了更大的IPv6(Internet Protocol version 6)地址空间,它采用128位二进制数表示,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6提供了更多的地址容量,以应对日益增长的网络连接需求。

IP地址不仅可以用于标识设备,还可以用于确定设备所在网络的位置,以及用于网络通信中的路由和寻址等。

IP地址分为两个部分,网络号和主机号
网络号:标识网段,保证相互连接的两个网段具有不同的标识
主机号:标识主机,同一网段内,主机和主机之间具有相同的网络号,但是必须有不同的主机号

  1. 同一个局域网中的设备,网络号必须相同,主机号必须不同
  2. 两个相邻的局域网,网络号必须不同

一个IP地址。那部分是网络号,哪部分是主机号?
通过子网掩码来识别的
在这里插入图片描述
子网掩码和IP地址一样,也是4字节,32位的整数,左侧必须是连续的1,右侧必须是连续的0
此处我的电脑子网掩码转化为二进制就是11111111 1111111 11111111 00000000
此时前24个bit就是网络号,后8个bit位是主机号

NAT机制

NAT(Network Address Translation)是一种在计算机网络中常用的机制,用于在私有网络和公共网络之间转换IP地址。

在一个局域网(例如家庭或办公室网络)中,通常会有多台设备共享同一个公共IP地址。这些设备使用私有IP地址,例如 192.168.0.1、192.168.0.2等。当这些设备需要通过路由器连接到互联网时,NAT机制就发挥作用了。

具体来说,NAT将私有IP地址转换为公共IP地址,以便与互联网进行通信。当设备发送数据包时,路由器会修改数据包的源IP地址,将私有IP地址替换成公共IP地址。这样,在互联网上,数据包的源就是公共IP地址,而不是私有IP地址。

当互联网上的响应数据包返回时,路由器会根据转换记录将目标IP地址从公共IP地址转换回对应的私有IP地址,并将响应发送给正确的设备。

NAT的主要作用有以下几点:

节省公共IP地址:通过使用私有IP地址和NAT机制,多个设备可以共享少量的公共IP地址,从而避免了IP地址的浪费。
网络安全性:由于私有IP地址在互联网上不可直接访问,NAT提供了一定程度的网络安全性,隐藏了局域网中的具体设备。
网络管理:NAT可以实现端口映射(port forwarding),使得从互联网上访问私有网络中的特定设备成为可能。
总之,NAT机制在私有网络和公共网络之间起到了连接和转换IP地址的重要作用,使得多个设备可以通过共享少量的公共IP地址与互联网进行通信

IPv6

IPv6(Internet Protocol version 6)是互联网协议的一种版本,用于标识和定位网络上的设备。相比较IPv4,它拥有更大的地址空间,并提供了一些新的功能和改进。

以下是IPv6的一些主要特点:

扩展的地址空间:IPv6采用128位地址格式,相对于IPv4的32位地址,IPv6的地址空间大大扩展,理论上可以支持约340万亿亿亿亿(3.4×10^38)个不同的地址。

简化的地址表示:IPv6地址使用8组4位的十六进制数字表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。为了简化表示,IPv6允许省略连续的0,还可以使用双冒号(::)来代替一串0。例如:2001:0db8:85a3::8a2e:0370:7334。

自动地址配置:IPv6引入了一种称为SLAAC(Stateless Address Autoconfiguration)的机制,使得设备可以自动分配自己的IPv6地址,而无需手动配置或依赖DHCP服务器。

更好的移动性支持:IPv6在设计时考虑了移动设备的需求,提供了更好的移动性支持,使移动设备可以更方便地切换网络和保持连接。

安全性增强:IPv6内置了IPsec(IP security)协议,提供了更好的网络安全性,确保数据在传输过程中的机密性、完整性和认证性。

支持多播和任播:IPv6原生地支持多播(Multicast)通信,可以有效地在网络上传送数据给多个设备。此外,IPv6还引入了任播(Anycast)地址,使得数据包能够被路由到最近的目标设备。

随着互联网的发展和IPv4地址的枯竭,IPv6作为其替代方案逐渐得到广泛采用,以满足日益增长的网络连接需求。

你可能感兴趣的:(网络,Java,java,tcp/ip,网络)