网络基础(一)
1. 协议
协议是一种约定,是同种事物之间约定好的通识。
例如计算机之间的传输媒介是光信号和电信号,人与人之间用语言交流,这种就是协议,协议可以有很多种
只要两个主机之间约定好了一个协议,两个主机就可以任意链接了吗?
计算机的厂商有很多,对应的操作系统也有很多
网络硬件设备也有很多诸如电信的和移动的
所以如何让各个不同的厂商之间进行建立共识呢,此时就需要提出了一个共同的标准,这就是网络协议
2. 网络协议初识
2.1 协议分层
因为需求,协议是同一层级之间的的约定,但是有时候层之间要存在上下级调用关系,所以出现了分层的概念
例如两个人要打电话聊天,那么这两个人就是一层,之间用的聊天语言就是一层协议,电话之间是一层,电话之间肯定也有共同的协议来达成通信
同一层可以有多个协议存在,因为差异原因
所以对于每层之间可以存在多个协议,层次之间存在调用关系,但是下层只需要进行封装,暴露出相应的接口供上层调用即可,这就是面向对象的思想。
**分层的优点 : **
- 各层之间相互独立,每层之间都有相应的接口,链接上下层
- 任意一层发生变化,只需更改相应的接口即可,该层的上下层不受影响
- 若整个的系统被分解为若干个相对独立的子系统即分层思想,在进行调试和维护时,可以对每一层进行单独的调试,并不因为某一层的缘故从而导致整个系统瘫痪
将功能比较集中耦合度比较高的模块合为一层,再向下分层,这种分层利用了高内聚低耦合的思想 , 使层与层之间进行解耦
网络之间的层次更复杂,拥有更多的层次
2.2 OSI七层模型
- OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范;
- 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
- OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
- 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七 个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
- 但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解.
OSI七层模型
- 应用层 : 针对特定应用的协议。
如某邮箱登录时的协议,QQ登录时的协议等。
- 表示层 : 设备固有数据格式和网络标准数据格式的转换
接受不同形式的信息,如文字,声音,图像,音频等。
-
会话层 : 通信管理,负责建立/断开通信连接
-
传输层 : 负责两台主机之间的数据传输,为通信提供服务,获取数据包等
如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标 主机
- 网络层 : 主机发送到目的主机之间要经过很多节点,其中途中的节点就行地图一样,所传输的信息甚至可能经过很多通信子网,网络层负责地址管理和路由转换,选择合适的节点,确保数据传送成功
例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规 划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层
- 数据链路层 : 因为一台主机发送到目的主机之间肯定不是直接发送,肯定需要中间有媒介,是一段一段传输的,这就需要使用专门的协议来进行节点之间的传输,数据链路层将网络层交下来的帧进行封装,加上自己的报头然后节点之间进行传输
例如 :
以太网
,令牌环网
,无线LAN
等标准都在数据链路层,此外数据链路层还负责帧同步(比如传送信号逐渐衰弱,给你加强一下信号),检测差错等
-
物理层 : 最低的一层,物理层的作用是实现计算机节点之间比特流的透明传送
该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性,过程特性)
该层主要是和硬件有关,与软件关系不大
比如现在以太网用的网线(双绞线),光纤,有线电视的电磁波信号等都是属于物理层,物理层实现节点之间比特流传送
其中
数据链路层和物理层可以当作一个整体即为:设备驱动程序与网络接口
网络层和传输层可以当作一层,这个部分是由操作系统实现的
其他三层可以当作应用程序部分
这个整体就好比操作系统一样,所以网络中包含操作系统,操作系统中包含网络
2.3 TCP/IP四层(五层)模型
因为最上边三层应用层
,表示层
,会话层
一般都是在一起的,通常都是将这三层合为一层,统称应用层
并且物理层是硬件方面处理传输信号的,有时候也叫做四层
四层 即
- 应用层
- 传输层
- 网络层
- 数据链路层
3. 网络传输基本流程
协议报头的认识
- 每一层都要有至少一个协议,每个协议的代表实现就是报头
- 协议通常是由报头来表达的
- 每一份数据在每一层协议中都要有对应的报头
报头可以理解为卖家发货,各个快递站之间通过快递单来传输标识,这里快递单就是报头,快递站和快递员之间为一层
局域网的工作原理(初识)
- 在同一局域网的两台主机可以直接通信
- 每一台主机都有自己的“名字”,每一个主机都有自己的网卡,每一张网卡都有一个MAC地址,这个地址在局域网内是唯一的,就好比身份证一样。
如上图,假设局域网中有8台主机,其中MAC地址为MAC1的主机为消息发起人,假设要给MAC5发消息,工作原理是:
- 发起人MAC1经过网络中给所有人发送同样的消息,所有人都能收到,判断自己是不是MAC5的话那么就把该消息抛弃,所以只有MAC5收到该消息了
在任何时刻,只允许一个局域网中一次只能有一个主机发送消息
假设同有两台主机发送消息,那么会发送消息碰撞 : 碰撞域
所以,站在系统角度,网络中的资源是都可以看见的---->共享资源---->但是局域网中一次只能一个主机发送消息----->对应互斥---->所以网络也是一种临界资源
3.1 网络传输流程
流程 : 用户发送 “呵呵”的消息,在应用层封装一层,然后发送给传输层,传输层封装,然后网络层进行封装,然后数据链路层进行封装,通过数据链路层进行传输,其中每一层封装的东西就是报头,封装的内容称为有效载荷,传输给目的的,然后目的地的数据链路层接受,然后向上将报头和有效载体进行分离进行解包,然后定向发送给上一层,然后依次流程,目的主机就能收到发送的消息了
报头和有效载荷分离额过程叫做解包。
有效载荷定向的向上进行交付的过程叫做分用。
跨网段的主机的文件传输
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链 路层叫做帧(frame)
4. 网络中的地址管理
IP地址
IP协议有两个版本一个是IPv4,另一个是IPv6,IPv6的普及没有那么广泛,IPv4依然是现在大部分使用的场景
以下都是对IPv4的阐述
- IP地址是IP协议中用来标示网络中不同主机的地址
- IPv4是4字节的,32位整数
- IPv4使用的是点分十进制,其中每个数范围为0-255,eg: 120.80.65.00
MAC地址
MAC地址就好比出序列,但功能不止是溯源,MAC地址用来识别链路层中相连的节点
- 长度为6个字节,48位,一般用冒分十六进制表示 eg : 08:00:27:03:fb:19
- MAC地址在网卡出厂时就确定了,不能更改,是全球唯一的(除了虚拟机外)