1. 计算机网络七层模型
OSI 是 Open System Interconnection 的简写,意为开放式系统互联,国际标准化组织(IOS)制定了 OSI 模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。如下图所示
- 物理层:双绞线,光纤等传输介质,调制解调器(完成数模、模数转换)
- 数字链路层:数据校验,定义了网络传输的基本单位—帧,
- 网络层:定义网络,两台机器之间传输的路径选择 点到点传输 (路由器)
- 传输层:传输数据 只关心同通信的起始端和目的端,不在乎数据包的中转过程。 端到端传输
- 会话层:建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。
- 表示层:负责数据格式的转换,压缩与解压缩,加密与解密。
- 应用层:为客户提供各种应用服务,email服务,ftp服务,ssh服务
2. TCP/IP模型
OSI模型与TCP/IP对应关系
TCP/IP协议组体系结构使我们当今计算机网络实现的主要手段
2. 1数据链路层
-
数据链路层实现了网卡接口的网络驱动程序,以及处理数据在物理媒介(比如以太网、无线网等)上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节。
-
数据链路层常用的两个协议是ARP协议(地址解析协议)和RARP协议(逆地址解析协议)。它们实现了IP地址和机器物理地址(MAC地址)的相互转换。
2. 2网络层
- 网络层主要实现了数据包的选路和转发
- 网络层对上层协议隐藏了网络拓扑连接的细节(也就是点到点通信的细节),使得在传输层和网络应用层看来,通信双方是直接连接的
- 网络层的核心协议是IP协议。除了IP协议还有一个ICMP协议是用来检测网络连接状态的,应用层的ping服务就是通过这个协议实现的
2. 3传输层
- 传输层为两台主机上的应用程序提供端到端的通信,传输层只关心通信的起始端和目的端
- 传输层有三个重要的协议:TCP协议、UDP协议和SCTP协议
2. 4应用层
- 应用层负责处理应用程序
- 常见的应用层协议:http、telnet、DNS
- Linux下可以在/etc/services文件中查看一些常见的应用层服务
数据链层、网络层和传输层在Linux的内核中实现,而大部分应用层协议与服务是在用户空间实现的。
一些常见协议的分层如下
3. 不同分层之间的封装
上层协议通过封装来使用下层协议提供的服务。
其中的头部和尾部是协议规定的具体内容
待续。。。