OSI模型划分为7层,TCP/IP划分为4层,实际上有5层
OSI模型的目的是为了解决主机之间的通信,那么每一层在这里起了什么作用呢?
- 物理层: 实际物理上的连通,用电、光等物理媒介,但是信号并不是一条路走到底,信号需要去到哪台设备是需要定向的,因此需要更高级一点的网络模型
- 数据链路层: 数据链路层将比特封装成帧,封装的时候会加上物理地址(MAC地址),但是使用MAC地址来作为唯一的寻址方法是不科学的,因为两个MAC地址相似的网卡,在位置上可能相差千里,因此物理地址很难做出快速定位。因此需要IP地址来进行寻址,IP这样的逻辑地址就是实现端到端的基础,而不是物理地址那样的跳到跳传输。
- 网络层: 路由器也是网络层的核心。将数据封装为包,在封装为二层的帧之前就是包,路由器根据包里的IP地址进行路由转发,地址管理和路由选择就是这一层的核心,虽然有MAC地址和IP地址可以抵达对方的主机,但是对方主机可能运行着无数多个软件进程,如何让数据去到正确的进程里?就需要端口号。
- 传输层: 在网络层的端到端的基础上,实现了服务进程到服务进程的传输。段就是传输层里数据的名字。负责可靠传输(TCP)和不可靠传输(UDP)
- 会话层:管理登录状态、同步服务
- 表示层: 负责编码和解码,加密、压缩等
- 应用层: 在不同主机上的两个应用程序如何沟通?使用HTTP协议,开发者根据HTTP协议编写应用程序。
数据流通过程
注:
上述所有的封装过程都是由操作系统完成,最后数据的发送一定是通过网卡发送出去。
接收和解封同理。
内容来源技术蛋老师|OSI七层网络参考模型