网络知识点集合
1、网络划分
(1)局域网
局域网
,某个小范围组建的网络,内部可以传输数据;
典型代表
:家用路由器;
(2)广域网
广域网
:多个局域网构建的大型网络;
公认的广域网,一般是通过网络运营商提供的网络服务来进行网站访问的;
能否访问到对应主机,使用Ping
命令来检验;
能够Ping
通,说明能够访问!
2、网络通信
(1)IP地址
1. 概念:IP
地址是指互联网协议地址,又译为网际协议地址;
2. 格式:IP
地址是一个32
位的二进制数,通常被分割为4
个 8位二进制数
(也就是4
个字节),常用 点分十进制表示,即 a.b.c.d格式(a,b,c,d
都是0~255
之间的十进制整数);
3. 作用:用于标识网络中唯一的一台主机;
4. 组成:网络号 + 主机号
网络号
:用来标识网段,保证相互连接的两个网段具有不同的标识;主机号
:用来标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
通过合理设置 网络号 和 主机号,就可以保证在相互连接的网络中,每台主机的IP
地址都是唯一的,那么,如何划分网络号和主机号呢?
IP地址分类:A~E
五类
从上到下表示,A类,B类,C类,D类,E类,如下图所示
:
各类地址的表示范围:
注意:
- 局域网
IP
是内部才可以使用(内部唯一),不同的局域网IP
可能重复; - 广域网
IP
是全局唯一; - 本机
IP
:127.0.0.1
特殊IP:
将
IP
地址中的主机地址全部设为0
,就成为了网络号,代表这个局域网;
将IP
地址中的主机地址全部设为1
,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
上述分类中,存在IP
地址浪费的问题,因此,为了避免浪费,引入了 子网掩码;
子网掩码:与IP
地址格式相同,也是32
位二进制数;其中,左边为网络位,用二进制数字“1”
表示,1
的数目等于网络位的长度;右边为主机位,用二进制数字“0”
表示,0
的数目等于主机位的长度;
作用:
- 划分
A,B,C
三类IP
地址子网; - 网络通信时,子网掩码结合
IP
地址,可以计算获得网络号(划分子网后的网络号
)及主机号(划分子网后的主机号
),一般用于判断目的IP
与本IP
是否为同一个网段;下面为计算方式:
计算方式:
- 将
IP
地址和子网掩码进行“按位与
”操作,得到的结果就是网络号;- 将子网掩码二进制按位取反,再与
IP
地址位与计算,得到的就是主机号;
(2) MAC地址
- 作用:用来标识网络设备的硬件物理地址;
- 网络通信,即网络数据传输,本质上是网络硬件设备来传输数据,硬件要发送数据到另一个硬件上,只认识硬件的物理地址(
MAC
地址); - 主机有一个或多个网卡(多数情况只使用一个网卡);
(如使用WiFi
就是使用无线网卡来接收发送数据;使用网线,就是用有线网卡来接收发送数据); - 一个网卡具有全球唯一的
MAC
地址(出厂时设置好)
IP地址 VS MAC地址
IP地址:标识整个路途的起点与终点,
供用户使用的逻辑地址;
MAC地址:标识每一跳的起点与终点,供网络硬件设备使用的物理地址
;
网络数据传输是一跳一跳的传输过程,如下简单所示:
对于从B到F,源MAC
就是主机B
的MAC
,目的MAC
就是路由器F
的MAC
;
特殊的MAC地址
- 广播数据报的
MAC
地址为:FF:FF:FF:FF:FF:FF
(3)端口号
- 作用:用于标识主机中的进程;
- 格式:端口号是
0~65535
范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送和接收网络数据;
(4)网络协议
网络协议
:网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则;(如怎么样建立连接、怎么样互相识别等),只有遵守这个约定,计算机之间才能相互通信交流。
通常由三要素组成:
(1)语法
:数据与控制信息的结构或格式(如规定公共场所使用普通话);
(2)语义
:需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序
:事件实现顺序的详细说明,先干什么,再干什么…
协议最终体现为在网络上传输的数据包的格式!
知名协议的默认端口:
系统端口号范围为 0 ~ 65535
,其中:0 ~ 1023
为知名端口号;
- 80端口:
http
协议 - 443端口:
https
协议 - 22端口:
ssh
协议
(5)五元组
在TCP/IP
协议中,用五元组
来标识一个网络通信;
五元组包括:
- 源
IP
:标识源主机; - 源端口号:标识源主机中该次通信发送数据的进程;
- 目的
IP
:标识目的主机; - 目的端口号:标识目的主机中该次通信接收数据的进程;
- 协议号:标识发送进程和接收进程双方约定的数据格式;
类似于发快递:
查看五元组信息:
- windows:
netstat -ano | findstr 过滤字符串
- linux:
netstat -anp | grep 过滤字符串
3、网络分层两种方式
网络分层的好处
:便于扩展和维护
两种划分方式:
方式1: OSI
七层模型
从低到高分别有(从下到上):
- 物理层:网络/
WiFi
传输0,1
数据 - 数据链路层:识别数据帧
- 网络层:地址与路由选择
- 传输层:确保数据传输的可靠性
- 会话层:建立会话
- 表示层:接收端的展示方式
- 应用层:应用程序所处的分层
特点:并没有实际落地,属于理论上的模型;
方式2: TCP/IP
五层(四层)模型
从低到高分别有:
分层 | 代表硬件设备或软件 | 代表协议 |
---|---|---|
物理层 | 网线、电磁波、集线器 | 传输 0 ,1 数据 |
数据链路层 | 交换机 | 以太网帧,ARP (介于网络层与数据链路层的协议) |
网络层 | 路由器 | IP 协议 |
传输层 | 主机(操作系统) | UDP , TCP 协议 |
应用层 | 应用程序 | HTTP ,HTTPS ,SMTP (邮电协议) |
网络设备所在分层
- 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是
TCP/IP
五层模型的下四层; - 对于一台路由器,它实现了从网络层到物理层,也即是
TCP/IP
五层模型的下三层; - 对于一台交换机,它实现了从数据链路层到物理层,也即是
TCP/IP
五层模型的下两层; - 对于集线器,它只实现了物理层;
注意点:
- 这里的交换机和路由器是传统意义上的,也称为二层交换机,三层路由器;
- 网络通信时,经过的所有网络设备,不同的设备在相同的网络分层,都需要使用一致的协议;
4、封装和分用
- 封装:
发送数据时,需要把数据包装成某个协议的格式,再发送;(一个网络设备,按从高到低的顺序,使用对应分层的协议来进行包装数据);
下图为数据封装的过程:
- 分用:
接收数据时,需要把数据按照某个协议格式来解析,再使用;
(一个网络设备,按从低到高的顺序,按对应分层的协议解析,使用数据)
过程与封装相反;
5、网络设备
(1)集线器
集线器是工作在物理层的网络设备,发送到集线器的任何数据,都只是简单的将数据复制并转发到其他所有端口;
(2)交换机
交换机:内部维护了一个
MAC
地址转换表(每一台主机与交换机相连时,交换机就纪录主机的MAC和连接的端口),MAC
地址转换表:记录主机MAC地址与端口的映射关系;
发送数据报时,发送端主机都需要先根据网络分层从上到下封装(从高到低),如下所示:
如果封装到数据链路层,不知道目的MAC
,怎么办?
解决方案
:以广播的方式,发送数据到其他所有主机(此时是知道目的IP
的),此时目的IP
的主机再返回自己的MAC
地址给交换机(如,在群里找人聊天
);
发送数据时,分两种情况:
-
情况1
:同一个网段:下一跳的过程就是目的主机; -
情况2
:不同网段(知道目的ip
,不知道目的MAC
):需要发送数据到网关设备(通常的网关设备是路由器
);
因此,首先需要判断发送端主机(源主机
)与接收端主机(目的主机
)是否属于同一网段?
判断方式:使用子网掩码
(1)子网掩码+源ip 就是源主机的网络号
;
(2)子网掩码+目的ip 就是目的主机的网络号
;
(3)判断源主机网络号=目的主机的网络号
,相等就是一个网段,否则就不是;
(3)主机&路由器
主机与路由器中包含一种技术:ARP缓存表
;
ARP缓存表作用:纪录IP地址与MAC地址的映射关系;
使用场景:
- 源主机与目的主机不在同一个网段,使用源主机中的
ARP
缓存表(通过网关的IP
找网关的MAC
); - 源主机与目的主机在同一个网段,也可以使用源主机中的
ARP
缓存表(通过目的主机IP
找目的主机MAC
);
路由器:
- (1)路由器具有一个
wan
口(连接公网,具有公网IP
); - (2)路由器搭建了一个局域网,但具有多个不同网段(这些不同网段的主机,处于一个局域网),由路由器多个
LAN
口来划分;
此时,当源主机发送数据到目的主机时,有以下三种情况:
(1)源主机与目的主机处于同一网段
(2)源主机与目的主机处于同一个局域网,但不同网段
(1)(2)两种情况,使用ARP缓存表就可以找到目的主机(通过目的IP找对应的MAC地址);
(3)源主机与目的主机处于不同的局域网(公网上的其他主机)
此时路由器也可能不知道目的
IP
的主机在哪里,就需要NAPT
技术转换局域网IP
和端口为路由器公网IP
和端口;
路由功能:规划路线(路由器中存在一个路由表,纪录IP
和坐标点,用于计算目的IP
的最短路径);
路由器小结:
- (1)划分子网(一个局域网,划分为不同网段);
- (2)
ARP
缓存表:纪录路由器所在的局域网所有主机的IP
和MAC
地址; - (3)具有
wan
口,绑定公网IP
,目的主机不在局域网内,使用NAPT
技术,将源IP
和端口从局域网主机的转换为路由器公网的IP
和端口; - (4)路由功能:如果目的
IP
是公网主机,通过路由功能就能够计算出那个方向更近;
补充:冲突域与广播域
冲突域
:同一时间,多台主机同时发送数据,如果产生冲突,这个范围就是冲突域;
表现
:
- 集线器:所有端口构成一个冲突域;
- 交换机:一个端口构成一个冲突域;
广播域
:发送广播数据报(MAC地址全为FF
),能到达的范围; 表现:
- 集线器:所有端口处于一个广播域;
- 交换机:所有端口处于一个广播域;
- 路由器:
LAN
口(不同网段),隔离广播域;
6、网络套接字
套接字分类:
- 流套接字:传输层使用
TCP
协议 - 数据报套接字:传输层使用
UDP
协议 - 原始套接字:传输层协议自定义
Java
编程时,应用层协议自定义(以上三个)!
7、广域网数据传输流程<⭐>
应用层重点协议:DNS协议,全球DNS
服务器/DNS
缓存,构成了一个树形结构(多个根节点,每个根节点就是一棵树);
DNS
协议:通过域名找IP
(从下到上来查找)
因为IP
地址不方便记忆,且不能表达地址组织信息,于是就有了域名,可以通过域名系统来映射域名和IP
地址;
如在浏览器地址栏输入URL(www.baidu.com),就会有以下步骤过程:
步骤过程1:
通过
DNS
协议,查找www.baidu.com
这个域名对应的IP
地址;
步骤过程2:
- 源主机:从上到下封装
首先需要判断下一跳设备是那个?
方法:通过子网掩码计算,目的主机与源主机是否处于同一网段?
如果是同一网段,下一跳设备就是目的主机;
如果不是同一网段,下一跳设备就是网关路由器;
然后,需要设置目的MAC为下一跳设备的MAC(此时源MAC为源主机的MAC)
;如何设置目的MAC?
基于本机ARP
缓存表,通过网关IP
查找MAC
地址;
- 交换机接收到数据报:转发到目的
MAC
对应的端口(路由器相连的端口),此处是基于交换机的MAC
地址转换表,通过MAC
找端口;
步骤过程3: 路由器接收到数据报
路由器接收到数据报,做以下事情:
- 先从下到上分用:物理层到网络层(路由器是工作在下三层);
- 基于
NAPT
协议,将源IP
和源端口号(局域网源主机的IP
和端口)修改为路由器公网的IP
和端口;- 基于路由功能,根据目的
IP
,计算出下一跳设备是那个设备,且到目的主机的方向那个更近;
2,3
步骤目的IP
不在路由器局域网内,路由器也不知道这个主机在哪;
- 从上到下封装:修改源
IP
为路由器公网IP
,源端口为路由器公网端口;修改源MAC
为路由器的MAC
,目的MAC
为下一跳设备的MAC
;
步骤过程4: 路途中经过的其他多个设备
与步骤过程3类似
步骤过程5:目的主机接收到数据报
目的主机接收到数据报,需要做以下事情:
- 从下到上分用:
分用到网络层:目的
IP
与我的一致,就再次分用;
分用到传输层:根据目的端口将数据报交给对应端口的进程(如tomcat
)来处理;
分用到应用层:tomcat
程序根据应用层HTTP
协议来进行解析;
此时的数据报:
- 源
IP
:路由器公网IP
- 源端口:路由器端口
- 目的
IP
:目的主机IP
- 目的端口:目的主机
tomcat
端口
tomcat
处理请求tomcat
返回响应
返回响应时,从上到下封装,再发送数据到起点(先发送数据给路由器,路由器查找局域网内的主机,将数据发送给对应主机);
此时数据报:
源
IP
:百度服务器IP
源端口:百度服务器进程的端口
目的
IP
:路由器的公网IP
目的端口:路由器的端口
小结
- 局域网:集线器相连
步骤
:
(1)源主机:从上到下封装;
(2)集线器转发数据报到其他所有端口;
(3)目的主机:从下到上分用;
- 局域网:交换机相连
步骤
:
(1)源主机:从上到下封装;
(2)交换机转发数据报到对应的一个端口;
基于下一跳设备的MAC
,通过交换机中MAC
地址转换表,查找对应端口;
(3)目的主机:从下到上分用;
- 局域网,交换机+路由器(一个局域网,跨网段)
步骤
:
(1)源主机:从上到下封装,到链路数据层,发现主机源
IP
与目的IP
处于不同网段时(子网掩码计算而来),此时,下一跳的设备就要设置为网关设备(目的设备设置为网关设备,即就是网关路由器),采用本机ARP
缓存表通过网关IP
查找MAC
;(2)路由器
先分用:获取目的IP
再封装:修改源MAC
,目的MAC
(3)目的主机:从下到上分用;
其中,从源主机到网关设备(路由器),涉及有
:
- 目的
IP
:目的主机的IP
- 源
MAC
:源主机的MAC
- 目的
MAC
:路由器的MAC
其中,从网关设备(路由器)到目的主机,涉及有
:
- 目的
IP
:目的主机的IP
- 源
MAC
:路由器的MAC
- 目的
MAC
:目的主机的MAC