本文介绍网络模型和模型中各层的含义,以及电脑A上的a程序如何将自己的数据通过网络传输给电脑B上的b程序。

1、网络模型

一份数据要通过网络传输,那么这个数据必须满足网络传输的数据格式,网络模型定义了各个计算机之间数据传输的规则,网络模型有OSI七层模型和TCP/IP四层模型。

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

2、网络模型每层作用

应用层:应用层是跟用户交互的一层,应用层提供了多种协议类型的应用程序,常用的协议有http,snmp,ftp等。

表示层:用于转换不同系统之间数据的语法、数据加密、压缩。eg:IBM主机使用EBCDIC编码,而大部分主机使用ASCII编码,这时通过会话层就将编码转换主机能够解析的语法。

会话层:对应用服务建立会话、管理会话、终止会话。

传输层:定义传输数据的协议端口号,以及流控和差错校验。传输层提供端到端的服务,即源端口到目的端口。

网络层:进行逻辑地址寻址,实现不同网络中主机之间的路由选择。

数据链路层:建立逻辑连接,进行硬件地址寻址(物理寻址)、差错校验等功能。(由底层网络定义协议)将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。对应网络设备:网桥,交换机。设备根据mac地址和网桥自身维护的mac地址表来查询传输的目的mac(网卡)是否在同一个局域网中。

物理层:建立、维护、断开物理连接,实现通信道路上的原始比特流传输。(由底层网络定义协议)对应的网络设备:中继器、集线器。

3、网络数据传输过程

网络数据从主机A发送到主机B的过程叫做数据的封装和解包。数据的封装过程是自上而下,介绍以四层模型为例。

封装过程如下:

(1)应用层将用户需要发送的数据加上应用层首部信息appl然后发送到传输层(这些首部信息包括发送的目的服务器的IPdst,PORTdst,等一些首部头信息)。

(2)传输层在上一层的基础上加上TCP的首部信息,TCP首部信息包括源端口号和目的端口。(3)网络层在上一层的基础上加上IP的首部信息发送给网络接入层,IP首部信息包括:源IP,目的IP。

(4)网络接口层会加上自己的以太网首部信息。以太网首部信息包括源MAC地址和目标MAC地址。源MAC地址就是本机的MAC地址,目的MAC地址就是下一跳的网络设备(路由器或交换机)的MAC地址,完成数据封装后,通过网卡将数据发送出去。通过交换机传输的数据包(服务器和客户端不在同一个网段),交换机只解析到网络接入层,获取到目标mac后,将数据发送到对于主机或者发送到下一跳路由。 目的mac地址有以下两种情况:

a)若目标服务器和客户端在同一个网段内,那么目标MAC地址就是目标服务器的MAC地址。

b) 若不在同一个网段内,主机A利用ARP协议发送广播信息,告诉网络段内主机自己需要发送到的目的IP地址,网段内的设备会加上自己的MAC地址和IP地址,发送下一级网络设备,下一级网络设备加上自己的MAC和IP地址,直到发现到目的设备,这样对应网段内的信息就建立起来了。

传输的大致流程如下:

解包过程如下:

目的服务器接收到数据之后,会逐层进行解析,最后将应用层的数据传递给对应的应用程序。

传输过程也可以参考图解数据在网络中的传输过程_morris-CSDN博客_网络传输原理示意图

还有一篇博文不错,如下:

网络分层模型及数据传输流程_静陌慕春-CSDN博客,该博客中的传输过程图片如下:

4、网络传输速率

数据在传输过程中,在不同层中的传传输单位不同,在传输层叫段,网络层叫包,数据链路层叫帧,物理层叫比特流。

网络传输速度一般以比特率(bps)为单位,含义是每秒钟传输的二进制数的位数。不同的网络一般比特率不同,相同的网络采用不同的网络电缆也可以达到不同的比特率,目前光纤传输速率极快,光纤传输的介绍见光纤传输_百度百科 (baidu.com)。

速率是计算机网络中最重要的一个性能指标。当数据率较高时,就可以用kb/s(k = 10^3 = 千)、Mb/s(M = 10^6 = 兆)、Gb/s(G = 10^9 = 吉)或Tb/s(T=10^12=太),不同于计算机领域中的1Kb=1024b、1Mb=1024Kb、1Gb=1024Mb、1Tb=1024Gb 。人们常用更简单的并且是很不严格的记法来描述网络的速率,如100M以太网,而省略了单位中的b/s,它的意思是速率为100Mb/s的以太网。顺便指出,上面所说的速率往往是指额定速率或标称速率 。

影响网速的因素有:带宽、时延、丢包。

带宽:在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。对于带宽的概念,比较形象的一个比喻是高速公路。单位时间内能够在线路上传送的数据量,常用的单位是bps(bit per second)。计算机网络的带宽是指网络可通过的最高数据率,即每秒多少比特。在日常生活中中描述带宽时常常把bps省略掉,例如:带宽为4M,完整的称谓应为4Mbps。

时延:时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排队时延。(时延=发送时延+传播时延+处理时延+排队时延)一般,发送时延与传播时延是我们主要考虑的。对于报文长度较大的情况,发送时延是主要矛盾;报文长度较小的情况,传播时延是主要矛盾。

丢包:是指一个或多个数据数据包(packet)的数据无法透过网上到达目的地。丢包与比特错误(bit error)与噪声(noise)所造成的虚假的数据包(spurious packets)是三个最主要的数字通信错误的原因。

一般的网络来说局域网可能是百兆千兆,当时广域网出口的带宽只有2-10M,这样就存在一个带宽瓶颈问题。局域网的时延一般来说就是不超过10毫秒,而广域网的时延一般都在50以上。局域网的丢包率在正常情况下几乎为零,而广域网的丢包几乎是不可避免的(广域网拥塞控制机制)。用两个图来说明一下丢包与时延对网络吞吐率的影响。

从上图可以看出两个最常见的应用HTTP和FTP在网络上传输的时候丢包率对他们的影响,随着丢包率的增加两个应用的性能都明显下降。特别是HTTP应用在丢包率达到1%的时候,HTTP的传输速率下降到原来的10%。

从上图可以看出T1线路与T3线路在网络时延低于20毫秒的时候他们的吞吐率受时延的影响很小可以忽略,但是当时延达到60毫秒以上的时候T3线路的带宽优势就不复存在了。而且随着时延的不断增加网络的质量成指数下降。

上述网络传输速率的介绍来源于网络传输速率(网络每秒钟传输的二进制数的位数)_百度百科 (baidu.com)

5、网络模型中重要知识介绍

网络的三次握手和四次挥手可以参考博文:网络 卧槽!牛皮了,面试官居然把TCP三次握手四次挥手问的这么详细_WhiteShirtI的博客-CSDN博客

网络模型介绍、数据网络传输过程与网络传输速率相关推荐

  1. 计算机网络封装过程图,网络传输过程是怎样的?网络数据传输的过程图解

    下面要给大家讲到的是一个非常基础的问题,大家对于网络传输过程都了解吗?你知道具体的过程是怎样的吗?下面一起仔细的了解一下吧! 一.过程图解 首先我们来看一个非常简单的过程图: 在数据链路层有一个标识, ...

  2. 高中计算机教师资格证面试怎么准备什么,高中信息技术教师资格证面试真题:数据的传输过程...

    高中信息技术教师资格面试的题型和其他学科有些许区别,对专业知识的把控比较严格.学霸君准备了高中信息技术教师资格面试真题:数据的传输过程,希望考生在学习中成长.进步. 此题目为2019下半年高中信息技术 ...

  3. 计算机网络-IP数据报计算(IP数据报分片)一个数据报部分长度为3400字节(使用固定首部)。现在经过一个网络传输,该网络的MTU为800字节:

    IP数据报计算(IP数据报分片) 题目: 一个数据报部分长度为3400字节(使用固定首部).现在经过一个网络传输,该网络的MTU为800字节: (1)应分为几个数据报片? (2)各数据报片的数据字段长 ...

  4. 计算机内部信号表现形式,信号是数据在传输过程中的什么的表现形式

    信号是数据在传输过程中的电信号的表现形式.如电信号可以通过幅度.频率.相位的变化来表示不同的消息.这种电信号有模拟信号和数字信号两类.信号是运载消息的工具,是消息的载体. 从广义上讲,它包含光信号.声 ...

  5. 网络协议 一 路由的概念、简述数据包的传输过程、网络常见概念、公网、私网、NAT(私网转公网)

    目录 路由 实践1 - 让4台主机之间可以互相通信 实践2 - 让4台主机之间可以互相通信 数据包的传输过程(简) 第一个包的丢失 网络 (Network).互联网 (internet).因特网 (I ...

  6. 笔记:黑客是如何窃取网络传输过程中信息的?

    每个高端的程序员都有成为黑客的潜质,这就要考虑到做技术是"善意"还是"恶意"了,之前看过一篇文章介绍全球著名的十大黑客,名单里有多少是程序开发大牛,其中不乏林纳 ...

  7. 详细分析TCP数据的传输过程

    建立连接后,两台主机就可以相互传输数据了.如下图所示: 图1:TCP 套接字的数据交换过程 上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程.首先,主机A通过1个数据包发送100个字 ...

  8. 如何保证数据在传输过程中的安全

    数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,它是数据保护在技术上最重要的防线. 数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输 ...

  9. linux网络协议栈之数据包处理过程,Linux网络协议栈之数据包处理过程

    这篇文档是基于 x86 体系结构和转发 IP 分组的. 数据包在 Linux 内核链路层路径 接收分组 1 接收中断 如果网卡收到一个和自己 MAC 地址匹配或链路层广播的以太网帧,它就会产生一个中断 ...

  10. android网络传输数据加密,Android网络数据加密传输

    在移动应用开发中, 对于数据安全传输要求非常高, 尤其是涉及到用户财产安全的时候,都会对数据进行层层加密来确保数据的安全性 完整性; `在这里演示:我将演示银行在移动应用上的数据加密; 传输的数据格式 ...

最新文章

  1. composer 小技巧
  2. legend3---Homestead中Laravel项目502 Bad Gateway
  3. 【Android应用开发】 Universal Image Loader ( 使用简介 | 示例代码解析 )
  4. verilog 浮点转定点_定点数优化:性能成倍提升
  5. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能
  6. 多个containers 共用一个pvc_2020阜新PVC-UH市政管厂家-烟台塑胶
  7. android虚拟机鼠标左键拖动会输入C
  8. SEO按天扣费系统商业网站源码
  9. 周末ROS学习沙龙第五期——IMU应用、红外应用、语音应用
  10. 博弈论(一):Nim游戏
  11. (转)Locale 详解
  12. 计算机旅游网站毕业论文,旅游网站的设计与实现
  13. matlab划分训练集验证和测试集代码_数据集划分为训练集和测试集并生成标签--matlab代码...
  14. 阿里云OSS对象存储服务
  15. 计算机二级保存错地方,盘点考计算机二级那些容易出错的地方
  16. 斗地主服务器维护中,天天斗地主真人版进不了怎么办 登录不了解决方案
  17. 《一封来自日本的信——2018年日本社会和生活水平现状》 摘要
  18. 最近超火的公司前端面试题
  19. Java中未加入修饰符_(整理)java修饰符
  20. Servlet过滤器与事件处理

热门文章

  1. element-ui上传图片的使用upload
  2. html+css基础-4-html标签、Doctype、iframe,table布局
  3. PHP服务缓存加速软件
  4. Linux中把程序添加到系统服务中
  5. php获取当前文件夹下所有图片大小,PHP获取文件夹大小函数用法实例
  6. android判断循环,android kotlin学习之路 kotlin中的分支判断与循环判断(2)
  7. 监听程序不支持服务 linux,ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序...
  8. python json提取器_入门python爬虫,10分钟就够了,这可能是我见过最简单的基础教学...
  9. 基于vc的freetype字体轮廓解析_才一年,长安又换新LOGO,连带字体也升级了,你喜欢吗?_搜狐汽车...
  10. java doctitle_Java ActionItem.setDocTitle方法代码示例