网际协议

网际协议:因特网中的转发和编址

IPv4数据报格式#

字段 长度 描述
版本 4 数据报的版本,通过版本号,路由器能够确定如何解释IP数据报的剩余部分
首部长度 4 确定IP数据报的数据部分实际从哪里开始
服务类型 8 用来区分不同类型的IP数据报
数据报长度 16 表示IP数据报的总长度(首部加数据),以字节计,理论最大长度为65535字节
标识、标志、片偏移 16、3、13 与IP分片相关,但在IPv6中不允许路由器对分组分片
寿命(Time-To-Live, TTL) 8 用来确保数据报永远(如由于长时间的路由选择环路)在网络中循环。
上层协议 8 指示IP数据包的数据部分应交给哪个特定的运输层协议
首部检验和 16 首部检验和用于帮助路由器检测收到的IP数据报中的比特错误
源和目的IP地址 32、32 当某源生成一个数据报时,它在源IP字段中插入它的IP地址,在目的IP地址中插入其最终目的地的地址,通常源主机通过 DNS 查找来决定目的地址。
选项 32 选项字段允许IP首部被扩展,但在IPv6中被去掉
数据(有效荷载) 变长 IP数据报中的数据字段通常包含要交付给目的地的运输层报文段,也可用承载其他类型的数据

每当数据报由一台路由器处理时,TTL的值减1。如TTL字段减为0,则该数据报必须丢弃

最大传送单元(Maximum Transmission Unit, MTU):一个链路层帧能承载的最大数据量。

IPv4编址#

编址规则#

  • 接口(interface):主机与物理链路之间的边界;
  • 子网(subnet):分开主机与路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离的网络端点,这些隔离的网络中的每一个都叫做一个子网
  • 子网掩码(network mask):用于指示32位比特中最左侧X比特定义了子网地址,记为/x,例如192.168.2.16/24,标识192.168.2为子网地址,16为主机地址;
  • 分类编址(classful addressing):将具有8、16、24比特子网地址的子网分别称为A、B、C类网络;
  • 地址聚合(address aggregation):使用单个网络前缀通告多个网络的能力;

无类别域间路由选择(classless Interdomain Routing, CIDR)#

CIDR将子网寻址的概念一般化,32比特的IP地址被分为两部分,并且也具有点分十进制数形式a.b.c.d/x

  • 其中$x$指示了地址的第一部分的比特数,这部分构成了IP地址的网络部分,并且经常被称为该地址的前缀(prefix);
  • 剩余$32-x$比特可认为是用于区分组织内部设备的,其中所有设备具有相同的网络前缀;

设备地址分配#

1、获取一块地址
ICANN-->ISP-->组织
2、获取主机地址
组织-->主机

动态主机配置协议(Dynamic Host Configuration, DHCP)#

DHCP允许主机自动获取(被分配)一个IP地址,该协议具有能将主机连接进一个网络相关方面的自动能力(即插即用);

  • DHCP服务器发现:一台新到的主机的首要任务是发现一个与其交换的DHCP服务器,使用DHCP发现报文(DHCP discover message)并通过广播来完成;
  • DHCP服务器提供:DHCP服务器收到一个DHCP发现报文时,用一个DHCP提供报文(DHCP offer message)通过广播向客户作出回应,报文中包括收到的发现报文事务ID、向客户推荐的IP地址、网络掩码、IP地址租用期(address lease time);
  • DHCP请求:新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供一个DHCP请求报文(DHCP request message)进行响应,回显配置参数;
  • DHCP ACK:服务器用DHCP ACK报文(DHCP ACK message)对DHCP请求报文进行响应,证实所要求的参数;
    一旦客户收到DHCP ACK后,交换便完成了,并且该客户能够在租用期内使用DHCP分配的IP地址;同时DHCP还提供一种机制允许客户更新它对一个IP地址的租用;

3、网络地址转换

网络地址转换(Network Address Translation, NAT)#

NAT路由器对外界的行为反过来就如同一个具有单一IP地址的单一设备,也就是说NAT路由器对外界隐藏了家庭网络的细节;

  • 具有专用地址的地域(realm):指其地址仅对该网络中的设备有意义的网络;
  • NAT转换表(NAT translation table):表项中包含了端口号及NAT路由器IP地址,通过该表,路由器能够知道它应将某个分组转发到对应的内部主机;
  • UPnP:一种允许主机发现并配置邻近NAT的协议,用来提供NAT穿越(NAT traversal);

因特网控制报文协议#

因特网控制报文协议(Internet Control Message Protocol, ICMP):被主机和路由器用来彼此沟通网络层的信息,典型用途是差错报告

  • ICMP报文是作为IP有效荷载承载的,从体系结构上讲它是位于IP之上的,因为ICMP报文是承载在IP分组中的;
  • ICMP报文有一个类型字段一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节内容,用于发送方确认引发该差错的数据报;

IPv6#

  • 扩大的地址容量:IP地址长度增加到128比特。
  • 简化高效的40字节首部:舍弃可选项,首部长度固定;
  • 流标签与优先级:给属于特殊流的分组加上标签,这些特殊流是发送方要求进行特殊处理的流,如一种非默认服务质量或需要实时服务的流(如音频与视频传输);
字段 长度 说明
版本 4 标识IP版本号
流量类型 8 区分流量类型
流标签 20 标识一条数据报的流
有效载荷长度 16 标识首部后面的字节数量
下一个首部 8 指定内容需要交付的协议
跳限制 8 转发路由器对该字段内容减1,若为0,数据报丢弃
源地址和目的地址 128,128 加长的IP地址长度
数据 变长 有效载荷

从IPv4到IPv6的迁移#

  • 双栈(dual-stack):使节点具有发送和接收IPv4与IPv6两种数据报的能力;
  • 建隧道(tunneling):将整个IPv6数据报放入一个IPv4的有效载荷中;

安全性与IPsec#

由IPsec会话提供的服务包括:

  • 密码技术约定;
  • IP数据报有效载荷的加密;
  • 数据完整性;
  • 初始鉴别

作者:issenxiao

出处:https://www.cnblogs.com/issenxiao/articles/18273629

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   issenxiao  阅读(4)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示