计算机网络 —— OSI参考模型

  1. 应用层:所有能和用户交互,产生网络流量的程序。

    并不是所有的程序都属于应用层,不产生流量的程序就不属于应用层。比如打开记事本,写点东西,这不会产生流量,拔掉网线也能完成。当我们打开QQ登录的时候,这个程序就属于应用层。

  2. 表示层:在传输之前是否进行加密或压缩处理。传输的图片以什么格式进行表示,传输的文档什么格式进行表示。

    在前面介绍网页传输时,网页中有很多图片,有的图片在传输之前可以进行压缩,压缩完之后再进行分割传输,这样可以节省带宽。再举个例子,有些内容需要在传输前进行加密处理,然后再进行切割发送,在客户端收到完整的加密数据后再进行解密操作。这些都是表示层要解决的问题。

    比如两个人在用QQ进行视频聊天,在视频图片传输的时候,可以将图片进行压缩传输,另一方接收到图片后再进行解压,这样既不消耗特别高的带宽,同时视频还很流畅。这些在传输之前进行的处理都属于表示层。比如在网页传输到客户端之后,网页显示的时候出现了乱码,都可以认为是表示层出现了问题。

  3. 会话层:查木马 netstat -n。

    比如客户端打开IE浏览器,需要访问一个网站,这个浏览器需要和服务器建立一个会话,当服务器数据传输过来后需要放到浏览器特定的窗口中;当又打开一个浏览器界面访问另一个网站的时候,这时候这个窗口需要和服务器建立另外一个会话,服务器传输过来的数据需要传输到另外一个特定的窗口。

    如果没有会话层,服务器传输过来的网站信息就会发生混乱,无法确定数据应该传输给哪个窗口。比如当我们在看电影的时候,有时候需要快进或者倒放,这时候都是需要和服务器建立会话的。当通讯结束的时候,会话就结束了。

    我们可以通过cmd打开个人电脑的命令框,输入netstat -n查看当前的会话。查看这些会话有什么作用呢?通过查看会话可以知道计算机是否中了木马,木马程序和病毒程序不一样,病毒是对计算机进行破坏的,比如修改文件,破坏程序等。木马有很多种功能,比如盗号木马,盗QQ账号信息等。木马程序么没有对话框,都是在后台执行的,隐藏得很好,但是不管怎么隐藏都需要和外界进行通信,有通信就会产生会话,有会话我们进行通过刚才的命令查到(netstat -nb),通过这个指令就能发现建立会话的程序都是哪些程序。

  4. 传输层:实现可靠传输或者不可靠传输,流量控制。

    可靠传输中,当服务器向客户端发送数据包,当网络发生拥塞的时候,数据包有可能被丢弃,这时候客户端就没有办法接收到数据包,这时候因为可靠传输,服务器会重新发送数据包,直到客户端返回收到确认信息,这个就是传输层实现的可靠传输功能。

    流量控制是指服务器发送数据给客户端时,当客户端处理数据比较慢时,会通知服务器减缓数据发送速度,服务器会根据客户端返回的信息控制数据发送速度,这就是流量控制。

    什么情况下可以进行不可靠传输呢?举个例子,计算机解析网站的域名,计算机向DNS询问搜狐的IP地址,这时候只需要一个数据包就可以把询问信息发送给DNS域名解析器,DNS查找之后直接一个数据包就可以把结果返回给个人电脑客户端。这种一个数据包就能完成的通信过程不需要建立会话,所以这类通信是不可靠通信。当客户端向DNS询问网址IP时,如果数据包丢了,客户端就会重新发送一遍,反正一个包就能完事,不需要太繁琐的操作。

  5. 网络层:负责选择最佳路径,规划IP地址。

    比如当客户端和服务器进行通信时,现有的最佳路径是带宽最高的路径,当最佳路径断了,这时候路由器可以选择另外的路径进行通信,这时候网络层的功能就是选择最佳路径。

  6. 数据链路层:数据的封装,添加物理层地址(MAC地址);定义帧的开始和结束,透明传输,差错校验。

    就和铁路上跑的火车一样,火车有车头和车尾,中间是乘客。数据帧和火车类似,当一个客户端向另一个客户端发送一个数据帧时,怎么定义数据帧的开头和结尾呢?数据帧需要用特殊的位来表示开始和结束,当交换机看到这个特殊的头就认为是数据,然后开始接收数据,当看到结束符号时,则停止接收数据。也就是说数据链路层需要定义数据帧的开始和结束,这些开始和结束是特殊的0101二进制表示的头和结尾。

    当数据中正好有一部分数据和特殊的帧头或者帧尾一样时,计算机在发送的时候,当发现数据中有一部分数据和帧头或帧尾一样时,这时候会在一样的数据段前加上一个特殊的位来告诉接收端,这段数据不是真正的结尾,接收端发现这个特殊的位之后,会把这个特殊的位去掉,然后继续接收后面的数据,这一部分叫做透明传输。

    数据链路层可以进行差错校验,比如说有一个计算机和一个交换机,有可能在传输数据时发生错误,接收端在接收数据后通过检验信息发现数据在传输过程中是否发生错误。就和我们寄东西一样,比如发一个快递,里面有四张光盘和一本书,然后在快递的封皮上写上五件物品。对方收到快递后,发现只有四件物品,就会认为在邮递过程中发生了错误。

    数据帧的原理也是一样的,数据传输的时候是以01010形式表示的,同时再接上一段0101作为检验信息,然后加上帧头和帧尾。当接收端接收到数据后,使用检验信息检验数据是否在传输过程中发生变化。如果两者信息不符合,接收端就会把这个数据帧扔掉。所以数据链路层能够检查错误,但是没有纠错功能,纠错功能是由传输层完成的,数据链路层只负责接收正确的数据帧,错误的数据帧会被扔掉。

  7. 物理层:定义了网络设备的接口标准,电器标准,如何在物理链路传输更快。

    比如网线接口的水晶头只有八根网线,不能说这个网口有四根线,另外的是八根线的,所以说物理层规定了一些接口标准。同时还规定了一些电器标准,比如说在网络中传输的信号是0101,我们用电压值表示01,用规定的电压值表示1或者0。

以上就是OSI的七层模型,也就是说,我们要实现网络通信,要实现以上的方方面面技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值