java网络编程:3、ISO/OSI七层参考模型

声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!

文章目录

ISO/OSI七层参考模型

七层参考模型,通信的注意点

对等通信示例

系列文章(java网络编程)


ISO/OSI七层参考模型

OSI(Open System Interconnection)参考模型,将网络的不同功能划分为7

国际化标准组织提出了ISO/OSI七层参考模型,从下往上看

第一层是物理层:提供二进制传输,确定如何在通信信道上传输比特流。

第二层是数据链路层:提供介质访问(接入),加强物理层的传输功能,建立一条无差错的传输线路。

第三层网络层:提供ip寻址和路由。因为在网络上数据到达一个目的地,可以有多条线路,网络层就负责找出最佳的传输线路。

第四层是传输层:为原端主机到目的端主机,提供可靠的数据传输服务,隔离网络的上下层协议,使得网络应用与下层协议无关。

第五层是会话层:会话层在两个相互通信的,应用进程之间建立组织和协调,其相互之间的通信。

第六层是表示层:处理被传送数据的表示问题,即信息的用法和语义,如有必要使用一种通用的数据表示格式,在多种数据格式表示之间进行转换。例如在日期、货币、数值等本地数据表示格式与标准数据表示格式之间进行转换,还有数据的加解密、压缩解压缩等。

第七层是应用层:为用户的应用程序提供网络通信服务,我们要注意的是OSI七层参考模型,并不是物理实体上存在这七层,这只是一个功能的划分,是一个抽象的参考模型。在我们进行一次网络通信的时候,每一层负责为我们这一次通信,提供本层的功能。

 

七层参考模型,通信的注意点

通信实体的对等层之间不允许直接通信。

我们一个通信实体跟另一个通信实体进行通信,那么在他们的对等层之间不允许直接进行通信。

比如说在我们通信实体之间的传输层 和 另一个通信实体的传输层之间 不允许直接通信。

各层之间是严格单向依赖。

上层使用下层提供的服务— Service user

那么传输层要使用网络层的服务,传输层就作为一个服务的使用者。

下层向上层提供服务— Service provider

下层向上层提供服务,作为服务的提供者

 

对等通信示例

在中国的一个教师要向在德国的一个教师问好,他说了一个你好,然后这个数据呢,就要由这个翻译,翻译将它翻译成英文,然后将这个数据交给秘书,秘书通过传真,然后使用电话线路,将这个数据,发送给了在德国的秘书,在德国的秘书将这个数据拿到之后,讲给了翻译,那么德国这边的翻译将这个英文,翻译成了德文的海螺(Hallo),交给德国教师。那么这个德国的教师就知道,中国教师向他问好,那么这个信息传递的过程,就是在网络上我们两个通信实体,进行通信的一个过程。

 

作为上层来说它要使用下层给它提供的服务,那么中国教师要使用翻译提供的翻译服务,翻译要使用秘书提供的传真服务。那么这个数据是在我们最底层,通过我们的物理通信线路传输出去的,但是对于中国教师和德国教师来说,他们有一个虚拟的连接,中国教师所说的你好,最终是到了德国教师这里,那么他认为我是在和这个德国教师直接进行通信,实际上这个通信是通过下层所提供的服务来完成的。

 

那么对于我们的翻译来说,他也认为他们之间也是在直接进行通信,那么最终的通信是通过最底层的一个物理的通信线路来完成的,那么传真与传真之间是用传真进行通信。

那么一个实体跟另外一个实体进行通信的时候,一个应用层发送的数据通过表示层、会话层、传输层、网络层、数据链路层,最后达到我们的物理层,物理层将数据传送到另外一个实体的物理层,然后这个数据依次从物理层、数据链路层等,依次向上传递,最终达到我们的应用层。那么这就是两个通信实体,他们在进行通信的时候,数据输出的一个过程。

 

对等层通信的实质:

1、对等层实体之间虚拟通信

即对等层实体之间,他们是一个虚拟的通信。

2、下层向上层提供服务,实际通信是在最底层完成。

 

系列文章(java网络编程)

 java网络编程:1、计算机网络?网络通信的组成?什么是ip、协议、端口号?

 java网络编程:2、IP地址、协议、网络状况、网络异质性问题的解决

 java网络编程:3、ISO/OSI七层参考模型

 java网络编程:4、OSI各层所使用的协议

 java网络编程:5、数据封装

 java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系

 java网络编程:7、端口、套接字(socket)的引入

 java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端

 java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序

 java网络编程:10、基于TCP的socket编程(三)缓冲流、flush方法、关闭流

 java网络编程:11、基于UDP的socket编程(一)理论、基本步骤

 java网络编程:12、基于UDP的socket编程(二)代码通信-简单实例

 java网络编程:13、基于UDP的socket编程(三)实现相互发送接收消息

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值