网络协议基本概念
概述
网络模型
模型网络请求过程
请求过程各层中使用的协议
各层使用到的协议互联网
互联网数据从一台设备传递到另一台设备需要网络协议
网络协议
最常见的协议: HTTP
HTTPS, SMTP, MQTT, RTMP
常见服务器开发语言Java
Java跨平台原理
JVM(Java Virtual Machine): Java 虚拟机
Java 的跨平台: 一次编译, 到处运行
- 编译生成跟平台无关的字节码文件(class 文件)
- 对应平台JVM 解析字节码为及其指令
代码错误, 编译失败, 不会生成字节码文件
JavaScript: 解释性语言
C++ 跨平台原理
使用平台相关的编译器生成对应平台的可执行文件
C++跨平台原理网络互联模型(OSI参考模型)
协议: 是一个通用的标准
国际标准化组织ISO指定网络互连模型OSI, 7 层结构
偏向理论, TCP/IP协议(4 层)实际中使用的协议, 研究和学习是使用的是5 层模型
网络互连模型数据传输过程
数据传输过程设备通信基础
- 对方IP 地址
- 最终是根据MAC 地址, 输送到网卡, 如果目标是自己, 接收传递给上一层, 反则丢弃
设备连接方式
网络直连, 交叉线
用到的协议
ARP 协议. 作用: 已知IP 地址, 通过广播获取MAC 地址
一次完整的ARP 请求过程
ARP请求过程同轴电缆(Coaxial)
同轴电缆其中只要一个地方线断, 整个瘫痪
集线器(Hub)
hub相比优点: 某一个中间线路有问题, 不影响其他连接着的设备
网桥(Bridge)
hub隔绝冲突域: 记录设备的MAC 地址在哪一侧
网桥举例举例:
计算机6 向7 发送数据包
- 计算机6 发出请求ARP 广播, 网桥记录6 的MAC 地址在左侧
- 7 发出响应ARP 广播时, 网桥记录7 的MAC 地址在右侧
交换机(Switch)
交换机思考:
- 设备同处一个网段, IP 地址不够用
- 使用交换机, 第一次发送数据也会发出ARP 广播, 耗时
- 形成广播风暴, 一台设备发送ARP, 其他设备都能收到
路由器(Router)
主叫发送数据之前, 先判断目标主叫IP 是否在同一个网段
- 同一个网段: ARP 广播, 通过交换机/集线器, 传递数据
- 不在同一个网段: 通过路由器转发数据
网络直连, 同轴电缆, 集线器, 网桥, 交换机
- 连接的设备必须在同一个网段
- 连接的设备处在同一个广播域
路由器
- 可以在不同网段转发数据
- 隔绝广播域
MAC 地址(40-55-82-0A-8C-6D)
每一个网卡都有一个6 字节(48bit) 的MAC 地址(Media Access Control Address)
MAC 地址全球唯一, 固化在网卡ROM 中, 由IEEE802 标准规定
- 前3字节, OUI(Organizationally Unique Identifier), 组织唯一标识符
- 后3字节, 网络接口标识符, 厂商自己分配
MAC 格式
- Windows 40-55-82-0A-8C-6D
- Linux, Android, Mac, iOS 40:55:82:0A:8C:6D
- Packet Tracer 4055.820A.8C6D
48 位全为1 时, 代表广播地址: FF-FF-FF-FF-FF-FF
MAC 操作地址(ipconfig /all)
查看地址: ipconfig /all
修改: 更改适配器选项-属性-配置-高级-网络地址(填写的时候需要把 减号-
去掉)
MAC 地址获取(arp -a)
不知道对方主机MAC 地址, 发送ARP 广播获取对方MAC 地址
- 成功后, 缓存IP 地址, MAC 地址的映射信息, 为ARP 缓存
- 通过ARP 广播获取的MAC 地址, 属于动态缓存, 存储时间比较短, 默认2分钟, 过期自动删除
arp -a [主机地址] 查看ARP 缓存
arp -d [主机地址] 删除缓存
arp -s 主机地址 MAC 地址 增加一台缓存信息, 为静态缓存, 存储时间较久
ARP(Address Resolution Protocol)
ARP: 地址解析协议
作用: 通过IP 地址获取MAC 地址
RARP(Reverse Address Resolution Protocol), 逆地址解析协议
- 使用和ARP 相同的报头结构
- 作用与ARP 相反, 将MAC 地址转换为IP 地址
- 后被BOOTP, DHCP 取代
ICMP(Internet Control Message Protocol)
互联网控制消息协议
- IPv4中的ICMP称为ICMPv4, IPv6为ICMPv6
- 通常用于返回错误消息, 比如TTL 过期, 目的不可达
- ICMP 错误消息包括元数据返回给发送者
IP地址(127.0.0.1)
互联网的每一个主机都有一个IP 地址
最初为IPv4版本, 32bit(4字节), 2019年11月25号用完
IPv6版本, 128bit(16字节)
ipIP地址组成(网络ID + 主机ID)
通过子网掩码(subnet mask)可以得知网络ID, 主机ID
举例
主机所在网段 = 子网掩码 & IP 地址
IP地址:192.168.1.10
子网掩码:255.255.255.0
1100 0000 . 1010 1000 . 0000 0001 . 0000 1010
& 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
----------------------------------------------------
1100 0000 . 1010 1000 . 0000 0001 . 0000 0000
网段:192.168.1.0
网段由子网掩码计算得出, 只有IP 无法得知网段
IP地址:130.168.1.10
子网掩码:255.255.0.0
网段:130.168.0.0
该网段最多有 256*256-2 个IP地址
-2是因为: 全0代表网段,全1代表广播
网段和广播无法分配IP地址.
IP 地址分类(A, B, C, D, E)
只有A\B\C 类地址才能分配给主机
- 主机ID为全0, 标识主机所在网段, 192.168.1.0
- 主机ID 为全1, 主机所在网段的全部主机(广播), 192.168.1.255
A 类地址: 子网掩码255.0.0.0
A类地址 A类网络ID
- 0 不能用, 127 为保留网段
- 127.0.0.0 本地换回地址(Lookback), 代表本机地址
- 可以分配给主机第一部分的取值范围1~126
主机ID
- 第2,3,4 部分范围0~255
- 每个A 类网络能容纳最大主机数: 256*256*256–2 = 2^24–2 = 16777214
B 类地址, 子网掩码255.255.0.0
B类地址 B类网络ID
- 第1部分范围128~191
- 第2部分0~255
主机ID
- 第3,4 为0~255
- 最大主机数: 256*256-2 = 2^16-2 = 65534
C 类地址, 子网掩码255.255.255.0
C类地址 C类网络ID
- 第1部分, 192~223
- 第2,3 部分, 0~255
主机ID
- 第4 部分范围0~255
- 容纳主机最大容量, 256-2 = 254
D类地址, 无子网掩码, 用于多播地址
以1110 开头, 多播地址
D类地址第一部分224~239
E类地址, 以1111 开头, 保留今后使用
E类地址第一部分取值范围240~255
子网掩码的CIDR 表示法(192.168.1.100/24)
CIDR(Classless Inter-Domain Routing), 无类别域间路由
192.168.1.100/24, 代表子网掩码有24个1, 也就是255.255.255.0
123.210.100.200/16, 代表子网掩码16个1, 为255.255.0.0
子网划分
如果200台设备在同一个网段, 分配一个C 类网段, 192.168.1.0/24
-
254个可用IP 地址, 192.168.1.1 ~ 192.168.1.254
-
剩余54, 空闲, 不算浪费资源
如果500 台设备同一个网段, 分配B 类网段, 191.100.0.0/16
-
65534个可用IP, 191.100.0.1 ~ 191.100.255.254
-
剩余65034空闲IP, 极大浪费资源
此时需要合理子网划分
子网划分
借用主机为作子网位, 划分出多个子网
- 等长子网划分, 将一个网段等分成多个子网, 每个子网可用IP 数量一样
- 变长子网划分, 每个子网可用IP 地址数量可以是不一样的
步骤:
- 确定子网的子网掩码长度
- 确定子网中第1 个, 最后1 个主机可用的IP 地址
等长子网划分 - C 类子网划分(2, 4, 8 等分)
本来有一个C类网段: 192.168.0.0/24
划分成两个子网后:
A子网: 192.168.0.0/25 子网掩码: 255.255.255.128
可用IP地址: 192.168.0.1 ~ 192.168.0.126 共 126 个
B子网: 192.168.0.128/25 子网掩码: 255.255.255.128
可用IP地址: 192.168.0.129 ~ 192.168.0.254 共 126 个
等分2个子网
等分2个子网等分4个子网
等分4个子网等分4个子网的广播地址
等分4个子网的广播地址等分8个子网
等分8个子网等分子网划分- A,B类子网划分
B 类子网划分
B类子网划分A 类子网划分
A类子网划分变长子网划分
变长划分超网 - 合并网段
超网: 跟子网相反, 将多个连续网段合并成一个更大的网段
原本200台计算机使用192.168.0.0/24, 增加200台在同一个网段
- 200台在 192.168.0.0/24 网段,200台在 192.168.1.0/24 网段
- 合并 192.168.0.0/24、192.168.1.0/24 为一个网段:192.168.0.0/23
(子网掩码往左移动1位)
192.168.0.255/23 这个IP地址, 是广播, 不能分配给计算机
广播地址分配主机部分并不全为1,所以是可以分配给计算机使用的
合并4 个网段
子网掩码向左移动 2 位,可以合并 4 个网段
合并4个网段将 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合并为192.168.0.0/22 网段
合并子网规律
假设 n 是 2 的 k 次幂(k≥1),子网掩码左移 k 位能够将能够合并 n 个网段
合并规律假设 n 是 2 的 k 次幂(k≥1),如果第一个网段的网络号能被 n 整除,那么由它开始连续的 n 个网段,能通过左移 k 位子网掩码进行合并
- 第一个网段的网络号以二进制 0 结尾,那么由它开始连续的 2 个网段,能通过左移1位子网掩码进行合并
- 第一个网段的网络号以二进制 00 结尾,那么由它开始连续的 4 个网段,能通过左移2位子网掩码进行合并
- 第一个网段的网络号以二进制 000 结尾,那么由它开始连续的 8 个网段,能通过左移3位子网掩码进行合并
如何判断一个网段是子网还是超网
首先看该网段的类型
-
A 类子网掩码位数为8, (255.0.0.0)
-
B 类子网掩码位数为16, (255.255.0.0)
-
C 类子网掩码位数为24, (255.255.255.0)
如果该网段的子网掩码位数比默认子网掩码多, 就是子网
如果该网段的子网掩码位数比默认子网掩码少, 则是超网
举例:
25.100.0.0/16
- 根据25 判断出为A 类网络, 默认子网掩码8 位
- 由于该网段子网掩码16 位, 比默认多, 所以是子网
200.100.0.0/16
- 根据200 判断为C 类网络, 默认子网掩码24 位
- 该网段子网掩码16 位, 比默认少, 所以为超网
网友评论