转:https://www.zhihu.com/question/50901704/answer/393216656
https://zhuanlan.zhihu.com/p/82435663
https://zhuanlan.zhihu.com/p/73807507
首字母:Please Do Not Tell Stupid People Anything
OSI是一个完整的、完善的宏观理论模型;而TCP/IP(参考)模型,更加侧重的是互联网通信核心(也是就是围绕TCP/IP协议展开的一系列通信协议)的分层,因此它不包括物理层,以及其他一些不想干的协议;其次,之所以说他是参考模型,是因为他本身也是OSI模型中的一部分,因此参考OSI模型对其分层。
1物理层:Physical
打个比方,淘宝卖家利用火车或船运,汽车等把货物送到你手里。而在计算机网络中,信息(货物)的传输我们最直观的感觉就是靠的光纤,双绞线等介质,同时计算机底层是识别二进制数据的,光纤等设备通过电信号(光信号)来表示这些二进制数据,比如大家都用10V表示1 0V表示0,并且规定统一了传输介质的特性,只要各个厂家共遵循这些特质就能正确传递数据了。
即,电脑之间(准确来说网络设备之间)物理连接的介质,以及网络设备与网络终端之间数据传递的规则称之为物理层,其中的数据是以比特的形式传递的。
单位:比特
2数据链路层:Data Link
有的买家在北京,有的在上海,所以要将仓库的货物分类封装。在链路层中,需要将比特流组合成字节的组合。类似于把地址相同的货物放到同一个集装箱中,只要集装箱到达,货物也就自然到达。这种把比特流组合成字节的组合我们称之为数据帧。对数据进行处理封装成数据帧并传递和错误检测的层就是数据链路层。
单位:帧
(tips:定义帧的开始和结束)
3网络层:Network
淘宝发货,从广州--上海(可以广州-长沙-上海;或者广州-福州-上海),网络层就是负责选择最佳路径,并保证数据始终沿着最佳路径传输。路由器的功能就是选合适的路径。
单位:数据包
(tips:选择最佳路径,规划IP地址)
4传输层:Transport
淘宝的货物可能很贵重你买了保险,可能就是很便宜的东西,你和卖家说丢了也无所谓(举个列子好吧)。对于不同的货物有不同的态度,传输层就是负责将数据进行可靠或者不可靠传递,负责终端之间的传送。(端—端!)
单位:数据段
(tips:确不确认丢包,和流量控制,不可靠通信:如一个数据包直接传输的时候不需要编码物理地址等)
这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。
5会话层:Session
你的淘宝收货后在小区部分有不同的收货地点(蜂巢快递,日日顺了家,某某快递等),信息传递给对方计算机某些特定的程序,会话层用来区分不同的进程。
(tips:如打开两个浏览器,输入两个地址,确认输入的地址和响应的内容在自己想要的浏览器上显示, netstat -n 可以查看会话 ,established为建立连接)
DNS:Domain Name System,域名系统
6表示层:Presentation
见名知意。对传输数据进行解密压缩等,针对不同类型数据进行格式描述。
(tips:如压缩加密图片后再传输,如微信界面发送信息再传输过程中加密再解密等,开发人员来进行加密 。)
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。
7应用层:Application
应用层有点复杂,但是是我们接触的最多的,简单的说,就是我们从屏幕上看到的信息,提供人(小白)和计算机交流的层
(tips:能产生网络流量的程序,如单击游戏不属于应用层)
是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。
另外,七层协议,如果没有底层,上层也无法存在。
来源:https://blog.csdn.net/weixin_42205776/article/details/102775083