IP协议(上)
网络层 实现主机与主机之间的通信 点对点
IP 主机之间通信 没有直连的设备进行通信
MAC 在直连的两个设备间进行通信
源IP目的IP在数据传输过程中不会改变
源MAC与目的MAC会一直发生变化
IP地址基础知识
192 168 1 1
11000000 10101000 00000001 00000001
IP地址最大值 2的32次幂 42 9496 7296
NAT 减少IP地址枯竭的问题
IP地址的分类
最大主机个数计算
最大主机个数,要看主机号的位数
C类地址 2的8次幂-2,254
IP地址中 有两个地址是特殊的 分别为主机号全为1和主机号全为0的地址
192.168.1.0
11000000 10101000 00000001 00000000
192.168.1.255
11000000 10101000 00000001 11111111
主机号全为0指代了某个网络 网络地址 代表的是一个网段
主机号全为1 代表了某个网络中所有主机 用于广播 广播地址
广播地址 用于在同一网段中连接的主机之间发送数据包
在本网络内广播叫本地广播
在不同的网络之间广播叫直接广播
D类
通常用于多播
224.0.0.0-239.255.255.255 IP多播
将包发送给特定组内的所有主机
多播使用的d类地址,前四位1110 表示多播地址 剩下的28位 是多播的组编号
224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用
224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet
224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效
239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效
E类
暂存地址
IP分类优点
地址分类优点简单明了,选路简单
缺点
在同一网络下,没有地址层次 缺少灵活性
不能很好的与现实网络匹配
CIDR
a.b.c.d/x /x是子网掩码
/x 表示前x位是网络号 x范围0-32
192.168.31.1/24 192.168.31 网络号 1 主机号
子网掩码 掩码的意思就是掩盖掉主机号 剩余的是网络号
将子网掩码和IP地址进行位运算 AND 就可以获得网络号
10.100.122.2 /24
00001010 01100100 01111010 00000010
255.255.255.0
11111111 11111111 11111111 00000000
00001010 01100100 11110100 00000000
网络号:10.100.122.0
网络号 00001010 01100100 00111101 0 00000000
主机号 00000000
为什么要分离网络号和主机号
计算机要通讯 先判断是否处于一个广播域 网络地址是否相同,如果网络地址相同,表明双方在同一个网段中,就可以把数据包直接发给对方
子网划分
子网掩码另一个作用 划分子网,子网划分是将主机地址分为两个部分:子网网络地址、子网主机地址
假设 192.168.1.0 255.255.255.192
192.168.1.0/26
00 01 10 11
1.定归属
确定IP属于哪个标准网络(A,B,C)
192.168.10.0/28
很明显:在192.0.1.1-223.255.255.254这个区间
所以是个C类网络,标准C类网络掩码为24
2.判占位
判断网络位和主机位的占用。
网络位:28-24=4
主机位:32-28=4
根据上面得到了标准网络掩码是24,也就是3个字节,后面第四个字节多占用了4位,所以网络占位为4,主机占位为4。
那么:
可用子网数为:2^4=16
可用主机数为:2^4-2=14
3.定增量
增量=256-给定的掩码
“/28”,那么也就是255.255.255.240
增量=256-240=16
每个子网之间增量为16
4.得答案
子网为:从0开始<=客户给的IP地址的掩码
(1)子网分别为:
0,16,32,48,64.80.96,112…240(240=客户给的/28,转换后对应240)
(2)子网的广播地址 = 下一个子网的网络地址-1
15,31,47,63,79…239
(3)子网的可用地址 = (子网+1)——(广播地址-1)这个区间
例题1
255.255.128.0 (/17)
网络地址=172.16.0.0
子网掩码=255.255.128.0
例题2
一段C类地址192.168.1.0/24,请你将地址分给网络中的主机,要求至少有5个子网,每个子网至少有20台主机。
IP协议(下)
公有IP地址与私有IP地址
同一局域网内私有IP不能重复,不同局域网内私有IP可重复
公有IP互联网唯一
IP地址与路由控制
网络地址 用于路由控制
路由控制表 记录网络地址与下一步应该发送的设备地址 在主机上与路由器上都会有路由控制表
在发送IP包的时候,会首先检查目标地址 根据路由表中找到根目标地址相同的网络地址记录,通过该记录将IP包发给下一个设备。
环回地址不会流向网络
127.0.0.1 localhost
IP协议相关技术
DNS
ARP
主机路由表可以找到下一跳的IP地址,可以通过ARP协议求得下一跳的MAC
ARP工作过程:
ARP请求 ARP响应
RARP协议
ARP根据IP求MAC RARP根据MAC求IP
DHCP
67服务器 68客户端
UDP广播通信
DHCP代理
NAT
解决IPv4地址枯竭问题 网络地址转换协议 NAT
把私有地址转换为公有地址
地址与端口转换 NAPT
两个私有IP都转换成公有IP,但是以不同端口号作区分。
NAT的缺陷
因为NATP转换表没有转换记录,外部无法主动与NAT内部服务器建立连接
转换表生成与操作都会产生性能开销
通信过程中如果NAT路由器重启了,TCP连接会重置
IPV6
ICMP
互联网控制报文协议
确认IP包是否成功到达目标地址,报文发送过程中IP包被遗弃的原因和改善网络设置
键入网址到网页显示期间发生了什么
HTTP
浏览器的第一步工作:解析URL
解析URL后,卢兰其会生成HTTP请求信息
DNS
通过浏览器解析URL生成HTTP报文后,发送之前,需要先查询服务器与域名的对应关系。
协议栈
协议栈 上下关系有一定的规律 上面的部分会像下面的部分委托工作 下面的部分收到委托,执行
TCP
加上TCP的头部 让其遵循TCP协议进行传输 确保安全可靠的到达目的地
IP
TCP执行 连接 收发 断开 各阶段操作时,会委托IP将数据包封装成网络包发送给通信对象。
加上IP头部,数据包就拥有了远程定位能力,能够找到目的地。
MAC
生成IP头部后,还需要在IP头部前面加上MAC头部
MAC头部中需要发送方的MAC地址和接收方的MAC地址,用于两点之间的通信
接收方MAC:从网卡中读取值
发送方MAC:利用ARP协议请求获取
MAC报文生成
出口-网卡
网络包只是存放在内存中的一串二进制数字,是没有办法直接发送的,需要将数字转换成电信号
网卡来执行 网卡驱动程序
网卡驱动程序 IP模块 获取到包 将其复制到网卡内的缓冲区 开头加上报头和起始帧分界符,末尾,用于检测错误的校验序列。
起始帧分界符 表示包的起始位置
校验序列:检测错误 传输过程中是否损坏
交换机
二层网络设备
交换机工作原理
学习 交换机会记录与自己交互过的设备mac
转发 交换机会转发数据包
丢弃 收到接收方不为本交换机的数据包 丢弃
泛洪 mac表中没有接收方mac 会广播
路由器-出境大门
三层网络设备
服务器
数据包抵达了服务器之后,服务器开始解封装
拆解mac头,查看接收方mac是否是自己 符合就接收
ip ip是否符合 根据IP头协议项,知道上层协议是tcp
tcp头 序列号 看一下序列号是不是自己想要的如果是则返回ack 不是则丢弃,TCP头里还有端口,http正在监听这个端口
服务器就知道HTTP服务想要这个包,将包发给HTTP进程
服务器http看到这个包,原来请求是要访问一个页面,于是讲网页封装到http报文里。