因为本身学院的课非常“国际化”,基本上将软工和CS常见的一些课,例如编译原理、汇编语言、计算机网络等都用 CMU 的 ICS 和 MIT 的 CSE 代替了,因此前面那些课我都没学过,编译汇编两个还好,对实际开发编码影响没那么大,但是计网从自己的实际需求出发,感觉掌握的还是太浅了,而且从找实习的情况来看,外面的面试官又不知道你学没学过,都是默认计网是必修课,答的不好就会刷掉你,因此还是写一篇总结,完善一下计网里的基础知识吧。
网络分层架构
OSI分层
总共七层,由上而下为:
- 应用层:直接为用户的应用进程提供服务,其中应用层协议包括万维网的HTTP协议,电子邮件的SMTP协议,文件传输的FTP协议等。
- 表示层:它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。
- 会话层:是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
- 运输层:传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。
- 网络层:其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
- 数据链路层:该层的主要功能是: