网络层:IP协议
职责:做好路由 internet protocol
IP地址:指互联网协议地址,又称为网际协议地址
逻辑地址/IPv4/无符号的32位整数
无符号的32位整数 <-> 点分法表示
192.168.1.3 十六进制 C0A80103
IP地址包含 网络号 +主机号
早期:固定分类方式: ABCDE
在A类地址划分下,一个子网中最多有多少主机? 2^24 -2
造成IP地址大量浪费。
动态划分方式:通过子网掩码(mask)来实现网络号和主机号的划分
192.168.1.3
0b 1111 1111 0000 0000 0000 0000 0000 0000
网络号和主机号的划分是非常明显的
ip& mask = 192.0.0.0 <- 网络号
ip & (~mask) = 0.168.1.3 <- 主机号
192.168.1.3 /8 (表示前8个比特是网络掩码)
如果主机号全部是0,不能分配给主机——就是网络号 192.0.0.0
如果主机号全部是1,保留做广播地址使用 192.255.255.255
特殊IP地址:
127.0.0.0/8 全部代表环回(loopback) 地址 :
经常使用的是 127.0.0.1 127.0.0.2 127.255.255.254
网络中的一个IP地址一定绑定在一台主机上(这个指的是外网地址)
所以,内网地址可能存在于多个主机上
只要保证公网地址不一样,在 不同子网下,可以使用相同的IP。
但是在同一个子网下,设备仍然不能重复。
IPv4的格式
解包:4位首部长度
分用:8位协议
TTL:time of live 不是以时间为单位,而是以一跳(hop)为单位。
协议号:它要传给传输层的内容
校验和:判断数据是否有损坏
关于IP的分片:MTU Maximum Transmission Unit
数据链路层/物理层 是有数据上限的
例如: 宽路变窄路,就需要分片了
具体分片方法:
1.禁止分片 -> 丢
2.允许分片 [ABCDEFG] -> [A][B][C][D][E][F][G],分别发送
组抓分片:
1.是不是一批货(分片后,只要16位标识相同就是一批货)
2.现在是这批货的第几个
IP协议头:填写长期目标,但IP学医需要根据长期目标计算出短期目标——下一跳的IP地址是什么。
目标IP+本机维护着的路由表 -> 下一跳的IP
接口:172.17.26.221 实际上是一个网卡
网关:在链路上代表目标主机和当前主机在同一局域网下,不需要“出国”
比如:把这个和网关做一个与操作,最终就得到了网络目标172.17.127.255。网关显示在链路上,表示在同一个LAN下,下一跳IP就是目标IP
比如:61.135.28.47找不到匹配的,就得走默认路由,下一跳就是网关IP。
IP协议栈内部维护着路由表,IP协议栈要发送的数据:
1.填充IP header
2.去根据目标IP+路由表计算出下一跳的IP地址
3.拿着下一跳IP地址换成下一跳的mac地址
4.把数据+下一跳 mac给到数据链路层
路由表的这些条目来自何处?
1.人工命令添加
2.根据动态路由算法生成
如何根据下一跳IP地址换算MAC地址——通过查表(ARP表)
路由器的IP协议栈根据目标IP(182....)+路由器内部的路由表找到下一跳的IP地址,根据路由器内部的ARP表找到下一跳的mac网帧。
主机具有一个或多个网卡,路由器具有两个或两个以上的网卡,其中每个网卡都有唯一的MAC地址。
DNS:应用层协议 Domain Name Service
目的:人类记IP地址不好记,www.baidu.com(域名)
由应用层把域名换成IP地址
1.网络帮助我们实现跨主机的 进程到进程的通信问题
2.网络整体架构师分布式的
3.网络分层(应用 -> 传输 -> 网络 -> 数据链路 ->物理)