网络学习day02_OSI七层模型及数据的传输过程
title: 2018.9.2 OSI七层模型及数据的传输过程
tags: 计算机网络, OSI七层模型, 数据传输, 数据解封装
---
OSI七层模型和TCP/IP五层模型
OSI七层模型
我们说的七层模型第七层都是应用层,第一层是最底下的物理层。
图中只有物理层之间的线条是实线的,可以将这条线理解为两台主机之间的网线,连接两机实现通讯
模型里的每一层都是独立的,两台主机之间通信,对应的层使用的协议相同。
应用层可以理解为最接近使用者的一层,我们可以直接使用,例如QQ、微信等软件,当我们用此类软件发出一条消息时,最终这条消息的接收方就是目的主机的应用层,但是我们无法直接将信息发送到对方的应用层。所以我们的消息会依次经过以下的每一层,通过不同的协议封装最终通过网线传输到对方电脑,然后在对方电脑一层一层解封装数据包,最后到达对方电脑的应用层软件。这里具体的封装和解封装过程我们在后面的解封装过程中详细说明。
例如下图(模型图)
TCP/IP五层模型
在实际的使用中,科学家在每一层中添加对应的协议,发现有其中的表示层和会话层的协议比较少(相对于其他层而言,但也是必不可缺的),于是将这两层合并到应用层,称为TCP/IP五层模型。
五层里面每层都有一些协议,但是由于TCP/IP协议的重要性,为了纪念这两层协议,于是命名为TCP/IP五层模型。
在互联网所使用的各种协议中, 最重要的 和最著名的就是TCP和IP两个协议。 现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示互联网所使用的整个TCP/IP协议簇。
TCP/IP五层模型中每一层对应的设备:
数据的封装和解封装过程
数据的封装与解封:
发送时将上一层交下来的数据加上首部和尾部,成为以太网的帧。接收时将以太网的帧剥去首部和尾部,然后送交上一层
数据的封装过程是自顶向下的,而解封装过程则相反。
第五层:应用层
应用层是体系结构中的最高层。 应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。 这里的进程就是指主机中正在 运行的程序。
我们在软件上发出一条消息“hello”,应用层将这条消息处理为一个五层的数据包,这里我们就先认为数据包的内容为我们发出的“hello”消息。
第四层:传输层
运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。 应用 进程利用该服务传送应用层报文。
[传输层封装]!(https://images2018.cnblogs.com/blog/1449724/201809/1449724-20180908001823712-506775068.png)
应用层将消息封装成数据包后将数据包传递到传输层,传输层会对五层数据包进行进一步的封装,为该数据包添加一个TCP/UDP头部(TCP或者UDP二者其中一个,具体取决于软件选择那个协议),其中含有源端口号和目的端口号,源端口号即为软件使用的上一层协议的端口号,目的端口号为接收数据方接收该数据的端口号。例如当我们用IE访问一个http开头的网页时,实际上我们时在访问对方的80端口。
这个过程中系统会为IE浏览器随机生成一个端口号,假如是1000,我们的数据到了传输层,包头中的源端口号为1000,目的端口号为80。
这里对端口号做一个解释,我们将两方进行数据传输时,应用层软件需要使用应用层的协议,使用的协议有其对应着端口号,当有数据发送出去时,数据是从这个端口号发送出去的,而接收方接受数据时,也是根据传输层包头中的目的端口号对数据进行接收。
就像两个水桶之间转移水,A水桶需要开一个口让水流出来,B水桶需要开一个口让水进去,这里开的口就是上面的端口,端口号就是对这些端口的编号。
第三层:网络层
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。
在传输层中,TCP/UDP包头为五层数据包提供了目的端口号,但是一个网络里有那么多主机,数据包怎么才能成功的传输到我们指定的主机上呢?所以这里就需要网络层开始自己的工作了!
类似于传输层,网络层也有一个很重要的协议——IP协议,当四层数据包到网络层时,网络层会对该数据包添加一个IP包头,其中含有数据包的源IP和目标IP,数据传输的过程中就是根据这层的目标IP找到需要通信的主机。
前三层的数据包很重要,在一个包中称为上三层数据,是最有价值的包,不能被别人篡改,一旦被篡改就有可能造成通信出错或者信息泄露。(例如本来A发给B的数据,上三层数据被篡改后发给了C)
接下来的两层在网络中也是必不可少的,虽然上三层在数据包中指明了传输的路线,但是上三层数据包是无法通过介质进行传播的(例如网线、WiFi、光纤),那如果数据包想过介质进行传播的话怎么办呢,这就需要用到下面的两层了。
第二层:数据链路层
数据链路层主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及检错和控制信息。
当上三层的数据包到了数据链路层,就意味着这个信息已经成功到达计算机的网卡,下一步就可以通过网线传输了,这时我们的信息就需要一个载体来进行传输,于是在第二层会给上三层数据包加上一个二层头部(MAC子层)和二层尾部(FCS)。
如同从上海到北京,我们作为乘客,期间可能会换乘很多趟列车,每到一个站点换乘的时候,乘客是不会变的,但是列车变了。在数据链路层中也是这样,在传输的过程中,二层的头部和尾部就相当于列车头和列车尾,中间的信息就是乘客,乘客不会变化,但在换车的过程中,列车头和列车尾是会变化的。
MAC子层头部:
含有源MAC地址和目标MAC地址字段,关于这一块的内容我们在后面的整理中再学习,这里我们只需要知道每一台主机的MAC地址是唯一固定的。
FCS:帧校验序列
上三层加上帧头之后,对中间的信息数据会使用一个循环校验算法,最终得到一个固定的值,我们可以利用这个值和FCS得出这个数据包的内容是否缺失。
第一层:物理层
在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是 0 (或1)。 因此物理层要考虑用多大的电压代表 “ 1 ” 或 “ 0飞以及接收方如何识别出发送方所发送的比特。 物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应 如何连接。
[物理层]
在物理层,相当于网卡二层数据帧包送到网线上,这时候二层的数据帧包会被转化成一段连续的比特流,然后以电脉冲的形式传输到交换机,最后到达目标主机物理层。
物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的PC上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。网络物理问题,如电线断开,将影响物理层。
以上便是对TCP/IP中各层功能和传输数据过程中封装数据包的的一些说明,而当数据包到达目标主机后,目标主机会对数据包进行一个解封装,其中过程如下:
实际就是对封装过程的一个逆操作,至于其中具体的一些知识点我们在后面的整理中再进行学习。
网络学习day02_OSI七层模型及数据的传输过程的更多相关文章
- osi七层模型和两主机传输过程:
osi七层模型和两主机传输过程: http://www.zhihu.com/question/24002080/answer/31817536 注:笔记部分可能参考其他作者内容的一个记录,仅为加深自 ...
- 如何生动形象、切中要点地讲解 OSI 七层模型和两主机传输过程
作者:繁星亮与鲍包包链接:https://www.zhihu.com/question/24002080/answer/31817536来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 1.关于OSI七层模型和两主机传输过程
先回顾一下OSI七层模型有啥内容 (OSI模型与TCP/IP模型类似,这里只针对OSI模型展开) OSI参考模型为什么弃用呢?它的分层过于细致了,以至于使网络的体系结构变得复杂臃肿,有使用重叠的嫌疑, ...
- python网络编程-OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- 网络 、osi 七层模型、tcp/ip 五层参考
网络 网络的本质就是通讯,比特传输 网络拓扑 物理布局pc -- 交换机 -- 路由器逻辑布局pc -- 路由器 交换机的产生 网络之初,是通过网线互相连通到各个主机,存在的问题就是2个pc都要与服务 ...
- 网络之OSI七层模型
1. 物理层:设备之间的比特流的传输,物理接口,电气特性等 2. 数据链路层:成帧,用MAC地址访问媒介,错误检测与修正 3. 网络层:提供逻辑地址(IP),选路 4. 传输层:可靠与不可靠的 ...
- TCP/IP 网络精讲:OSI七层模型(第二课)
内容简介 1.前言 2.第一部分第二课:互联网的创立,OSI七层模型 3.第一部分第三课预告:OSI第一层,连接你的机器 前言 PS:昨天做了课程大纲之后,发现这个坑挖得有点大.不过既然挖了,岂有不跳 ...
- OSI七层模型学习笔记
1.简介 什么是OSI模型呢? OSI模型全名Open System InterConnect 即开放式系统互联,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架, ...
- 网络--OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
随机推荐
- day17-异常处理
今天的内容比较少,只是单独的异常处理 开始今日份整理 1.异常 定义:异常时错误发生的信号,一旦出错,并且程序没有处理这个错误,就会抛出异常,并且程序会运行中止 2.异常的分类 2.1语法错误:pyt ...
- rtsp 流媒体服务器,播放器
https://github.com/EasyDSS/EasyPlayer-RTSP-Android EasyPlayer EasyPlayer RTSP Android 播放器是由紫鲸团队开发和维护 ...
- 引用传递this关键字
this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量: (2)this调用本类中的其他方法: (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行.
- Linux内核入门到放弃-网络-《深入Linux内核架构》笔记
网络命名空间 struct net { atomic_t count; /* To decided when the network * namespace should be freed. */ a ...
- 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService(转载)
WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...
- FineUI十周年纪念版即将发布(基于像素的响应式布局,独此一家)!
[新版预报]FineUI十周年纪念版(v5.0.0)即将于2018-04-23发布! 官网示例已更新:http://pro.fineui.com/ 特别助攻:基于像素的响应式布局,FineUI独家秘笈 ...
- linux 下一些命令
1. 后台执行命令 nohup http://blog.csdn.net/liuyanfeier/article/details/62422742 2. 查看日志文件 格式:tailf logfil ...
- 打开Player时出现时间格式的错误提示
安装完Player后如果更改了Windows的系统时间和日期显示格式,再次打开Player后会出现时间日期格式错误的提醒,需要按照要求更改Windows系统设置,才能正常运行Player. 此错误提示 ...
- nginx实现https网站设置
一.HTTPS简介 1.https简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密, ...
- Vivado如何使用命令行创建工程
前言 vivado中采用TCL脚本语言来作为其命令解释语言.除去可以普通的图形界面流程还可以使用tcl脚本创建工程并导入相关源文件. 流程 1.首先还是要打开vivado图形主界面. 2.在某路径 ...