IP协议详解

目录

一、IP协议头格式

二、IP地址、Mac地址

[2.1 IPv4](#2.1 IPv4)

[2.2 IPv6](#2.2 IPv6)

[2.3 Mac地址](#2.3 Mac地址)

三、IP路由转发

四、IP分包及组包


一、IP协议头格式

IP协议是网络层的重点协议。这里主要列举一下16位标识与3位标志以及13位片偏移。

16位标识(id): 唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每

一个片里面的这个id都是相同的。
3位标志字段: 第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第

二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表

示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。
13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移。其实就是

在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,

除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。

二、IP地址、Mac地址

IP地址组成

IP地址的组成分为两部分,网络号和主机号

  • **网络号:**标识网段,保证相互连接的两个网段具有不同的标识;
  • **主机号:**标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的

分类

将IP地址分为五类

子网掩码

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字"1"表示,1的数目等于网络位的长度;右边是主机位,用二进制数字"0"表示,0的数目等于主机位的长度。子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

2.1 IPv4

由于IPv4的局限性,导致ip地址在分配的过程中出现不足的现象。为了解决IPv4的局限性,采取NAT+动态分配的机制解决IPv4地址不足的现象。

这里的动态分配涉及到内网以及外网。内网是局域网组成的,在同一个局域网中动态分配的ip地址不能重复,但是在不同的局域网中是允许存在相同的IP的。外网IP是唯一表示,不能出现相同的外网IP。

  • 外网设备可以不需要任何的NAT与其他的外网设备进行通信。
  • 内网设备不能访问其他的内网设备
  • 外网设备不能访问内网设备
  • 内网设备可以访问外网设备

2.2 IPv6

这里不对IPv6做过多的介绍,因为现在的IPv6目前没有全面的启用,IPv6相对于IPv4来说只是多了许多IP地址而已。

2.3 Mac地址

Mac地址这里主要就是与IP地址进行一个对比,由于Mac地址是6字节48位所以这里不会有Mac地址不足的现象,所以Mac能够直接的决定电脑的网卡号,而且每个电脑有且只有一个Mac地址。

三、IP路由转发

IP协议的一个核心任务是数据报的路由,即决定发送数据报到目标机器的路径。

从右往左分析上图,当IP模块接收到来自数据链路层的IP数据报是,它首先对该数据报的头部做CRC校验,确认无误之后就分析其头部的具体信息。

四、IP分包及组包

由于在数据链路层承载的数据量是一定的,所以当超出范围的时候就会进行分包和组包。

**分包:**利用16位标识将分包的数据进行同一标识

**组包:**利用13位的片偏移将分包的顺序确定好。同时利用3位标志确定是否是分包,以及确定分包中的最后一个包。

相关推荐
上海安当技术5 小时前
固件签名与Secure Boot:安当CAS如何构建汽车固件信任链
网络·汽车·信任链·boot·secure·固件签名·安当cas
上海安当技术6 小时前
诊断接入认证:安当CAS如何堵住汽车网络安全的物理后门
网络·web安全·汽车·access·secure·安当cas·诊断接入认证
ze^06 小时前
【软考信息安全】第2章 网络攻击原理与常用方法
网络·web安全·网络安全
这个DBA有点耶6 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
arbboter7 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
消失的旧时光-19438 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
数据知道9 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
江畔柳前堤9 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
LabVIEW开发9 小时前
LabVIEW 通过以太网控制 Yokogawa WT3000 功率分析仪:tmctl.dll 与原始套接字方案
网络·labview·labview知识·labview功能·labview程序
xiaoxiangsiyan10 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns