【Java EE】IP协议
IP协议详解IP协议基础IP数据报格式IP数据报分片机制地址管理IP地址的表示与分类子网划分与子网掩码特殊IP地址私有IP地址与NATIPV6路由选择路由表与转发域名系统DNS层次结构与解析过程DNS记录类型IP协议基础IP协议工作在OSI模型的网络层或TCP/IP模型的网际层其主要特点是无连接、不可靠和尽力而为的数据传输服务。无连接通信前无需建立连接每个数据包IP数据报独立路由。不可靠不保证数据包一定能送达目的地也不保证按序到达不提供确认和重传机制。可靠性由上层协议如TCP保障。尽力而为尽最大努力交付数据包。下面是 TCP/IP 协议栈的层次结构示意图IP 协议位于网际层网络接口层EthernetWiFiPPP网际层IPICMPARP传输层TCPUDP应用层HTTPFTPSMTPDNSIP数据报格式一个IP数据报由首部和数据两部分组成。首部包含了路由和交付所需的所有控制信息。关键字段说明字段位数说明版本4位标识IP协议版本对于IPv4数据包该字段的值固定为 4对于IPv6数据包其版本字段的值则为 6首部长度4位以4字节为单位指示首部长度可能包含可变长的选项字段如时间戳、源路由等因此首部长度是可变的服务类型8位用于指示数据报的优先级、延迟、吞吐量等要求总长度16位定义整个IP数据报首部数据的长度最大65535字节标识、标志、片偏移—用于IP数据报分片与重组生存时间8位数据报在网络中可经过的最大路由器跳数每经过一个路由器减1为0时被丢弃防止数据报无限循环协议8位指示上层协议如下面的常见上层协议的标识号补充列表所示首部检验和16位用于校验首部在传输过程中是否出错源IP地址和目的IP地址各32位数据报的发送方和接收方的逻辑地址常见上层协议的标识号补充列表协议号协议名称说明1ICMP互联网控制消息协议2IGMP互联网组管理协议6TCP传输控制协议17UDP用户数据报协议47GRE通用路由封装协议50ESP封装安全载荷协议51AH认证头协议88EIGRP增强型内部网关路由协议89OSPF开放最短路径优先协议115L2TP第二层隧道协议这些标识号在IP报文头部的「协议」字段中使用用于指示IP数据包承载的上层协议类型。IP数据报分片机制由于不同物理网络的最大传输单元MTU各不相同如以太网MTU为1500字节而某些广域网链路MTU可能更小当IP数据报的总长度超过下一跳链路的MTU时IP协议会自动将数据报拆分成多个较小的数据报这个过程称为分片。分片后的每个数据报都拥有与原数据报相同的标识字段以便接收端识别它们属于同一个原始数据报。分片相关的三个关键字段标识源主机为每个原始数据报分配的唯一编号所有分片共享该标识用于重组时归并。标志3位标志位其中DFDon’t Fragment置1表示不允许分片若数据报超过MTU则直接丢弃并返回ICMP错误。MFMore Fragments置1表示后面还有更多分片置0表示这是最后一个分片。片偏移以8字节为单位指示当前分片在原始数据报中的偏移位置用于重组时按顺序拼接。分片只在路由器上进行重组则在目的主机完成。IP协议本身不提供重传机制如果某个分片丢失整个数据报都会被丢弃可靠性由上层协议如TCP保障。地址管理IP地址是IP协议中用于唯一标识网络中设备的逻辑地址。IP地址的表示与分类IPv4地址是一个32位的二进制数通常用点分十进制表示如192.168.1.1。图传统的IP地址分类A、B、C、D、E类类别前缀二进制位网络号位数主机号位数用途A类08位24位用于大型网络B类1016位16位用于中型网络C类11024位8位用于小型网络D类1110--用于多播E类1111--保留子网划分与子网掩码分类地址浪费严重子网划分允许将一个大的网络号A、B、C类划分成多个更小的子网。子网掩码是一个32位的数字它由一串连续的1后跟一串连续的0组成。1对应网络号和子网号部分0对应主机号部分。通过与IP地址进行“按位与”操作可以提取出网络地址。图子网掩码用于区分IP地址中的网络部分和主机部分例如一个C类地址192.168.1.0/24使用子网掩码255.255.255.224或/27可以将其划分为多个子网。图将一个C类网络划分为多个子网的计算过程特殊IP地址类型示例或格式用途网络地址192.168.1.0主机位全0标识网络本身不分配给具体主机。直接广播地址192.168.1.255主机位全1向该网络内所有主机发送数据包。受限广播地址255.255.255.255仅在本地网络内广播路由器不转发。本机环回地址127.0.0.1测试本机网络协议栈数据不离开主机。链路本地地址169.254.0.0/16DHCP失败时自动分配用于本地通信如Windows的APIPA地址。补充说明网络地址和直接广播地址的主机位规则适用于所有IPv4地址如A/B/C类网络。链路本地地址范围是169.254.0.1至169.254.255.254RFC 3927。私有IP地址与NAT为了缓解IPv4地址枯竭问题RFC 1918规定了三类私有IP地址范围这些地址不能在公网上路由主要用于内部网络。网络地址转换是使私有网络能够访问公网的关键技术。NAT路由器将内部私有IP地址和端口号映射为公网IP地址和端口号。NAT地址转换可视化网站图NAT网络地址转换工作流程示意图IPV6为了解决地址枯竭问题~IPv6路由选择IP协议的核心功能之一是通过路由选择将数据包从源主机传递到目的主机。路由表与转发每个路由器或主机都维护一张路由表表项通常包含目的网络地址、子网掩码、下一跳地址、出接口等。图一个典型的路由表结构包含网络地址、掩码、网关和接口补充转发过程路由协议域名系统域名系统将人类可读的域名如www.example.com转换为机器可读的IP地址。DNS层次结构与解析过程DNS是一个分布式的、层次化的数据库系统。根域名服务器.顶级域名服务器.com顶级域名服务器.org顶级域名服务器.net顶级域名服务器.edu顶级域名服务器.cn权威域名服务器example.com权威域名服务器google.com权威域名服务器wikipedia.org权威域名服务器baidu.com.cn子域名服务器www.example.com子域名服务器mail.example.com子域名服务器www.google.com子域名服务器maps.google.com子域名服务器en.wikipedia.org子域名服务器www.baidu.com递归/迭代查询过程主机向本地DNS服务器发起递归查询。本地DNS服务器代表主机向根域名服务器、顶级域名服务器、权威域名服务器进行迭代查询最终获得IP地址。本地DNS服务器将结果返回给主机并可能缓存起来。DNS记录类型记录类型说明例子A记录将域名映射到 IPv4 地址example.com→93.184.216.34AAAA记录将域名映射到 IPv6 地址example.com→2606:2800:220:1:248:1893:25c8:1946CNAME记录域名别名将一个域名指向另一个域名www.example.com→example.comMX记录邮件交换记录指定负责接收邮件的服务器并带有优先级example.com→mail.example.com(优先级 10)NS记录指定该域名的权威域名服务器example.com→ns1.example.comTXT记录存放任意文本信息常用于 SPF、DKIM、DMARC 及域名验证example.com→vspf1 include:_spf.google.com ~allSOA记录授权起始记录包含管理信息主DNS、管理员邮箱、序列号等example.com→ns1.example.com adminexample.com 2024052401 3600 …PTR记录指针记录用于反向解析IP 地址 → 域名34.216.184.93.in-addr.arpa→example.comSRV记录服务定位记录指定特定服务的主机名和端口_sip._tcp.example.com→sip.example.com:5060CAA记录证书颁发机构授权限制谁能签发证书example.com→0 issue letsencrypt.org