1.关于OSI七层模型和两主机传输过程
先回顾一下OSI七层模型有啥内容

(OSI模型与TCP/IP模型类似,这里只针对OSI模型展开)
OSI参考模型为什么弃用呢?它的分层过于细致了,以至于使网络的体系结构变得复杂臃肿,有使用重叠的嫌疑,和上面的TCP/IP协议相比,一目了然

1.应用层:就是应用软件使用的协议,如邮箱使用的POP3,SMTP、远程登录使用的Telnet,获取IP地址的DHCP、域名解析的DNS、网页浏览的HTTP协议等;这部分协议主要是规定应用软件如何去进行通信的
(重点:应用层是指应用软件使用的协议,你要完成什么功能,就要遵循什么协议)
2.表示层:决定数据的展现(编码)形式,如同一部电影可以采样、量化、编码为RMVB、AVI,一张图片能够是JPEG、BMP、PNG等
(重点:表示层决定数据的编码形式,以某种格式编码/保存某种信息)
3.会话层:为两段通信实体建立连接(会话),中间有认证鉴权以及检查点记录(供会话意外中断的时候可以继续传输,类似断点传输)
(个人理解:会话层的责任是确定连接建立的时机和采用什么连接方法,具体端对端连接的建立是由下面的传输层来完成的)
网络上实际传输数据的任务,是在传输层以及以下的几层中
4.传输层:建立、管理和维护端到端的连接
主机之间准备进行通讯了,这一过程就叫做建立连接的过程。有了这个特性连接,就可以将主机A所发送的内容传送到主机B当中。当通信结束后,连接有必要断开
因此,建立连接或断开连接的处理,便是由传输层所决定的。而当数据传输错误时,传输层也会负责数据的重发重传
PS:会话层决定建立连接和断开连接的时机,传输层会进行时机的建立连接和断开连接的处理
5.网络层:IP选址及路由选择
网络层根据路由协议负责选路,到底从哪条路发送数据过去比较好呢
在实际发送数据的过程中,我们需要知道目的地址(IP地址)。基于这个地址,数据才可以从众多计算机中选择一个进行数据传输
6.数据链路层与物理层:提供介质访问和链路管理,主要负责同一个子网内的通信
根据端口和MAC地址(MAC地址在这一层)处理子网内(VLAN)的数据帧转发,跨VLAN间的访问,需要上升到网络层
通信的传输是一定在传输介质中进行的,就向人们互相交流,传输介质就是空气,如果没有了空气,就无法交谈。数据链路层的作用就是在通过传输介质互联的设备之间进行数据处理
7.物理层:将数据最终编码为用 0、1标识的比特流,然后传输
举例:
链接:https://www.zhihu.com/question/24002080/answer/31817536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
两主机通信的过程,从发送者(以下简称A)到接收者(以下简称B),属于从7层(应用层)->1层(物理层)封装,然后传输到远端,再从1层(物理层)->7层(应用层)解封装的过程。
1、 当A打开了QQ这个软件,相当就到达应用层了;因为软件会根据你的操作调动机器底层的硬件工作了。
2、 当A往QQ这个软件的聊天窗口里面输入信息,发出后,QQ会将这个信息保存在本地聊天记录文件MSGEX.db(一般就保存在QQ目录下以你的QQ号码为文件夹里)。以某种格式编码/保存某种信息,这可以理解为表示层了。
3、 当A打开与B的聊天窗口,输入信息,按下“输入”按钮,用户的操作就完结了,剩下都是机器自己的操作了。实际传输之前QQ会先建立A与B的会话连接,才真正开始传输信息/数据(你可以理解借传输文件理解:你发送文件给对方,要等待对方按下接收,才算建立了会话,然后才开始传输。)这算会话层了。
4、 会话建立后,会将A发的信息斩件,如A发送“你吃了饭没有”?传输层将这句话斩成“你”“吃”“了”“饭”“没”“有”6个数据段,标记号使用的端口号,然后准备发出去。
5、 接上一层,信息还未发出去,这时候在网络层做路由选路,可以理解为,从A家出去,可以分别经“联通”“电信”“移动”3个网络中的一个再到B家。
网络层根据路由协议负责选路(根据链路质量、带宽、开销等方法论)。假设最后选了2条,可能就A->联通->B发送“你”“吃”“了”3个数据段,A->电信->B发送“饭”“没”“有”3个数据段。
选路后,这一层要标记IP包头,包头主要内容是源IP地址,目的IP地址,使用什么协议。其中源、目的IP相当于你寄信的时候的收发的地址与邮政编码,标记出发送者与接收者。而协议相当于这封信到底用什么语言书写。(只有保证2端使用同种语言,才能确保通信起来,否则你用英文写信给大妈,大妈怎么看得懂呢?)
6、 然后再到数据链路层,数据链路层主要是负责同一个子网内的通信的。例如A、B连接在同一台二层交换机,就属于同一个子网,那么数据帧的通信室是不需要通过网络层的(即三层交换机或者路由器),直接在这台二层交换机就过去了。这一层打的是MAC地址的帧头,对于上述通信过程来说,就是为数据帧打上A的机器的MAC与A的网关的MAC。这一层的工作就完成了。
7、 最后一层了,经过上述斩件、打完各层标签后的6个数据帧,物理层将他们翻译文6段0、1表示的比特流,然后通过光纤、铜缆进行传输。
8、 当比特流传输到了远端,接着B的机器按照上述的1~7的步骤反方向运行一次即可(即有物理层到应用层)。就是一层层读取标签,传输给标签标记着的相应对象,然后摘除标签,再读取上一层标签,直到最后B的应用程序能够读到A往应用程序输入的数据为止。
参考网站:https://www.zhihu.com/question/24002080
1.关于OSI七层模型和两主机传输过程的更多相关文章
- osi七层模型和两主机传输过程:
osi七层模型和两主机传输过程: http://www.zhihu.com/question/24002080/answer/31817536 注:笔记部分可能参考其他作者内容的一个记录,仅为加深自 ...
- 如何生动形象、切中要点地讲解 OSI 七层模型和两主机传输过程
作者:繁星亮与鲍包包链接:https://www.zhihu.com/question/24002080/answer/31817536来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 网络学习day02_OSI七层模型及数据的传输过程
title: 2018.9.2 OSI七层模型及数据的传输过程 tags: 计算机网络, OSI七层模型, 数据传输, 数据解封装 --- OSI七层模型和TCP/IP五层模型 OSI七层模型 我们说 ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
- python网络编程-OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- 面试题系列——OSI七层模型
OSI(开放式系统互联模型)是一个开放性的通行系统互连参考模型,是一个协议规范.它把网络协议从逻辑上分了七层,每一层都有对应的物理设备. OSI七层模型是一种框架性的设计方法,设计的主要目的是为了解决 ...
- OSI七层模型
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- TCP/IP四层模型和OSI七层模型
TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对 ...
- OSI七层模型及TCP/IP四层模型
1) OSI七层模型及TCP/IP四层模型 OSI七层模型:是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系.它是一个七层的.抽象的模型,不仅包括一系列抽象的术语或概念,也包 ...
随机推荐
- MHA集群搭建
(1).简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...
- 123457123457#0#-----com.yuming.YiZhiFanPai01--前拼后广--益智早教游戏记忆翻牌cym
com.yuming.YiZhiFanPai01--前拼后广--益智早教游戏记忆翻牌cym
- python之socket编程(一)
socket之前我们先来熟悉回忆几个知识点. OSI七层模型 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标 ...
- python安装lnmp
#!/usr/bin/python # -*- coding:utf-8 -*- # 注意:本实验用root用户.已经安装python3.6.5 用pycharm运行,首先把nginx安装包放在 /u ...
- 详解MySQL 内连接、外连接、左连接、右连接
建表语句: CREATE TABLE `a_table` ( `a_id` ) DEFAULT NULL, `a_name` ) DEFAULT NULL, `a_part` ) DEFAULT NU ...
- 用ExtentReports美化你的测试报告
前言 在实际的自动化测试工作中经常会用到一些报告生成工具大概分为两类,一类是测试框架自带的报告生成工具如:JUnit+Ant.TestNG:另一类就是专用报告工具如ReportNG等.这些报告要么在U ...
- Nginx 开发者文档翻译 - 介绍
由于我的一个Private Cloud FaaS(函数计算)项目 Navagraha 使用nginx作为实现Service Mesh和API Gateway的基础框架,需要对Nginx有深入的了解,因 ...
- K8S从入门到放弃系列-(7)kubernetes集群之kube-scheduler部署
摘要: 1.Kube-scheduler作为组件运行在master节点,主要任务是把从kube-apiserver中获取的未被调度的pod通过一系列调度算法找到最适合的node,最终通过向kube-a ...
- 详解Cookie、Session和缓存
1 Cookie和Session Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力. Session可以用Cookie来实 ...
- 使用不同代理IP刷票的脚本---requests
投票功能限制刷票是通过限制单个IP的投票次数实现的,所以写了个脚本用于测试此功能. #-*- coding=utf-8 -*- ''' 功能:此脚本用于用不同的IP刷票 作者:Elle 最后修改日期: ...