初识网络原理

一 ,网络初始
互联网是咋来的?
最初很多的先进技术,都是先军用后来发现太好用了,就慢慢普及到民用
互联网也是如此
互联网之前,可以通过有线/无线发电报,打电话,但是缺点也非常明显,通信链路容易被打击,所以关键问题就是受到打击,如何让通信链路仍然正常, 于是就有人提出多搞几条链路
在这里插入图片描述
当这里的链路足够复杂的时候,就意味着即使整个路径上,有一部分被摧毁了,仍然有很大可能找到一条能通过去的路。

上述的体系演化出了今天的互联网

国内互联网的兴起是从2000年左右开始

局域网:早期的局域网是有交换机,网线,电脑组成的 缺点就是范围受限制
广域网:把很多的局域网连接起来(使用更多的路由器,网线),当局域网的规模够大,就成了广域网(局域和广域没有明确界限)

IP地址:标识一台主机在互联网的位置
端口号:标识主机上的那个程序

二 ,网络发展背景
单机阶段 => 局域网阶段 => 广域网阶段 => 移动互联网阶段

1.非常核心的概念:协议!!!
协议就是一种:“约定”,发送放约定了他发的数据是啥格式的,接收方也得理解这个格式,两边对上号才能进行正确的通信!!!
网络传输本质上都是通过网线/光纤/无线/电信号或者光信号来进行传输。
传输了一系列的高电平和低电平(电压),就可以使用高电平和低电平来分别表示0和1这样的二进制位。
2.虽然可以传输二进制数据了,但是这些0和1表示的意思是啥??
因此,在传输之前,就需要让发送方和接收方都约定好,每组0和1都是啥意思。
3.在网络通信中,需要约定的协议,其实是非常非常复杂度!!!
面对复杂环境,就需要复杂协议,但是协议太复杂也不好,一个协议太复杂了,就可以拆分成多个协议.协议是拆分出很多了,但是存在有些小的协议,作用或者定位是类似的,就可以针对这些小协议,进行“分类”,同时在针对这些不同的类别,进行分层。

分类:就是把功能相似的分到一个组里。
分层:相当于约定了层级和层级之间的调用关系,要求上层协议调用下次协议,下层协议给上层提供支持,不能跨层调用。
4.协议分层的好处
在这里插入图片描述
如图所示比如他们都用的是汉语协议和电话机协议,语言是一层 电话机是一层,所以这里面的协议就分成了两层,后续就可以比较容易的针对这里的某一层协议进行替换,比如左下角就把通讯设备给替换了,右下角就把语言协议给替换了,都不影响了。
1.分层之后就可以做到,层次之间,耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节
2.方便的对某一层的协议进行替换

三.真实的网络协议具体怎么分层的?
1.OSI七层网络模型(仅仅存在于教科书上的)
2.TCP/IP五层网络模型(当下最广泛使用的网络模型)(重点)
2.1应用层:关注传输过来的数据,要干啥用
2.2传输层:不考虑终极那路径,只关注起点和终点
2.3网络层:主要负责两个遥远的节点之间,路径规划
2.4数据链路层:主要关注的是两个节点相邻点之间的传输
2.5物理层:网络通信的基础设施,光纤.网线.网络接口等等… 、网络上的高速公路
在这里插入图片描述
图左描述OSI七层网络模型,图右表示TCP/IP表示五层网络模型,侧面表示定位网卡层就是(数据链表层)硬件就是(应用层)只是换了个叫法不影响,它俩都是有驱动程序提供的,
传输层和互联网层(网络层)他俩都是操作系统提供的,应用层是由应用程序锁提供的。
就主要关注应用层,传输层,要被应用层调用的。

四.在协议分层的背景下,数据如何通过网络传输?

1.1封装&分用
封装:发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装。
分用:接收方收到数据,要把数据从下往上,依次交给对应的层次的协议,进行解析。
数据包本质上是字符串的拼接

1.2传输层拿到上述数据
应用层要调用传输层提供的api(应用程序编程接口),来处理这个数据
传输层有很多协议,最典型的是TCP和UDP,会针对数据包在进行封装
一个典型的数据包都是通过报头(属性信息)+载荷(你要传输的数据)的方式构成的
其中较为关键的两个(源端口和目的端口)源端口表示发送方程序的端口号,目的端口表示接收方程序的端口号

1.3 传输层到网络层
比如已经有了UDP数据报,接下来就要把这个数据报交给网络协议层.
网络层最常见的协议,就是IP协议
(上述UDP数据报,到达网络层,还需要进一步的封装,添加上IP协议报头)
整个UDP数据报,作为IP的载荷
其中最关键的IP(源IP(这个数据报从哪里发)和目的IP(这个源IP发到哪里))
通过源IP和目的IP就描述了这次传输中,最初的起点和最初的终点
1.4 网络层交给数据链路层
最典型的协议,叫做以太网
比如最常见的数据链路层的网络,平时使用网线上网,就是再用以太网(以太网线),以太网线是遵守了以太协议.
以太网他不仅仅是数据链表层的而是“横跨”数据链路层+物理层的.
在以太网就有一个以太网数据帧
所以就会在原来的的数据报中加上以太网帧头和数据报尾处加上以太网帧尾(头部加一个和尾部加一个)其中以太网帧头会有“源mac地址”和“目的mac地址”.
由此我们引出来一个新概念,mac地址,叫做物理地址,也是描述一个主机在网络上的位置,此时我们会发现他的功能和IP很相似的,但是当下就把这两个地址分别作用于不同的用途:
IP用来进行网络层的路径规划
Mac用来进行描述数据链路层,两个继续传输的相邻节
理论上(mac和网卡绑定的,全世界的网卡,每个设备都会有一个自己唯一的mac地址,但是ip则不是

1.5 数据链路层就要把上述以太网数据帧交给物理层了
物理层会把这些0101的二进制数据,转换成光信号/电信号/电磁波信号,进行传输了

上述过程操作系统帮咱们封装好了.

接收过程和上述过程正好相反
发送:从上到下,依次封装,新增报头
接收:从小到上,依次解析,去掉报头

忽略中间转发的过程,只考虑电脑收到消息的情况

2.1物理层,网卡,收到高低电瓶二进制数据,就会对这里的信号进行解析,还原成0101这样的二进制序列.

2.2从物理层交给数据链路层
此时就把上述0101这系列数据当做一个以太网数据帧.(此处就是以太网线,收到数据,就是要交给以太网协议来处理了)
把帧头去掉,帧尾去掉,取出中间载荷,再往上交给网络层
以太网数据帧帧头中有一个消息类型 根据这个类型就知道了网络层iP协议了

2.3网络层
此时就由网络层的IP协议进行解析数据报,也是去掉IP报头,同时会做一些工作,最重要的还是取出载荷,交给更上层的传输层协议.
ip数据报,报头中也有一个字段,标识当前传输层用的是那个协议

2.4 传输层
此处是由UDP来解析处理的,还是去掉报头,取出载荷,把数据交给应用层
借助端口号来区分具体的应用程序 换句话说 每个要接受网络数据的应用程序都需要关联上一个端口号.

2.5应用层
由发送方的程序进行解析应用应用层数据报
取出里面的字段,放到程序的界面中

发送方,层层分装,包装快递
接收方,层层分用,拆快递

真实的网络环境中,数据的传输中间可能要经历很多节点进行转发

在这里插入图片描述
方块代表交换机,圆圈代表路由器
从应用层封装到物理层 交换机进行分用,从物理层分用到数据链路层此时知道当前这个数据报的目的mac对不对就行了 然后交换机针对这个数据重写封装,从数据链路层封装到物理层,把数据继续转发
重新封装源mac和目的mac就变了

路由器收到数据,会从物理层分用到网络层,根据当前得到的目的ip进行下一阶段的寻路操作 (IP协议是在一边传输的过程中,一边规划路径)
把数据包重新封装,从网络层封装到物理层(此时经过数据链路的时候,也会调整mac地址)

中间的交换机,只需要封装分用到数据链路层(只需要改源mac目的mac)
中间的路由器,则需要分装分用到网络层(也需要改mac,同时还需要根据目的地的ip进行下一段路径的规划)
上述内容说的是“经典”交换机路由器,也就是出现在教科书上的交换机和路由器

但是实际上,真实的世界上的路由器/交换机,之间的界限越来越小了,路由器可以通过设定特殊模式,只进行二层转发,交换机也有高端交换机,支持三层转发,甚至路由器/交换机还可以封装分用到传输层甚至应用层

通常也说,交换机是进行“二层转发”(物理层和数据链路层),路由器进行“三层转发”(物理层和数据链路层还有网络层).

每次消息的传输,都会涉及到封装分用
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值