IP地址
IP的基本概念
所以在某种意义上来说路由器也是主机
子网
两个路由器直接相连的接口,必须属于同一个子网;不在同一子网,二层无法直接交付,不能转发。所以数据B->C,中间经历无数个子网转发
IP的作用
主机是根据报文中的目的IP进行路径选择
主机 B 向主机 C 发送报文,数据包并不是直接送达,中间会经过一连串路由器接力转发。IP 协议的核心,就是在 IP 报文中记录源主机 IP 和目标主机 IP。每一台路由器拿到 IP 数据包,读取目的 IP,查询路由表,选择下一跳,一步一步把数据包送到目标主机。 IP 协议完成主机到主机的通信,但是它只做到尽力交付,无法保证数据包 100% 到达。可靠性由传输层 TCP 协议完成。
IP的构成
- 网络号(目标网络)相当于学院‑专业‑班级,告诉路由器:这个主机属于哪一个子网,路由器根据网络号,把数据包转发到目标局域网。
- 主机号(目标主机)相当于班内个人编号。数据包送到目标网络后,再依靠主机号,定位到子网中具体那一台主机。
IP vs TCP
IP:负责寻址找路,把数据包从一台主机送到另一台主机。也就是说IP有可以完成找到目标主机的能力,但是不一定每次都会找得到,也会有发生丢包的情况,不保证可靠。
TCP:负责保障通信质量,解决丢包、乱序、流量协调,给应用层提供可靠的数据传输服务。
IP 报文在跨网络传输的过程中,经过多台路由器转发,受网络拥塞、链路故障等因素影响,会发生丢包、乱序、数据包重复的现象。
IP 协议只提供尽力交付服务,它只负责完成主机到主机的寻址转发,本身不做丢包检测,丢包之后也不会重传,无法保障数据可靠到达。
真正的可靠性,是上层 TCP 协议实现的。TCP 构建在 IP 协议之上,通过超时重传、确认应答、序列号、拥塞控制、流量控制等一整套机制,为应用程序提供可靠传输能力。
IP报文的认识
32 位源 IP 地址:发送数据包的主机 IP(发送方)
32 位目的 IP 地址:数据包要送达的主机 IP(接收方)
8 位服务类型 TOS
TOS(Type Of Service)占 IP 头部 8 比特,用于向路由器说明数据包期望的传输质量。 支持四种特征:低时延、大吞吐量、高可靠性、最小成本,同一报文只能选择其中一种作为优先目标。 语音通话业务会设置低时延;文件传输业务优先选择高吞吐量。
16 位总长度
16 位总长度记录整个 IP 数据包的字节数,包含 IP 头部 + 上层数据。取值范围 0‑65535,代表 IPv4 数据包最大 65535 字节。
该字段功能和 UDP 头部的长度字段思路相似。 结合 4 位首部长度,我们可以计算上层载荷大小:上层载荷长度 = IP总长度 − IP首部长度依靠这个计算,接收端就可以剥离 IP 头部,取出后面 TCP/UDP 的数据。
IP 头部 8 位 TTL(生存时间 Time‑To‑Live)
网络中有可能出现数据包环路打转。如果不对这种情况做限制,数据包会无休止在路由器之间循环转发,浪费大量网络带宽,加重网络拥塞。
TTL 生存时间字段就是用来解决这个问题:数据包每经过一台路由器,TTL 就执行减 1 操作。当 TTL 减小到 0,还没有到达目标主机,路由器就直接丢弃这个 IP 报文,阻止报文继续消耗网络资源。
16 位首部校验和
网络传输的时候,信号可能受干扰,IP 头部比特发生错乱(比如源 IP、目的 IP、TTL 被改乱)。 首部校验和用来检测 IP 头部有没有传输出错。
- 如果校验失败:路由器 / 主机直接把这个 IP 包丢掉。
- 如果校验通过:才继续处理这个数据包博客园
蓝色框选部分等一下再说