计算机网络,是计算机的基础课程,也是对互联网应用开发人员,必须要了解或者深入理解的一门网络课程,也是必要的基础。一般,在面试中,都被涉及或者解剖的问题。
OSI 模型各层间关系和通讯时的数据流向如图所示:
图1
只看以上图,对刚接触网络协议层或者理解不深刻的童鞋来说,这7层,还是比较抽象。
首先再看下以下一张图,看下这七层协每层对应了哪些仪器或者协议
图2
七层模型介绍
物理层: (线路、无线电、光纤、信号)
物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;
eg:RJ45等将数据转化成0和1; 复制代码
数据链路层: (以太网、令牌环、帧中继、HDLC等)
数据链路层通过物理网络链路?供数据传输。不同的数据链路层定义了不同的网络和协 议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控;
可以简单的理解为:规定了0和1的分包形式,确定了网络数据包的形式;复制代码
网络层:(IP、ICMP、IPX等)
网络层负责在源和终点之间建立连接;
可以理解为,此处需要确定计算机的位置,怎么确定?IPv4,IPv6!复制代码
传输层:(TCP、UDP、SCTP等)
传输层向高层?提供可靠的端到端的网络数据流服务。
可以理解为:每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信!常用的(TCP/IP)协议;复制代码
会话层:(ASAP、TLS、SSH、BSD sockets等)
会话层建立、管理和终止表示层与实体之间的通信会话;
建立一个连接(自动的手机信息、自动的网络寻址);复制代码
表示层: (XDR、SMB等)
为不同终端的上层用户提供数据和信息正确的语法表示变换方法。如文本文件的ASCII格式和EBCDIC,用于表示数字的1S或2S补码表示形式
可以理解为:解决不同系统之间的通信,eg:Linux下的QQ和Windows下的QQ可以通信;复制代码
应用层: (HTTP、SMTP、FTP等)
OSI 的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等;
规定数据的传输协议;复制代码
按照上面的剖析,各层的关联理解如下:
物理层的主要功能就是利用物理传输介质,为数据链路层提供物理链接,以便透明地传输比特流。
数据链路层的主要任务是加强物理层对比特流的原始传输,为网络层提供一条无措的线路。
网络层主要就是为原始数据,提供原始端口到目标端口的路由选择,使数据能够正常无损的传输。
传输层的主要任务就是从会话层接收数据,针对数据量的大小,把数据适当的分成较小的单元,然后保证各段数据完好无损的传输。
会话层允许不同机器上的用户建立会话服务。
表示层主要关心的是如何传输信息的语法和语义,为了让不同方法的计算机之间可以正常通讯。
应用层的主要任务就是接收数据,把数据传输给底层处理,然后把数据展示显示给最终用户。