网络原理初识
文章目录
- 网络原理初识
- 网络发展历程
- 独立模式
- 网络互联
- IP地址
- 端口号
- 网络协议
- OSI七层
- TCP/ IP协议
- 封装与分用
- 封装
- 一.应用层
- 二.传输层
- 三.网络层
- 四.数据链路层
- 五.物理层
- 分用
- 六.物理层
- 七.数据链路层
- 八.网络层
- 九.传输层
- 十.应用层
网络发展历程
独立模式
一开始电脑之间是相互独立的,并没有网络的概念
网络互联
根据网络互联的规模不同,就分为了局域网(LAN) 和 广域网(WAN)
局域网(local area network)是在一定的空间范围内进行电脑联机
广域网(wide area network) 通过路由器, 将多个局域网连接起来
IP地址
IP地址主要是用于识别网络主机 其他网络设备的网络地址, 也就是说, ip地址是用来定位主机的网络地址
回环地址: 127.0.0.1
端口号
在网络通信中, ip地址是用于识别主机地址网络,端口号是识别主机中发送 数据 接收数据的进程的, 也就是说, 端口号用于定位主机中的进程
网络协议
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
例如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互
通信交流。通常由三要素组成:
-
语法:即数据与控制信息的结构或格式;
类似打电话时,双方要使用同样的语言:普通话 -
语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
类似打电话时,说话的内容。 -
时序,即事件实现顺序的详细说明。
时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
协议(protocol)最终体现为在网络上传输的数据包的格式。
简单来说,协议是一种约定, 发送方和接收方约定好, 按照特定的格式进行传输
协议有很多并且也很复杂,这就不是很好
所以可以把这些协议按照相应的功能进行分层
协议分层
上层协议调用下层协议
下层斜体给上层协议提供服务
不能隔层调用
当前的网络分层主要是两种典型的分法:
OSI 七层
TCP/ IP五层(四层)
OSI七层
TCP/ IP协议
OSI主要是存在于教科书上的,显示生活中还是主要是TCP/IP协议为主,所以是重点,之后会重点进行讲解
其实OSI与TCP/IP协议最下面的四层是一样的,只是表述不同
OSI协议上面的三层合成一个就变成了TCP/IP的应用层了
应用层 : 应用程序
传输层 : 端与端的传输
网络层 : 点与点的传输
数据链路层: 相邻节点的传输
物理层 : 底层基础设施
最后一层是物理层,属于硬件,对于程序员来说,可以不用管物理层,所以有的资料上说, TCP/IP只有四层,但是最好还是记得五层
插一个小知识点: 缓存cache
在有些比较复杂的计算, 耗时会比较久, 为了提高速度,减少计算次数, 就可以把重复的计算结果记录下来, 这种用于记录结果的数据结构就叫做缓存(cache), 广义上说,动态规划也就是一种缓存,本质就是记录中间的结果
封装与分用
进行数据传输的时候,到底是如何进行的呢?
这就要用到TCP/IP七层协议了
假设当前A在2022年10月29号的20点给B发了一条微信"hi",这条数据到底是如何 传输的?
封装
一.应用层
微信程序已经约定好了一种应用层协议(自定义协议),具体是怎么约定的,我们不得而知,假设是按照下面的自定义协议
微信的应用程序会将这个数据报交给传输层协议 ,进行进一步处理
二.传输层
传输层是操作系统内核实现的, 操作系统会提供一些API给应用程序调用, 就能将应用层的数据交给传输层(交给了操作系统内核)
这里的操作系统提供的API叫做socket api
所以的API 全名叫做application programing interface
应用程序变成接口, 所谓的API就是别人写好的一组类/方法,给我们直接来调用
传输层里面有很多的协议, 最典型的就是TCP协议, 此处就以TCP协议为例
TCP协议要在之前数据的基础上, 加上TCP的数据报头,之前的部分看做是载荷部分(palyload)
TCP数据报头之后就要交给网络层处理了
三.网络层
在网络层中也是有很多的协议,其中最典型的就是IP协议
IP协议会把之前的这个TCP数据报看做是载荷部分, 在前面加上IP协议报头
在IP协议中有很多的信息,最关键的就是源IP和目的IP
构造好IP数据报之后,IP协议继续将整个数据报交给数据链路层
上面提到的传输层的TCP协议和网络层的IP协议里面都有很多的信息,后面会重点讲解
四.数据链路层
数据链路层的协议也很多,最主要的就是"以太网协议"
电脑差插上网线, 这个网线叫做以太网线,也是遵守以太网协议的
以太网协议既管数据链路层,又管物理层
以太网协议会将之前的这个数据报看做是载荷部分,在前面和后面分别加上帧头和帧尾
接下来,数据链路层就会将上面的数据报交给物理层
五.物理层
数据已经组织好了,通过物理层的网卡将上述的二进制bit刘, 转换成光信号/电信号,并进行传输
以上的五个步骤,数据从上到下, 层层添加信息的过程叫做"封装"
分用就是封装的逆过程
举一个例子:
封装就是一步一步打包快递
分用就是一步一步拆快递
分用
具体的分用过程 :
六.物理层
接收方的网卡收到的光信号/电信号,就把这个数据交给了数据链路层,又以太网协议负责解析
七.数据链路层
当前拿到了以太网数据帧,由以太网协议,去掉帧头和帧尾,取出载荷部分
将取出的载荷部分交给网络层
八.网络层
IP协议达到数据报,去掉IP报头,得到载荷部分,交给传输层
九.传输层
传输层TCP协议对数据报进行解析, 去掉TCP报头,交给应用层
十.应用层
微信程序对数据报进行解析, 取出其中的信息显示在界面上
这就完成了A给B发送微信的整个过程
以上的过程只是描述了发送发和接受方的封装与分用, 实际上传输还有很多的中间过程, A和B之间不是一个网线直连,所以中间还要经过交换机/路由器进行转发,所以真实的过程只会更加复杂.
上层协议调用下层协议,下层协议给上层协议提供服务
这里相邻的层是可以相互交互的,但是不能跨层
以上就是关于网络部分的初识,主要是介绍一下关于网络协议的概况,后面会具体展开介绍网络协议的细节。