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位标志确定是否是分包,以及确定分包中的最后一个包。

相关推荐
petaexpress9 分钟前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
m0_609000422 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
suifen_5 小时前
RK3229_Android9.0_Box 4G模块EC200A调试
网络
铁松溜达py5 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
衍生星球10 小时前
【网络安全】对称密码体制
网络·安全·网络安全·密码学·对称密码
掘根10 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全
友友马11 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
2401_8725149711 小时前
深入探究HTTP网络协议栈:互联网通信的基石
网络·网络协议·http
chenjingming66612 小时前
windows使用tcpdump.exe工具进行抓包教程
网络·测试工具·tcpdump