1、网络基础概述
1.1、为什么需要网络
假设没有网络:(也就是将所有的计算机网络都关闭)
如果我的计算机上有非常不错的电影,想要进行传输,那就比较的费劲了;因为我们可能处在不同的城市、或者不同的国家;
但如果有了网络:(也就是将所有计算机通过网线连接在一起)
1、打破了地域上数据传输的限制;
⒉、提高信息之间的传输效率,以便更好的实现”资源的共享“;
1.2、什么是网络
网络是由"若干节点"和"连接这些节点"的链路构成,表示诸多对象及其相互联系。
网络是信息传输、接收、共享的虚拟平台,通过它把各个信息联系到一起,从而实现这些资源的共享。
网络将节点连接在一起,需要实现”信息传输“(信息通信)有几个大前提:
1、使用物理连接的介质将所有计算机连接在一起(网卡、网线、交换机、路由器);
2、双方在通信过程中,必须使用统一的通信标准,也就是通讯协议〈互联网通讯协议);
2、互联网通讯协议
协议其实就是规定了一堆标准,用来定义计算机如何接入internet以及接入internet的计算机通信的标准;所以计算机都需要学习此标准、遵循此标准来进行信息传输(信息通信)
国际标准化组织∶推出了OSI七层参考模型,将互联网通讯协议分成了不同的层,每一层都有专门的标准,以及组织数据的格式;(应用层、表示层、会话层、传输层、网络层、数据层、物理层)
对于写程序来说,通常会将七层归纳为五层协议;.(应用层、传输层、网络层、数据层、物理层)
2.1、OSI七层架构图

2.2、以太网封装与解封装动态图

2.3、OSI七层解析【压缩为五层】
2.3.1、物理层
物理层∶定义物理设备的标准,如网卡网线,传输速率;最终实现数据转成电信号传输
如果只是单纯发送电信号是没有意义的,因为没有规定开头也没有规定结尾
要想变得有意义就必须对电信号进行分组;比如: xx位为一组、这样的方式去传输,这就需要“数据链路层”来完成了;

2.3.2、数据链路层
数据链路层定义∶定义了电信号的分组的标准方式,一组数据称之为一个数据帧,这个标准遵循ethernet以太网协议,以太网规定了如下几件事;
1、数据帧分为head和data两部分组成;其中head长度固定18字节;
head︰发送者/源地址、接收者/目标地址(源地址6字节、目标地址6字节、数据类型6字节)
源地址:MAc地址
目标地址:MAc地址
data︰主要存放是网络层整体的数据,最长1500字节,超过最大限制就分片发送;
2、但凡接入互联网的主机必须有一块网卡,网卡烧制了全世界唯一的MAC地址;
3、有了以太网协议规定以后,它能对数据分组、也可以区分数据的意义,还能找到目标主机的地址、就可以实现计算机通信;但是计算机是瞎的,所以以太网通信采用的是"广播"方式;

什么是广播:
假设我们都在一个小黑屋里面,大家互相通信靠吼,假设 张三 让 李四买包烟;
1、数据︰买烟(类型:干粮)
⒉、源地址:张三
3、目标地址:李四
此时屋子里所有人都收到了该数据包,但只有李四会接收执行,其他人收到后会丢弃;
如果我们将全世界的计算机都接入在一起,理论上是不是就可以实现全世界通信:
首先:无法将全世界计算机放在一个交换机上,因为没有这样的设备;
其次∶就算放在同一设备上,每台计算机都广播一下,那设备也无法正常工作;
所以我们应该将主机划区域,隔离在一个又一个的区域中,然后将多个区域通过"网关/路由"连接在一起;
2.3.3、网络层
网络层定义︰用来划分广播域,如果广播域内主机要往广播域外的主机发送数据,一定要有一个"网关/路由"帮其将数据转发到外部计算机;
网关和外界通信走的是路由协议。其次网络层协议规定了如下几件事;
规定1∶数据包分成:head 和data两部分组成;
head∶发送者/源地址、接收者/目标地址,该地址为IP地址;
data :主要存放是传输层整体的数据;
规定2∶I地址来划分广播域,主要用来判断两台主机是否在同一广播域中;
一个合法IPV4地址组成部分= ip地址/子网掩码,在线子网计算器 ,如果计算出两台地址的广播域一样,说明两台计算机处在同一个区域中;

计算两台计算机是否在同一局域网(牵扯到如何发送数据)∶
假设:现在计算机1要与计算机2通信,计算机1必须拿到计算机2的ip地址;
如果它们处于同一网络(局域网)10.0.0.1-->10.0.0.100 :
1、本地电脑根据数据包检查目标IP如果为本地局域网;
2、直接通过交换机广播MAC寻址;将数据包转发过去;
如果它们处于不同网络(跨局域网)10.0.0.1-->39.104.16.126 :
1、本地根据数据包检查目标IP如果不为本地局域网,则尝试获取网关的MAC地址;
2、本地封装数据转发给交换机,交换机拆解发现目标MAC是网关,则送往网关设备;
3、网关收到数据包后,拆解至二层后发现请求目标MAc是网关本机MAC ;
4、网关则会继续拆解数据报文到三层,发现目标地址不为网关本机;
5、网关会重新封装数据包,将源地址替换为网关的wAN地址,目标地址不变;
6、出口路由器根据自身路由表信息将数据包发送出去,直到送到目标的网关;
2.3.4、传输层
传输层的由来︰网络层帮我们区分子网,数据链路层帮我们找到主机,但一个主机有多个进程,进程之间进行不同的网络通信,那么当收到数据时,如何区分数据是那个进程的呢;其实是通过端口来区分;
端口即应用程序与网卡关联的编号。
传输层的定义:提供进程之间的逻辑通信;
传输层也分成:head和data两部分组成;
head :源端口、目标端口、协议(TCP、UDP) ;
data : 主要存放是应用层整体的数据;

2.3.5、应用层
应用层定义∶为终端应用提供的服务,如我们的浏览器交互时候需要用到的HTTP协议,邮件发送的SMTP,文件传输的FTP等。