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协议周期性查询组播组中成员状态,维护组播组中成员的关系

组播是什么

  • 在发送者与每一个接收之间实现一对多的网络连接
  • 如果发送者需要给多个接收者发送相同的数据,只需要发送一份数据就行
  • 不用针对每个接收方都发送一份,提高了通信效率,减少资源使用
相关推荐
xmh-sxh-13148 分钟前
jdk各个版本介绍
java
Koi慢热12 分钟前
路由基础(全)
linux·网络·网络协议·安全
CV学术叫叫兽20 分钟前
一站式学习:害虫识别与分类图像分割
学习·分类·数据挖掘
天天扭码28 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
程序猿进阶28 分钟前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
我们的五年31 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
FIN技术铺33 分钟前
Spring Boot框架Starter组件整理
java·spring boot·后端
小曲程序40 分钟前
vue3 封装request请求
java·前端·typescript·vue
一棵开花的树,枝芽无限靠近你1 小时前
【PPTist】添加PPT模版
前端·学习·编辑器·html
陈王卜1 小时前
django+boostrap实现发布博客权限控制
java·前端·django