阿华代码,不是逆风,就是我疯
你们的点赞收藏是我前进最大的动力!!
希望本文内容能够帮助到你!!
目录
一:局域网
1:概念
二:局域网的连接方式
1:网线直连
2:集线器组建
3:交换机组建
4:基于交换机和路由器组建
二:广域网
1:概念
2:交换机和路由器的区别(面试)
三:网络通信
1:IP地址
2:端口号
3:通信所用端口
四:协议
五:五元组
六:协议分层
1:概念
2:优点
3:TCP/IP五层网络协议
4:设备所在层级
七:封装(数据发送过程)
八:分用(数据接收过程)
九:经典交换机的封装分用
十:经典路由器的封装分用
一:局域网
1:概念
局域网Local Area Network 简称LAN
局域网是本地,局部组建的一种私有网络
二:局域网的连接方式
1:网线直连
2:集线器组建
意识把一个网口扩展成多个,但扩展出来的多个网口彼此间会影响。而交换机则不会出现这种情况
3:交换机组建
交换机上所有的口都是一样的,连上的电脑就构成了局域网那个
4:基于交换机和路由器组建
路由器:就是我们常说的wifi、猫。上面有两种接口——WAN和LAN,
WAN口:WAN口接运营商给的网线
LAN口:构成局域网的电脑连到LAN口
路由器下面的LAN口还可以继续接交换机,(即对现有的路由器的端口进行扩展)交换机还能再接路由器,层层套娃
二:广域网
1:概念
广域网,Wide Area Network 简称WAN
通过路由器,把多个局域网连接起来,(可以理解成事几个局域网的集群),内部的局域网属于广域网的子网。
2:交换机和路由器的区别(面试)
路由器工作在网络层,交换机工作在数据链路层。
三:网络通信
1:IP地址
描述一个设备在网络上的位置,32位二进制数——由4个字节组成
用“点分十进制”方式表示——三个点分割开4个字节
2:端口号
描述主机上的每一个应用程序都有一个不同的整数端口号
主机收到网络数据之后,通过端口号来确定,把这段数据交给哪个应用程序使用。
3:通信所用端口
在一次网络通信过程中,涉及到的IP和端口,其实各有两个。
收件人地址——目的IP
收件人电话——目的端口
发件人地址——源IP
发件人电话——源端口
四:协议
通信过程中的一种约定,发送方和接收方提前约定好数据的格式,这样双方才能正确的沟通(就像电报,摩斯密码)
尽管双方的计算机不是同一个厂商生产的,但是在同一种协议下,两者能进行相互配合
五:五元组
在TCP/IP协议中,用五元组来标识一个网络通信
1:源IP
标识源主机
2:源端口号
标识源主机中该次通信发送数据的进程
3:目的IP
标识目的主机
4:目的端口号
标识目的主机中该次通信接收数据的进程
5:协议号
标识发送进程和接受进程双方约定的数据格式
六:协议分层
实际中,协议涉及到非常多的细节,庞大又复杂,不利于维护和更新。
于是我们就把协议进行了拆分——协议分层。
1:概念
上层协议会调用下层协议,下层协议给上层协议提供服务。只有相邻层次的协议可以沟通,不能跨层调用
2:优点
(1)上层协议直接使用下层协议,无需了解下层协议的细节
(2)某一层协议进行替换后,对其它层没有影响
(相当于下层协议内部怎么实现的,不用管,只要下层把协议封装好提供给上层一个接口就行了,好比我们写代码中调用函数的方法,只要达到目的就行,管你方法内部是怎样一个逻辑算法)
3:TCP/IP五层网络协议
(以下为通俗理解)OSI网络协议是大佬们搞出来的协议分层(共七层),但是实际开发中用不了那么多层,就简化成了五层也就是下图中的TCP/IP(这五层中,除了应用层,其它四层在计算机中都已经内置好了,作为程序员我们能影响到的就是应用层)
(1)应用层
传输的数据在应用程序中怎么使用
(2)传输层
关注网络数据包的起点和终点,从哪里来要到哪里去,端和端之间的传输
(3)网络层/互联网层
关注起点和终点之间,走哪条路,传输路径的规划
(4)数据链路层/网卡层
负责两个相邻节点之间的传输细节
(5)物理层/硬件
通信过程中的基础设施,都是一些硬件啥的
4:设备所在层级
以下谈到的设备都是“经典”的,现实中的路由器和交换机功能更复杂和强大
主机:操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP的下四层
路由器:实现了网络层到物理层,TCP/IP的下三层(主要工作在网络层)
交换机:实现从数据链路层到物理层,TCP/IP的下两层(主要工作在数据链路层)
集线器:实现了物理层
七:封装(数据发送过程)
注:封装和分用时网络传输数据过程中,最核心的流程
数据传输常用的单词
假设现在应用A要给应用B发送数据,发送过程主要操作为A
1:应用层
在应用层,应用数据包会根据应用层数据协议进行构造,再由应用程序调用操作系统的API,把数据包发给传输层
2:传输层
传输层会把应用层发过来的数据包,再构造成一个传输层数据包,此处构造遵循的协议,主要就是:TCP和UDP
假设用UDP协议——UDP数据包=UDP报头(header)+载荷(payload)
UDP报头:承载一些关键的用来转发数据的信息,最重要的信息就是源端口和目的端口
添加报头的过程就是对数据包进行封装成API
3:网络层
网络层涉及到最核心的协议,IP协议
同样,网络层调用传输层封装好的API,拿到UDP数据包,在IP(主要)协议的基础山,对数据包添加上报头,构造成一个IP数据包。
IP报头:承载一些辅助转发的关键信息,最关键的信息就是源IP和目的IP了
4:数据链路层
数据链路层涉及到最核心的协议,以太网
注:以太网就是我们日常中见到的有线网络,用到的网线也叫做“以太网线”,用到的网口叫做“以太网口”,用到的交换机叫做“以太网交换机”
以太网数据帧:以IP数据包为一个整体,在头和尾分别加上以太网帧头和以太网帧尾
5:物理层
物理层拿到以太网数据帧之后,把二进制这样的数据,转化为光信号、电信号、电磁波等进行发送
八:分用(数据接收过程)
假设现在应用A要给应用B发送数据,接受过程主要操作为B
1:物理层
B的物理层接收到信号后,把信号转换为二进制数据,得到一个以太网数据帧,把这个帧交给数据链路层处理
2:数据链路层
数据链路层按照以太网的格式,来解析,去除载荷,再交给上层协议
3:网络层IP协议
按照IP协议的格式进行解析,取出载荷,再交给上层协议
4:传输层UDP协议
按照UDP协议格式来解析,取出载荷,再交给上层协议
5:应用层
按照应用层相应的应用协议解析数据
九:经典交换机的封装分用
①交换机,拿到信号,进行二进制解析后,把以太网数据帧交给数据链路层
②数据链路层 解析:一方面取出载荷部分,一方面解析帧头中的信息,这并添加新的帧头帧尾构造出新的以太网数据帧
③传输给物理层,物理层在发送出去
十:经典路由器的封装分用
比交换机多了一层协议
①物理层拿到信号,转化成二进制以太网数据包,发给数据链路层
②数据链路层,解析拿到载荷,发给网络层
③网络层根据IP协议解析报头,取出载荷,重新封装,发送给数据链路层
④数据链路层加上帧头帧尾,发送给物理层
⑤物理层把二进制数据包转换为信号发送出去