网际协议(IP)
概述
特点:
1. 不可靠的无连接数据报协议: 不会进行插座校验和跟踪
2. 最大努力交付任务,但不保证每个分组都能真确送达
IP地址
网络号与主机号:使得路由器在转发分组的时候可以很快从目的IP地址中找出目的网络地址 (与对应的子网掩码进行与操作),从而将分组发送。
网络号: 分配给不同的机构
主机号: 机构下的个人
网络地址: 先识别是那类网络[IP 地址的第一个字节前几位],然后将主机号全部取0 [ IP地址与子网掩码与运算的结果]
路由器首先目的地址的网络地址,检查是否与本地网络号相同,不匹配则转发,匹配则找到主机号,并发送
广播地址: 将地址号全部取为1 ,代表本网中的所有主机
专用网络地址: 见图10-2 , A B C类都会对应一个专用网络地址,作为局域网地址
子网划分与子网掩码
子网: 对于大量个人用户和小型局域网用户接入互联网,为期分配一个C类网络都会造成IP地址的大量浪费。
比如: 10个办公室,每个办公室都是一个网络,但是但是每个办公室人数都很少,所以分配一个网络号有点浪费
所以对网络号进一步划分得到子网,使得IP地址由原来的2级结构 [网络号,主机号]变为3级结构 [网络号,主机号, 子网号]。
第一:减少网络地址浪费
第二: 节省通信流量: 网络上的通信流量与主机数量成正比
第三: 主机管理方便
bim子网掩码:
标准IP地址: IP地址的第一个字节前几位表示种类
子网地址: 主机号全为0的地址,所有的网络地址[网络地址 + 子网地址]都为1
关键: 路由器收到一个数据包时,首先判断是否是在一个网络内,[自己的IP 地址与子网掩码相与 对比 目的地址与子网掩码相与]。
NAT
原理:
为了实现局域网中的多个设备共享一个 外网地址,将 <源地址,源端口号 : 目的地址 ,目的端口> 组成的键值,映射成一个 <路由器外网地址, NAT 端口号>;
发送数据时,将源地址 与源端口号,修改为<路由器外网地址, NAT 端口号>;
接收数据时,将 <路由器外网地址, NAT 端口号>转化为 <源地址,源端口号 >
缺点:
1. 通信只限于具有端口号的协议:TCP与UDP
2. 分组转发效率降低: 更改源地址、更改端口号, 重新计算校验和
单播多播广播
硬件也需要支持: 单播多播广播,所以在特定的数据链路层,必须提供单播多播广播机制
以太网中,通过MAC地址区分单播多播广播
单播: ARP表
多播: MAC 地址的第23位 改为 多播IP的低23位
广播: MAC所有位 都是1
数据报
数据报组成
名称: IP层的数据包, IP数据报 或 IP分组
数据报组成: 图10-4
IP层输出
发送数据报
- IP数据报头部填写
- 根据目的IP地址,选择合适的网络接口
- 检测是否需要分片
- 调用网络接口的发送函数
数据报分片
分片: IP数据报都被封装在一个物理帧中发送,效率最高
但是为了保证传输的可靠性,IP层必须可以灵活控制数据报的大小,因为传输途中,不同物理媒介最大帧的长度各不相同;
分片过程: 图10-6
关键: 分片发送函数,并不会重新分配内存存放分片的数据报,而是申请 PUBF_REG
IP层输入
数据报接收
- 检测合法性: 长度 校验和 版本号
- 是否发送给本地的,与所有接口的IP比较
- 是否分组: 重新组装
- 交给上层
关键:
- ICMP:当接收端解析到错误的TCP数据报时,要给对方发送ICMP数据
1 | 大暑过后便是立秋 |