一、TCP/IP网络分层模型*(四层协议)
TCP/IP的设计者创造性的提出“分层”的概念,把复杂的网络通信划分出多个层次,再给每一层分配不同的职责,采用“分而治之”的方法解决了网络通信的难题。TCP/IP是一个纯软件的栈,缺少物理设备。
TCP/IP协议共有四层,链接层(MAC层) → 网际层(IP层)→ 传输层(TCP层)→ 应用层 各层之间传输的内容可以统称为 数据包
第一层叫“链接层”,负责在以太网、WiFi这样的底层网络上发送原始数据,工作在网卡的层次,使用MAC地址来标记网络上的设备,所以也可以叫MAC层。传输单位是“帧”。
第二层叫”网际层”或者“网络互连层”,用IP地址取代MAC地址,把许多局域网、广域网连接成一个虚拟的巨大网络,在这个网络里找设备时只有把IP地址再“翻译”成MAC地址就可以了。传输单位是“包”。
第三层叫“传输层”,负责保证数据在IP地址标记的两点之间“可靠”地传输。传输单位是“段”。
第四层叫“应用层”,有各种面向具体应用的协议,HTTP、FTP、SMTP等。传输单位是“消息或报文”。
TCP协议还有一个小伙伴UDP协议,两者相比之下,TCP是一个有状态的协议,需要先三次握手与对方建立连接才能发送数据,而且保证数据不丢失不重复。UDP则比较简单,无状态,不用事先建立连接就可以发数据,但不保证数据一定发送到对方。两个协议的重要区别在于数据的形式。TCP是连续的“字节流”,有先后顺序,UDP则是分散的小数据包,是顺序发,乱序收。
二、OSI网络分层模型(七层协议)
OSI:“开放式系统互联通信参考模型”,从下到上分别是:物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表示层 → 应用层
第一层:物理层,网络的物理形式,如电缆、光纤、网卡、集线器等。
第二层:数据链路层,相当于TCP/IP协议的链接层;
第三层:网络层,相当于TCP/IP协议的网际层(IP层);
第四层:传输层,相当于TCP/IP协议的传输层;
第五层:会话层,维护网络中的连接状态,即保持回话和同步。
第六层:表示层,把数据转换成合适的、可理解语法和语义。
第七层:应用层,面向具体的应用传输数据。
TCP/IP无物理层,第五、六、七层对应应用层,TCP/IP协议和OSI协议就对应起来了。
辨别四层和七层,“两个凡是”:凡是由操作系统负责处理的就是四层或四层以下,凡是需要有应用程序处理的就是第七层。
二层转发:设备工作在数据链路层,帧在经过交换机设备时,检查帧的头部信息,拿到目标的MAC地址,进行本地转发和广播。
三层路由:设备工作在IP层,报文经过有路由功能的设备时,分析报文的头部信息,拿到IP地址,根据网段范围,进行本地转发或者选择下一个网关。