在 什么是网络? 中,你已经知道计算机网络是物理连接的“局域网”和工作于这个局域网上的“网络协议”,并且我们的重心是网络协议。有关网络协议,按照目前的分层方式主要有两种,一种是OSI七层模型(忽略它,没什么卵用 :)),一种是TCP/IP四层模型。下面我们主要来看看它们的对应关系和工作在不同层的具体协议。
OSI | TCP/IP | 常见网络协议 |
应用层(Application) | 应用层 | HTTP(超文本传输协议) FTP(文件传输协议) DNS(域名系统) |
表示层(Represent) | ||
会话层(Conversation) | ||
传输层(Transport) | 传输层 | TCP(传输控制协议) UDP(用户数据报协议) |
网络层(Internet) | 网络层 | IP(网络协议) ICMP(网络控制消息协议) ARP(地址解析协议) RARP(反向地址解析协议) |
数据链路层(DataLink) | 数据链路层 | |
物理层(Physical) |
请再看一次上面的图片,确保你记住了每层对应的网络协议。现在你可能还有疑问:为什么要分层呢?答:说白了就是因为在网络传输中,所需要解决的问题不是同一个类型的或者层次的,比如要实现传递可靠数据(传输层),先要实现能传递数据(网络层),那最起码需要实现两台电脑之间能发数据包(数据链路层)。所以分层的解决方式无疑成为了首选,每一层都有自己需要解决的问题,下层协议为上层协议提供帮助。就像工厂的流水线一样,从最初的产品 -> 纸袋包装 ->礼品盒包装 ,而对面打开的次序刚好是相反的(数据包的拆包亦是如此)。下面我们要从协议最底部出发,沿着 数据链路层->网络层->传输层->应用层 的顺序依次分析这些协议。