网络协议:
协议实际上可以称为一种“约定”,通过网络通信中的数据约定,不同主机必须遵循相同的网络协议才可以实现通信。
协议即为通信双方都认识的结构化的数据类型
协议分层
协议的本质也是软件,在设计上为了更好的进行模块化,解耦合,被设计成为了层状结构
OSI
网络中分层有:OSI七层模型和TCP/IP五层模型
- 把网络从逻辑上分为了七层结构,每一层都有相关的,相对应的物理设备
- OSI七层模型是一种框架性的设计方法
而工程实践中只有五层协议,也就是TCP/IP
TCP/IP五层模型
TCP/IP
是一组协议的代名词,它还包括许多协议,组成了
TCP/IP
协议簇
.
TCP/IP
通讯协议采用了
5
层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
由于物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型
为什么要有TCP/IP?
每一个计算机内部都有自己的协议,而网络通信最大的特点就是主机之间的距离变远了,而距离变远则会带来一系列新的问题,而解决新问题就需要新的协议
- TCP/IP协议本质是一种解决方案
- TCP/IP协议能分层,前提是问题是分层的
网络传输流程:
首先知道主机之间是如何进行通信的?
报文=报头+有效载荷,主机之间通信通过识别报文一层一层的往下解包实现,每一台主机都有一个唯一的标识:mac地址
mac地址:
- MAC地址用来识别数据链路层中相连的节点;
- 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)
mac地址通信:
- 在以太网中,任何时刻都只能有一台机器向网络中发送数据
- 如果多台机器发送数据,就会发生数据干扰,统称为数据碰撞
- 所有发送数据的主机都需要进行数据检测和碰撞避免
- 用户A发送数据,数据一层一层的往下包装为报头
- 到达网卡后发送给B
- B通过网卡把数据推送进底层,一层一层的向上解包拿取数据
- 这种通信方式可以视为一种栈结构,封装的过程为栈的入栈,解包的过程为弹栈
- 因此tcp/ip也叫做网络协议栈
IP与MAC地址的区别:
- IP在整个路由地址中是一直不变的
- Mac地址一直改变
- 目的IP是一种长远目标,而Mac是下一阶段目标,目的IP是路径选择的重要依据,mac地址是局域网转发的重要依据