以太网之IP协议(七)

news2024/9/20 22:29:52

目录

一、IP协议的功能

1.1 IP地址

1.2 IP路由

1.2.1 路由原理

1.2.2 路由控制表

1.3 IP分包与组包

二、IP地址

2.1 IP地址分类

2.2 多播地址

2.2.1 广播地址

2.2.2 组播地址

2.3 子网掩码

三、IP帧格式


一、IP协议的功能

        数据链路层提供直连两个设备之间的通信功能。与之相比,作为网络层的IP则负责在没有直连的两个网络之间进行通信传输。

        IP大致分为三大作用模块,它们是IP寻址、路由以及IP分包与组包。

1.1 IP地址

        IP地址属于网络层地址,用于在连接到网络中的所有主机中识别出进行通信的目标地址。

1.2 IP路由

        路由控制是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。

1.2.1 路由原理

        多跳路由是指路由器或主机在转发IP数据包时只指定下一个路由器或主机,而不是将到最终目标地址为止的所有通路全都指定出来。因为每一个区间(跳)在转发IP数据包时会分别指定下一跳的操作,直至包达到最终的目标地址。

        在路由过程中,IP数据包在经过路由器里面的目标MAC地址为重新被封装,替换成下一个路由器的MAC地址,这个过程是反复进行的,直到路由到最终目标主机是,MAC地址才会被替换为最终目标主机的MAC地址。

1.2.2 路由控制表

        为了实现数据包在不同子网间的路由,所有的路由器主机都各自维护这一张路由控制表。该路由表记录着不同子网网段与路由器的映射关系,在IP数据包传输过程,判断目标主机子网对应的路由器进行路由。

        路由控制表有两种形式,分别为静态路由控制、动态路由控制。

1.3 IP分包与组包

        IP是实现多个数据链路之间通信的协议。由于数据链路种类多样,各有各的差异,而IP协议是将其抽象在数据链路层之上的网络协议,从而支持不同数据数据链路之间的通信。

        在以太网中,数据帧最大传输长度为1500字节。为了实现更大数据包的传输,IP协议支持数据包的分片传输,将数据包分片传输到目标主机上再进行分片重组。

        不过,由于IP协议是面向无连接的通信协议,其传输存在不可靠性,所以尽可能不使用IP的分片重组进行大数据包的传输,而是使用其他传输层协议。例如TCP的分段传输。

        备注:当前很多主机实现了路径MTU发现功能,原理是通过较大的一个数据包禁止分片发送,当路径上的MTU不满足时会通过ICMP报错并返回当前报错的MTU值。多次调整MTU值就可以测试出到目标主机的最小MTU值了,即路径MTU。

二、IP地址

        IPv4的地址由32比特位的数据来标识,其由“网络地址”和“主机地址”两部分组成。

2.1 IP地址分类

        根据网络标识将IP地址分为4个类别,分别为A类、B类、C类、D类IP地址。

  • A类地址:前1位为“0”,第1位~第8位为网络标识,其网络地址为0.0.0.0~127.0.0.0。
  • B类地址:前2位为“10”,第1位~第16位为网络标识,其网络地址为128.0.0.1~191.255.0.0。
  • C类地址:前3位为“110”,第1位~第24位为网络标识,其网络地址为192.168.0.0~239.255.255.0
  • D类地址:前4位为“1110”,第1位~第32位为网络标识,224.0.0.0~239.255.255.255是D类的网络地址,没有主机标识,常用为多播地址。

        备注:在IP地址中,主机标识不能全为0或全为1,因为全部为只有0在表示对应的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。

        备注:为了规范私有局域网内的IP地址设置,规定了私有网络的IP地址范围为:

2.2 多播地址

        多播地址分为广播地址、组播地址两类。

2.2.1 广播地址

        广播地址:用于在同一个链路中相互连接的主机之间发送数据包。FF:FF:FF:FF:FF:FF。

  • 本地广播:在本网络内的广播叫做本地广播,并不会到达路由器之外的其他链路上。
  • 直接广播:不同网络之间的广播,需要路由器配置支持转发,存在一定的网络安全。

2.2.2 组播地址

        组播地址使用D类地址进行,其范围为224.0.0.0~239.255.255.255。其中,224.0.0.0~224.0.0.255,不需要路由控制,也能实现在同一个链路内的组播。其余的组播地址会给全网内的组成员发送组播包,必要的时候可以利用生存时间TTL限制组播包的到达范围。

2.3 子网掩码

        一个IP地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比A类、B类、C类更小粒度的网络。降低直接A类、B类、C类地址这种浪费资源的形式。

三、IP帧格式

(1)版本:IP协议的版本,0x0100(IPv4),0x0110(IPv6)

(2)首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和,最大长度为15个4字节,即15*4=60字节,去掉固定长度20字节,可变长度最大为40字节

(3)服务类型:长度为1字节

(4)总长度:IP报文的总长度,含报文头部以及数据部分

(5)ID号:标识主机发送的报文唯一ID,当IP报文长度超过传输网络的MTU时必须要分片处理,该字段用于区分收到的分片是否属于同一报文以及报文重组

(6)标志:共3位,R、DF、MF三位,目前只有后两者有效;DF=1表示不分片,DF=0表示分片;MF=1表示后续还有分片包,MF=0表示该分片是最后一片

(7)分片偏移:该分片在原先数据报文中相对首位的偏移位,片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节的整数倍

(8)生存时间:IP报文所允许通过的路由器的最大数量

(9)协议号:指出IP报文携带的数据使用的是那种协议,1 ICMP;6 TCP;17 UDP

(10)首部校验和:计算IP头部的校验和,检查IP报头的完整性。

(11)发送方IP地址:标识IP数据报的源端设备

(12)接收方IP地址:标识IP数据报的目的地址

(13)可选字段:0-40字节,一些可选项,主要用于测试,不足32bit则用0补充。

(14)IP数据:IP层MTU为1480字节,这是在MAC层MTU1500基础上去掉固定头部长度20字节得到的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux系统编程】Linux编辑器——vim

文章目录 1. 什么是vim2. vim的常用模式3. vim的基本操作4. vim命令集4.1 命令模式命令集复制粘贴依次撤销上一次操作对撤销进行撤销(恢复)剪切&删除移动光标(上下)移动光标(左右)文本内容大小写切换替…

javaTCP数据报套接字编程

TCP套接字编程 1.ServerSocket API1.1ServerSocket 的构造方法1.2ServerSocket 方法: 2.Socket API2.1Socket构造方法2.2Socket方法 3.TCP回显服务器4.TCP中的长短连接5.C10M问题 TCP提供的API主要有两个类:一个是专门给服务器用的SeverSocket对象&#…

MyBatis-Plus框架

说明&#xff1a;Mybaits-Plus是Mybatis框架的升级&#xff0c;该框架提供了一系列API&#xff0c;用于操作数据&#xff0c;可以免受手搓SQL语句的痛苦。 一、使用 第一步&#xff1a;添加依赖 使用前&#xff0c;需先添加对应的依赖&#xff0c;建议使用最新的版本 <d…

有什么事让你觉得在Linux上顺理成章,换到Windows上就令你费解?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

Linux红帽认证适合哪些人学习

近几年来&#xff0c;技术的迭代速度越来越快&#xff0c;云计算&#xff0c;大数据&#xff0c;人工智能&#xff0c;物联网等技术扑面而来&#xff0c;全球各大互联网公司都在抢先发展这些技术&#xff0c;而无一例外的这些技术背后都是使用的Linux系统&#xff0c;双11&…

JAVA_SSM Demo(WEB端)

仓库地址&#xff1a;https://gitee.com/ThMyGitee/SSMDemo.git CSDN的友友们&#xff0c;项目如果适合您的话&#xff0c;麻烦给个小小的Star&#xff0c;谢谢啦&#xff01; JAVA_SSM Demo(WEB端) 1.开发环境 JDK1.8 Tomcat 8.5.60 IDEA 2019.3 MySQL 5.7.20 Maven 3.6 S…

USB协议总结

1、简介 在了解USB协议之前&#xff0c;先了解下该总线协议出现的背景。在USB总线出现之前&#xff0c;计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接&#xff0c;不同设备的接口不能互用&#xff0c;扩展性很差。每次插拔设备都要关闭计算机&#xff0c;不支持热插…

【Matlab】智能优化算法_麻雀搜索算法SSA

【Matlab】智能优化算法_麻雀搜索算法SSA 1.背景介绍2.数学模型3.文件结构4.伪代码5.详细代码及注释5.1 Get_Functions_details.m5.2 main.m5.3 SSA.m 6.运行结果7.参考文献 1.背景介绍 麻雀通常是群居的鸟类&#xff0c;有很多种类。它们分布在世界的大部分地区&#xff0c;喜…

TI毫米波雷达软硬件概述

TI毫米波雷达概述 1.TI毫米波雷达传感器芯片及分类&#xff1a;1.1 工业毫米波雷达传感器器件选型应用场景 1.2 汽车毫米波雷达选型使用场景 1.3 基于AWR2243 的 TI 级联雷达 &#xff1a;1.4 不喜欢看文字的也可以戳视频-> 2. TI软件入门概述&#xff1a;2.1 TI RadarToolb…

【C】指针详解(一篇文章带你玩转指针)

指针详解 指针是什么&#xff1f;指针和指针类型指针加减整数指针的解引用 野指针野指针的成因如何规避野指针 指针和数组的关系数组名是什么&#xff1f; 二级指针二级指针是什么&#xff1f;二级指针的运算 字符指针指针数组和数组指针指针数组数组名和&数组名数组指针数…

开源一款轻量线程池项目

基于Arrow的轻量线程池 大家好&#xff0c;我是光城&#xff0c;最近花了几周业余时间&#xff0c;开发出这款轻量线程池&#xff0c;代码也全部开源啦&#xff0c;欢迎大家star。 本线程池的设计与实现会有涉及非常多的知识&#xff0c;这些内容也都会以视频的方式分享在知识星…

分析气象数据:向Python Cartopy地图中添加循环点

大家好&#xff0c;在使用Python和Cartopy对气候数据进行可视化分析的过程中&#xff0c;有一个叫做循环点&#xff08;cyclic point&#xff09;的术语&#xff0c;它在地理空间栅格数据可视化领域中很重要。 1.循环点的定义和作用 有时&#xff0c;当我们试图绘制地理空间数…

性能测试的基本概念和重要指标

这里写自定义目录标题 一、什么是性能测试二、为什么要学习性能三、性能测试与功能测试的区别1、性能测试和功能测试的区别&#xff1f;2、性能测试是在什么时候做?3、我们在做我们的产品的时候&#xff0c;我们只做功能不做性能可不可以&#xff1f;4、性能测试主要是这几个方…

金融计量学第2课堂-金融时间序列线性模型

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 一、相关性和平稳性 1、相关性 &#xff08;1&#xff09;皮尔森相关系数 皮尔森相关系数是最常见、最常用的一个相关系数计算方法。作为衡量两个随机变量x和y线性相关程度的重要指标&#xff0c;在这…

赋能智能智造-RK3568智能主板助力机器人产业高速发展

机器人作为现代制造业的重要一环&#xff0c;正在以惊人的速度推动着生产效率和智能化水平的提升&#xff0c;它们在生产线上的准确操作和高效工作&#xff0c;为企业带来了巨大的竞争优势。关于工业机器人的编程和控制技术&#xff0c;在过去几年中已经有了很多发展和新的应用…

十.Redis持久化

十.Redis持久化 一&#xff1a;RDB持久化二&#xff1a;AOF持久化三&#xff1a;扩展 redis持久化 Redis是内存数据库&#xff0c;如果不将内存中的数据库状态保存到磁盘&#xff0c;那么服务进程退出&#xff0c;服务器中的数据库状态也会消失&#xff0c;所以Redis提供了持久…

《Spring系列》第18章 监听器Listener

前言 陆续阅读了Spring Boot源码中&#xff0c;有不少地方都用到了监听器。每次看到监听器的代码都一头雾水&#xff0c;不懂其中的设计理念&#xff0c;这次决定肝一篇监听器的博文。 一、监听器 1.概述 何为监听器&#xff1f;就是用来监听程序执行的。监听器可以做什么事…

青岛大学_王卓老师【数据结构与算法】Week05_03_队列的定义和特点_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

Vue3通透教程【十七】Vite构建TS版本Vue项目

文章目录 &#x1f31f; 写在前面&#x1f31f; 创建TS版本的Vue3项目&#x1f31f; 插件安装&#x1f31f; 写在最后 &#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相关技术文章&#…

DocFastSearchTool(文档快速搜索工具)开发日志

目录 项目介绍 项目调研背景 项目需求分析 开发环境 项目涉及基础知识点 项目设计 设计基础 项目框架or架构 项目框架的搭建 系统工具模块--遍历目录 SQLite数据库 在Windows上安装SQLite SQLite命令 SQLite-C/C的API 安装SQLite源码 数据库操作的重要接口 连接…