应用层
应用层处于四层网络模型的最上层,作用是对应用进程提供服务,之后三层的目的是为了让应用层的数据传递到正确的位置。
我们平时使用的微信,开发的客户端\服务端(C/S)应用都处于这一层,常见的协议有HTTP、FTP、DNS、SMTP等等,应用层在封装数据时会表明数据的格式,在拆解时会按指定格式解析数据。
传输层
传输层提供进程间端到端的通信,主要负责传输应用层的数据包。本层的主要协议有TCP和UDP。
TCP(传输控制协议)提供可靠数据流传输(数据完整,顺序正确),处理数据包丢失,重复和重新排序等网络层IP协议不处理的问题,面向连接,不保留消息边界。
UDP(用户数据报协议),与TCP不同,它是无连接的数据报协议,采用尽力传递的策略并且不保证顺序,但是成本比TCP低很多,并且可以进行广播。
网络层
网络层的目的是把数据从源网络经过若干个节点发送到目标网络,主要有IP、ARP、ICMP、IGMP等协议。主要负责寻址(找到目标设备的位置)
IP协议是TCP/IP协议栈中的核心协议之一,所有TCP、UDP、ICMP、IGMP数据都是通过IP数据报传输。它为同一网络中的每个主机明确一个唯一的IP地址,并提供寻址和路由功能以便数据可以顺利到达目标网络(不同网络间数据经过路由器进行跳转)。IP协议本身无法发现那些IP数据包发送失败,也无法直接获取失败的诊断信息,所以需要ICMP这样的协议来进行辅助。
ICMP(Internet控制消息协议)协议是IP协议的辅助协议。主要用于主机与路由器之间传递控制信息,交换差错信息和其他重要信息。IPv4使用ICMP4,IPv6使用ICMP6.ping和traceroute命令都是基于ICMP协议的。
IGMP(Internet组管理协议)IPv4的辅助协议,提供广播(向网络中所有主机发送消息)和组播(向网络中的一个子集发送消息)。
ARP(地址解析协议)协议,由于用硬件交换的帧需要使用正确的硬件地址(MAC地址)定位到正确的接口,否则无法传输数据,所以要交换信息仅仅知道IP地址是不够的,而ARP协议的主要作用就是把IP地址解析成MAC地址(每个网卡唯一的MAC地址)。
数据链路层
数据链路层主要的目的是为IP模块发送和接收IP数据报,通过硬件把数据通过物理介质进行传输,并且对 0 1 信号按字节为单位进行分组(负责转换数字信号和物理二进制信号),每一组就是一个数据包,一个数据包就是一帧。