OSI七层模型:http传输流程

2019/01/29

OSI七层模型:http传输流程

OSI:Open System Interconnection 开放式系统互联;

该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。(互联:互相联系,就是计算机通信。)

OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

这是一种事实上被TCP/IP 4层模型淘汰的协议。在当今世界上没有大规模使用。

参考


1 OSI七层 & TCP/IP四层模型

常见的计算机互联协议有七层、五层、四层三种体系结构,目前使用较多的是TCP/IP四层协议结构。

osi&tcp_ip

1.1 OSI七层模型

七层模型总结

下面重新通俗说一下:

  1. 应用层:就是应用软件使用的协议,如邮箱使用的POP3,SMTP、远程登录使用的Telnet、获取IP地址的DHCP、域名解析的DNS、网页浏览的http协议等;这部分协议主要是规定应用软件如何去进行通信的。
  2. 表示层:决定数据的展现(编码)形式,如同一部电影可以采样、量化、编码为RMVB、AVI,一张图片能够是JPEG、BMP、PNG等。
  3. 会话层:为两端通信实体建立连接(会话),中间有认证鉴权以及检查点记录(供会话意外中断的时候可以继续,类似断点续传)。
  4. 传输层:将一个数据/文件斩件分成很多小段,标记顺序以被对端接收后可以按顺序重组数据,另外标记该应用程序使用的端口号及提供QOS。(不同的应用程序使用不同计算机的端口号,同样的应用程序需要使用一样的端口号才能正常通信)
  5. 网络层:路由选路,选择本次通信使用的协议(http、ftp等),指定路由策略及访问控制策略。(IP地址在这一层)
  6. 数据链路层:根据端口与MAC地址,做分组(VLAN)隔离、端口安全、访问控制。(MAC地址在这一层)处理VLAN内的数据帧转发,跨VLAN间的访问,需要上升到网络层。
  7. 物理层:将数据最终编码为用0、1标识的比特流,然后传输。(例如将题主头像的图片,变为一串01100111100这样的数字来表示)。

1.2 TCP/IP四层模型

TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:

  1. 应用层 –> OSI的 应用层 表示层 会话层
  2. 传输层 –> OSI的传输层
  3. 网际层 –> OSI的网络层
  4. 网络接口层 –> OSI的数据链路层和物理层

OSI七层模式简单通俗理解

2 两个主机的传输过程

2.1 主机传输过程

http访问、qq、邮件、远程访问等,其实都是两台主机之间连接、传输数据的问题。

假设发送方server_A,接收方server_B,下面介绍从7层(应用层)->1层(物理层)封装,然后传输到远端,再从1层(物理层)->7层(应用层)解封装的过程。

1、 当server_A打开了QQ这个软件,相当就到达应用层了;因为软件会根据你的操作调动机器底层的硬件工作了。

2、 当server_A往QQ这个软件的聊天窗口里面输入信息,发出后,QQ会将这个信息保存在本地聊天记录文件MSGEX.db(一般就保存在QQ目录下以你的QQ号码为文件夹里)。以某种格式编码/保存某种信息,这可以理解为表示层了。

3、 当server_A打开与server_B的聊天窗口,输入信息,按下“输入”按钮,用户的操作就完结了,剩下都是机器自己的操作了。

    实际传输之前QQ会先建立server_A与server_B的会话连接,才真正开始传输信息/数据
    (你可以理解借传输文件理解:你发送文件给对方,要等待对方按下接收,才算建立了会话,然后才开始传输。)这算会话层了。

4、 会话建立后,会将A发的信息斩件,如A发送“你吃了饭没有”?传输层将这句话斩成“你”“吃”“了”“饭”“没”“有”6个数据段,标记号使用的端口号,然后准备发出去。

5、 接上一层,信息还未发出去,这时候在网络层做路由选路,可以理解为,从server_A出去,有三种方式到server_B家,即经“联通”“电信”“移动”3个网络中的一个。
网络层根据路由协议负责选路(根据链路质量、带宽、开销等方法论)。假设最后选了2条,
可能就
  server_A->联通->server_B发送“你”“吃”“了”3个数据段,
  server_A->电信->server_B发送“饭”“没”“有”3个数据段。

选路后,这一层要标记IP包头,包头主要内容是源IP地址,目的IP地址,使用什么协议。其中源、目的IP相当于你寄信的时候的收发的地址与邮政编码,标记出发送者与接收者。而协议相当于这封信到底用什么语言书写。(只有保证2端使用同种语言,才能确保通信起来,否则你用英文写信给大妈,大妈怎么看得懂呢?)

6、 然后再到数据链路层,数据链路层主要是负责同一个子网内的通信的。例如A、B连接在同一台二层交换机,就属于同一个子网,那么数据帧的通信室是不需要通过网络层的(即三层交换机或者路由器),直接在这台二层交换机就过去了。这一层打的是MAC地址的帧头,对于上述通信过程来说,就是为数据帧打上server_A的机器的MAC与server_A的网关的MAC。这一层的工作就完成了。

7、 最后一层了,经过上述斩件、打完各层标签后的6个数据帧,物理层将他们翻译文6段0、1表示的比特流,然后通过光纤、铜缆进行传输。


8、 当比特流传输到了远端,接着B的机器按照上述的1~7的步骤反方向运行一次即可(即有物理层到应用层)。就是一层层读取标签,传输给标签标记着的相应对象,然后摘除标签,再读取上一层标签,直到最后B的应用程序能够读到A往应用程序输入的数据为止。

2.2 补充

2.2.1 同一个局域网(子网)下通信

假设两端的通信实体在一个局域网内,其实传输的数据包去到交换机时,交换机拆开二层帧头,再查自身的MAC地址表,发现表里面有对应的MAC地址,然后对应的对口是哪个,接着就把帧发送到该端口转发出去,它的任务就完成了。根本不需要到达网络层的意思是,根本都不需要拆卡3层的IP包头来读取里面的信息。

通过转发,最后到达B主机,然后从1层拆到7层,B用户的主机最终就读取到信息了。

lan

2.2.2 广域网通信

由于A、B两通信实体跨域广域网,所以光靠MAC地址表,肯定是查不到的,这时候路由器会把IP包头也拆开,读取目的IP地址,再查路由表,就知道往哪个端口发出去了。然后层层转发,就可以达到目的地了,接下来就和图1的一样了。

wan

mac表: (Media Access Control, 介质访问控制)mac表是识别LAN(局域网)节点的标识。

网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

网络模型各种协议各种表


Show Disqus Comments

Post Directory