计算机网络——网络层重要协议(IP)

网络层的作用:在复杂的网络环境中确定一个合适的路径

IP 协议(Internet Protocol)

IP 数据报格式

  • 4 位版本号:指定 IP 协议的版本,对于 IPV4 来说就是 4
  • 4 位首部长度:用于表示 IP 首部的长度,单位是 32 位(4字节),IP 首部最小长度是 20 字节,最大长度是 60 字节(包含选项 )
  • 8 位服务类型:3 位优先权字段(已经弃用),4 位 TOS 字段,和 1 位保留字段(必须置为 0),4位 TOS 分别表示:最小延时,最大吞吐量,最高可靠性,最小成本,这四者相互冲突,只能选择⼀个,对于 ssh / telnet 这样的应用程序,最小延时比较重要,对于 ftp 这样的程序,最大吞吐量比较重要;
  • 16 位总长度:表示 IP 数据报整体所占字节,最大为 64 KB,但支持拆包,组包功能;
  • 16 为标识:该字段用于唯一标识每一个数据报,一个大的数据包拆成多个小包时,他们的 16 位标识是相同的;在数据报被分片时,帮助接收端将所有分片重新组装成原始的完整数据报;
  • 3 位标志:用于控制和指示数据报分片的状态:第1位(最高位)是保留位,必须设置为0,目前没有使用,将来可能用于扩展;第二位是 DF 位,表示当前数据包是否允许拆包(0 表示允许);第三位是 MF 位,表示这是否是数据报的最后一个分片(0 表示是最后一个分片);
  • 13 位片偏移:描述当前每个小的数据包(分片的)的相对位置,更方便组包;
  • 8 位生存时间 TTL(Time to Live):描述当前数据包在网络上能存活多久,单位是次数,会有一个初始值(32,64,128),没经过一个路由器转发,TTL 减 1,TTL 为 0 时,就会丢弃该数据包(防止目标 IP 不存在,从而浪费网络资源);
  • 8 位协议:指的是封装在 IP 数据报中载荷(数据)部分的上层协议,通常是指传输层协议(如 TCP,UDP),但也可以是其他需要 IP 封装的协议(如 ICMP,IGMP);
  • 16 位首部检验和:用于检查 IP 首部的(不包括载荷)完整性,验证 IP 数据报在传输过程中是否发生了错误或数据损坏;
  • 32 位源 IP 地址和 32 位目的 IP 地址,分别代表IP数据报文中的源地址(发送者)和目的地址(接收者),使用点分十进制表示;

地址管理

网段划分

IP 地址分为两个部分,网络号和主机号:

网络号:保证相互连接的两个网段具有不同的标识;

主机号:用于区分同一个网段中的不同主机;

同一网段内,主机之间具有相同的网络号,但是必须具有不同的主机号;

子网就是把网络号相同的主机放到一起,如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复;通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的 IP 地址都不相同;

DHCP

DHCP 协议------动态主机配置协议(Dynamic Host Configuration Protocol),用于自动为网络上的设备分配 IP 地址和其他相关配置参数,如网关,子网掩码和 DNS 服务器,一般的路由器都带有 DHCP 功能,因此路由器也可以看做一个 DHCP 服务器;

IP 地址的划分

IP 地址划分为 五类

  • A 类:0.0.0.0 - 127.255.255.255
  • B 类:128.0.0.0 - 191.255.255.255
  • C 类:192.0.0.0 - 223.255.255.255
  • D 类:224.0.0.0 - 239.255.255.255

随着 Internet 的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请 B 类网络地址,导致 B 类地址很快就分配完了,而 A 类却浪费了大量地址;

针对这种情况提出了新的划分方案,称为 CIDR(Classless Interdomain Routing):引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个 32 位的正整数,通常用一串 "0" 来结尾;将 IP 地址和子网掩码进行 "按位与" 操作,得到的结果就是网络号;网络号和主机号的划分与这个 IP 地址是 A 类、B 类还是 C 类无关;

IP 地址和子网掩码还有一种更简洁的表示方法,例如 140.252.20.68/24,表示 IP 地址为140.252.20.68,子网掩码的高 24 位是 1,也就是 255.255.255.0;

特殊的 IP 地址

  • 将IP地址中的主机地址全部设为 0,就成为了,网络号,代表这个局域网;
  • 将IP地址中的主机地址全部设为 1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
  • 127.* 的IP地址用于本机环回(loop back)测试,通常是 127.0.0.1;

IP 地址数量的限制

IP地址(IPv4)是一个 4 字节 32 位的正整数,则一共只有 2 的 32 次方个 IP 地址,大概是 43 亿左 右;TCP / IP协议规定,每个主机都需要有一个 IP 地址,因此这就存在 IP 地址不够用的问题,这时候有三种方法来解决:

  • 动态分配 IP 地址:只给接入网络的设备分配 IP 地址,因此同一个 MAC 地址的设备,每次接入互联网中,得到的 IP 地址不一定是相同的,这种做法只是提高了 IP 地址的利用率,并没有增加 IP 地址的数量;
  • NAT 技术:是一种用于改变 IP 地址信息的技术,通常用于将内部私有网络的IP地址转换为公共IP地址,从而实现内网设备与外网(如互联网)之间的通信;
    • 内网:也称局域网,指在一个组织、家庭或单位内部使用的网络,不直接连接到互联网;这种网络通常使用私有 IP 地址,局域网中的设备可直接通信;局域网是一个独立的网络,不直接暴露在互联网上,从而提供了一定程度的安全性;
      • 以 10.*,172.16.* - 172.31.*,192.168.* 开头的 IP 地址
      • 在同一个局域网内,内网 IP 不能重复
      • 在不同的局域网中,内网 IP 可以重复
    • 外网:也称为广域网,通常指互联网或任何能够覆盖较大地理范围的公共网络,在广域网中,设备使用公共IP地址,这些地址在全球范围内是唯一的,可以在互联网上访问
      • 除过内网 IP,其余都是外网 IP
      • 外网 IP 不能重复
    • 公网设备与局域网设备之间的访问关系:
      • 公网设备访问公网设备,由于公网的 IP 可作为唯一标识,因此可以直接访问;
      • 局域网设备访问同一个局域网设备,由于同一个局域网中的 IP 地址不能重复,因此也可以直接访问;
      • 局域网设备访问局域网设备,不允许;
      • 公网设备访问局域网设备,不允许主动访问;
      • 局域网设备访问公网设备,由于多个局域网中的 IP 可能相同,为了使公网设备可以区分,在访问公网时,需要对局域网 IP 进行地址转换;
    • 局域网内主机访问公网服务器的过程

路由选择

在复杂的网络结构中,找出一条通往终点的路线;

IP 数据包的传输过程和问路一样;

  • 当 IP 数据包到达路由器时,路由器会先查看目的 IP;
  • 路由器决定这个数据包是能直接发送给目标主机,还是需要发送给下一个路由器
  • 依次反复,一直到达目标 IP 地址

那么如何判定当前这个数据包该发送到哪里呢?

这个就依靠每个节点内部维护⼀个路由表,路由表可以使用 route 命令查看,如果目的 IP 命中了路由表,就直接转发即可;路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址;

路由表通过路由表生成算法(例如,距离向量算法,LS 算法等)自动生成,也可以由网络管理员手动配置(静态路由);

相关推荐
Hacker_Nightrain26 分钟前
网络安全CTF比赛规则
网络·安全·web安全
向懒羊羊学习的大猫1 小时前
【专题】计算机网络之网络层
计算机网络
网络安全指导员1 小时前
恶意PDF文档分析记录
网络·安全·web安全·pdf
co0t2 小时前
计算机网络(11)和流量控制补充
服务器·网络·计算机网络
白总Server2 小时前
JVM解说
网络·jvm·物联网·安全·web安全·架构·数据库架构
清尘沐歌2 小时前
有什么好用的 WebSocket 调试工具吗?
网络·websocket·网络协议
Li_0304062 小时前
Java第十四天(实训学习整理资料(十三)Java网络编程)
java·网络·笔记·学习·计算机网络
Tony聊跨境3 小时前
什么是 ISP:了解互联网服务提供商的作用
网络·人工智能·isp
earthzhang20213 小时前
《深入浅出HTTPS》读书笔记(7):安全的密码学Hash算法
网络·网络协议·http·https·1024程序员节
Hacker_Oldv3 小时前
【网络工程】计算机硬件概述
前端·网络·安全·web安全