Linux——网络(网络层—IP协议)

网络层:解析IP协议,地址管理,路由选择

IP协议头格式

详细介绍:

  • 4位版本号:指定IP协议的版本,对于IPv4来说就是4
  • 4位头部长度:以4字节为单位,IP报文头部最小20字节,最大60字节
  • 8位服务类型:3位弃用,1位固定0,4位服务类型:最小延时,最大吞吐量,最高可靠性,最小成本
  • 16位总长度:限制IP博文最大长度必须小于64k(包含IP报头在内)UDP应用数据:64k-28
  • 16位分片标识:标识当前数据分片属于哪个原始报文,用于接收端的数据分片重组

MTU:最大传输单元,链路层限制的最大数据帧大小(不包含以太头)——以太网默认1500

如果传输层数据小于64k-20,但大于MTU大小,则这个数据会在网络层进行数据分片,将这个数据分割成为多个小的数据分片,每个小分片封装IP报头进行传输

  • 3位标志:1位保留,1位禁止分片标志位,1位更多分片位
  • 13位片偏移:表示当前分片在原始报文中的位置(相对于起始位置的偏移量)13位能够表示的最大数字8191(无法表示所有的偏移量)
  • 8位生存时间:报文在网络中的最大生命周期(所能经过的路由器跳数---早期默认64,每经过一个路由器转发则-1,为0时被丢弃),防止路由环路中堆积数据
  • 8位协议:描述传输层使用的协议,用于接收端进行解析时,报文数据对于上层解析协议的选择
  • 16位首部校验和:校验数据一致性(每一层都有自己的数据校验,因为不是每个数据都会到达最上层)
  • 32位源IP地址+32位目的IP地址:描述通信两端主机
  • 数据:传输层交付下来的数据

地址管理:IP地址的管理

IP地址

IPv4中是无符号4字节整数(不到43亿),在网络中唯一标识一台主机,IP地址虽然多,但是不够用

解决方案

DHCP,NAT

DHCP基本介绍:https://baike.baidu.com/item/DHCP/218195?fr=aladdin

NAT基本介绍:https://baike.baidu.com/item/nat/320024?fr=aladdin

IP地址怎么合理分配才会避免冲突:按网络进行分配

每个网络负责指定一批IP地址的分配,每个网络指定的不同则分配就不会冲突了

路由器会对网络中的数据进行路径选择,必须能知道摸个地址属于哪个网络

IP地址组成

网络号+主机号

  • 网络号:IP地址所属网络的标识,一个网络中所分配的IP地址就会包含相同的网络号——通常所说的网段
  • 主机号:一个IP在所属网络中的标识

路由器给一个主机分配地址

取出当前网络的网络号加上还没有被分配的主机号

一个网络中,只要主机号分配不重复,则网络中的IP就不会冲突,只要所有网络的网络号不同,则整个网络的IP地址不会冲突

路由器转发数据时就能够根据对端IP地址这道这个IP属于哪个网络,然后进行转发

网段的划分

早期将网络或IP地址划分为五类:

  • A类:通常用于组件大型网络,网络号范围:0~127(共128个)每个网络中可以有256*256*256台主机,IP地址范围:0.0.0.0~127.255.255.255
  • B类:通常用于组件中型网络,网络号范围:128.0~191.255(共64*256个)每个网络中有256*256台主机,IP地址范围:128.0.0.0~191.255.255.255
  • C类:通常用于组件小型网络,网络号范围:192.0.0~223.255.255(共32*256*256个)每个网络中有256台主机,IP地址范围:192.0.0.0~223.255.255.255
  • D类:IP地址范围:224.0.0.0~239.255.255.255
  • E类:IP地址范围:240.0.0.0~247.255.255.255

早期划分网络过于粗糙造成大量的地址闲置浪费,因此当前是在基础上引入了CIDR方案进行网络划分:使用子网掩码进行网络划分

子网掩码

子网掩码也是一个uint32_t类型的数据,但这个整数必须有连续的二进制1组成

子网掩码决定了一个网络中可以有多少个主机号:子网掩码取反可以得到网络中的最大主机号,0~最大主机号就是主机号范围

子网掩码与IP地址相与可以得到网络号

特殊IP地址

  • 0.0.0.0——用于识别本机上的任意网卡地址(通常用于监听服务端程序的绑定监听地址)
  • 255.255.255.255——全网广播地址,把数据发送给这个地址,则与自己相连的设备收到数据都会认为是发送给自己的
  • 127.0.0.1——本地的虚拟机回环网卡地址,常用于本地的网络回环测试(自己给自己发送数据)
  • 主机号全为0的IP地址——就是一个网络号,用于表示网络,这个地址不能分配给主机
  • 主机号全为1的IP地址——这是一个UDP局域网广播地址,这个地址不能分配给主机

一个网络中能够连接的主机数是主机号-2

私有IP地址和公网IP地址

NAT:网络地址转换,通常用于组建私网中的一项技术

私网组建:IP地址不够用,因此划分私网(内网)和公网(外网),私网内的所有主机使用同一个公网地址进行上网,因为对外地址不同,因此不同的私网内部的私网地址可以重复

私网的IP地址对公网不可见(在RFC1918文档中规定,用于组建私网的网络有:10.*.*.*,172.16.*.* ~ 172.31.*.*,192.168.*.*)

私网中的主机向外发送数据,都会先发送给自己的网关路由器,由网关路由器转换源端地址为对外地址进行通信(源端地址--->网关公网地址)

私网之间只要不相连,私网地址就可以重复,就可以使用相同的网络号,但是相连的私网不能使用相同的网络号

路由选择

为流经网关设备的数据进行路径选择——依托于网络地址管理方式以及每个路由器上的路由表

路由器中都会有一张路由表,记录与自己设备相连的网络的网络信息(网络号、子网掩码、网关地址、自己连接这个网络的网卡)

每一条数据中都有目标主机IP地址,与路由表中的每一条网络信息进行匹配查看是否属于这个网络,然后发送到对应网络

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值