当前位置: 首页 > news >正文

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

组播是什么

  • 在发送者与每一个接收之间实现一对多的网络连接
  • 如果发送者需要给多个接收者发送相同的数据,只需要发送一份数据就行
  • 不用针对每个接收方都发送一份,提高了通信效率,减少资源使用

相关文章:

  • css-vxe列表中ant进度条与百分比
  • RabbitMQ消息队列 安装及基本介绍
  • STM32项目分享:家庭环境监测系统
  • 【mysql】关键词搜索实现
  • Highcharts 饼图
  • Python爬虫-贝壳二手房“改进版”
  • 深入了解 Android 中的 ViewStub
  • yolov8训练初体验
  • CSS的 text-decoration
  • 八大排序浅入浅出
  • Instagram APIj接口——快速获取Ins帖子媒体内容下载链接
  • python脚本获取本机IP的方式
  • Flume基础教程
  • 使用python下载图片且批量将图片插入word文档
  • 如何设置MySQL远程访问权限?
  • leetcode讲解--894. All Possible Full Binary Trees
  • opencv python Meanshift 和 Camshift
  • text-decoration与color属性
  • ubuntu 下nginx安装 并支持https协议
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用权重正则化较少模型过拟合
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 大数据全解:定义、价值及挑战
  • ​​​【收录 Hello 算法】9.4 小结
  • # .NET Framework中使用命名管道进行进程间通信
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • $refs 、$nextTic、动态组件、name的使用
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (学习总结16)C++模版2
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)memcache、redis缓存
  • (转)可以带来幸福的一本书
  • ******IT公司面试题汇总+优秀技术博客汇总
  • . Flume面试题
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net core docker部署教程和细节问题
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net Signalr 使用笔记
  • .Net 应用中使用dot trace进行性能诊断
  • .net和php怎么连接,php和apache之间如何连接
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET中GET与SET的用法
  • /proc/vmstat 详解
  • @Autowired @Resource @Qualifier的区别
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • [ 数据结构 - C++] AVL树原理及实现
  • [10] CUDA程序性能的提升 与 流
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——