OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI(摘自wiki)。是目前公认的计算机通信和internet网络通信的基本结构模型;如今使用的最广泛的TCP/IP协议就是基于OSI模型设计的
分层的优点是?
- 降低复杂度 (Reduces complexity)
- 标准化接口(Standardizes interfaces)
- 促进模块化开发(Facilitates modular engineering)
- 确保技术的互操作性(Ensures interoperable technology)
- 加速技术革新(Accelerates evolution)
- 简化教学(Simplifies teaching and learning)
将不同的功能划分层不同的模块,每个模块负责特定的功能,模块之间定义标准化接口
OSI模型的功能:
- 物理层:实现最基本的底层数据传输,比如底层传输的方式或标准,比如无线网卡上网,无线网卡说遵循的频段...数据通过什么介质传输
- 数据链路层:定义传输数据的基本格式;数据的标识,比如mac地址,控制如何访问介质;怎样防止错误
- 网络层:三层的IP和路由;提供在不同网络转发
- 传输层:端到端的传输 TCP 和 UDP ;保证传输的速度和可靠性。transport”(传输)的含义是指:从端到端(例如从ip1:port1到ip2:port2)可靠地搬运比特
- 会话层:在不同的应用之间建立,管理和中断会话
- 表示层:定义数据的格式;提供基本的压缩和加密
- 应用层:应用软件组成,可能会实现5、6、7层的功能
下四层基本是由操作系统实现;上三层可以统一称为应用层,上三层都是由应用软件负责的
数据的封装和解封
数据的传输会有一个封装的过程,数据由应用程序产生,从第7层开始,经过每一层,加上每一层的报头:比如:到了第4层,要告诉别人使用的是TCP还是udp协议,第三层要打上ip地址多少,第二层记录mac地址,这个过程是数据的封装;数据的传输过程要经过整个7层,并且加上每一层信息
目标主机在收到数据后,会从7层模型,由下往上逐渐解封装,经过每一层,查看每一层的信息,处理 完后删除对应的报头信息,最终只剩下用户传输的数据
简单来说:封装:好比邮寄东西的标记 解封装:对数据进行检查和删除
数据在每一层之间通信的名词
分别叫段(Segments) 、 包(Packets) 、 祯(Frames) 、 比特流
TCP/IP 协议栈:
TCP IP协议是OSI7层模型的实现,并且对OSI进行了简化,只定义了4层;
由图可见,物理层和数据链路层合并为网络访问层;传输层和网络层得到完整的保留;1到3层合并为应用层
Http与Tcp/ip
Http是个应用层协议。HTTP无需担心网络通信的具体细节;他把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。
Tcp提供了:
- 无差错的数据传输
- 按序传输(数据总是会按照发送的顺序到达)
- 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
因特网自身就是基于TCP/lP的,TCP/lP是全世界的计算机和网络设备常用的层次化分组交换网络协议集。TCP/lP隐藏了各种网络和硬件的特点及弱点,使各种类型
的计算机和网络都能够进行可靠地通信。
只要建立了TCP连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏,也不会在接收时出现错序了。
用网络术语来说,HTTP协议位于TCP的上层。HTTP使用TCP来传输其报文数据。与之类似,TCP则位于IP的上层(摘自http权威指南)
HTTP:超文本转移语言 (“transfer”的含义是:通过在客户端-服务器端之间转移一些带有操作语义的操作原语,来执行某种操作)(“transport”(传输)的含义是指:从端到端(例如从ip1:port1到ip2:port2)可靠地搬运比特,也就是TCP/IP协议栈中的第3层传输层(transport layer)协议所做的那些事情) 详细:http://www.ituring.com.cn/article/937
以联网的过程来描述,连接上网线(物理层),通过 mac 地址区分网络上的唯一的一台机器(数据链路层),设置IP(自动获取或手动获取)后(网络层),可以端到端传输数据了(TCP 和 UDP 属于传输层),然后就可以使用软件了(比如QQ...)建立一个会话(会话层),通过 xml 或 json 传输数据(表现层),最终呈现给我们的就是这款软件了