Java学习 - 网络IP协议簇 讲解

IP协议

IP协议全称

  • Internet Protocol
  • 互联网互连协议

IP协议作用

  • 实现数据在网络节点上互相传输

IP协议特点

  • 不面向连接
  • 不保证可靠

IP协议数据报结构

组成 说明
版本 目前有IPv4和IPv6两种版本
首部长度 单位4字节,所以首部长度最大为 15 * 4 = 60字节
区分服务 不同服务的优先级不同,从而保证服务质量保证(QoS)
总长度 IP首部与数据部分字节之和,最大为 2^16-1个字节
片偏移 占13位,本分片再原始数据报文中相对首位的偏移位
生存时间 TTL,指数据包跳转次数剩余,最多255跳
协议 指明上层使用的协议,从而确定要给哪个进程
标识 IP协议软件中的一个数,用于唯一标识主机发送的数据报 在发出IP报文时,每个分片会被分配一个数 每分配一个报文,这个数加1,溢出则从0开始算 标识用于分片达到目的主机后进行重组
标志 最低位(MF):MF=1表示后面还有分片,MF=0表示已经是最后一个分片 中间位(DF):DF=1表示不允许分片,DF=0表示允许分片
  • 片偏移计算

  • 片偏移示例

ICMP协议

ICMP协议全称

  • Internet Control Message Protocol - 互联网控制报文协议

ICMP协议作用

  • 用于主机、路由器之间传递控制信息
  • 控制信息指:网络是否流畅,路由器是否可用,主机是否可达

ICMP协议使用

  • ICMP数据报一般被TCP/UDP协议使用,也可以被用户进程使用
  • 命令行使用:trace IP地址,即可看到IP数据包沿途所经过的路由器的信息

ICMP协议数据报传输

  • ICMP报文被封装再IP数据报内,随IP数据报进行传输

ICMP报文类型和代码

ARP协议

ARP协议全称

  • Address Resolution Protocol
  • 地址解析协议

ARP协议作用

  • 用于将以太网(局域网)中的IP地址解析为MAC地址
  • 因为当一个IP数据报来到一个局域网时,它不知道应该去哪个计算机,于是使用ARP协议发出一个广播,内容是你们谁的IP地址是xxx.xxx.xxx.xxx的,告诉我你的MAC地址,我发数据给你,目标计算机收到广播后,用ARP协议广播我是啊,我的MAC地址是yyyy
  • 点到点链路使用PPP协议,不需要ARP协议

ARP协议使用

  • 命令行使用:arp -a,看到本机存储的IP地址 <--> MAC地址的映射表

IGMP协议

IGMP协议全称

  • Internet Group Manage Protocol
  • 互联网组管理协议

IGMP协议作用

  • 用于组播功能的实现
  • 主机通过IGMP协议通知路由器希望接收或离开某个特定的组播组
  • 路由器通过IGMP协议周期性查询组播组中成员状态,维护组播组中成员的关系

组播是什么

  • 在发送者与每一个接收之间实现一对多的网络连接
  • 如果发送者需要给多个接收者发送相同的数据,只需要发送一份数据就行
  • 不用针对每个接收方都发送一份,提高了通信效率,减少资源使用
相关推荐
小辰记事本6 小时前
从零读懂RoCEv2数据包构造:从WQE到线缆上的完整旅程
服务器·网络·网络协议·rdma
Mahir086 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
辰海Coding6 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林6 小时前
cp520靶场学习笔记
android·笔记·学习
北京耐用通信7 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
RyFit7 小时前
SpringAI 常见问题及解决方案大全
java·ai
在角落发呆7 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
石山代码7 小时前
C++ 内存分区 堆区
java·开发语言·c++
心中有国也有家7 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
Upsy-Daisy8 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习