| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络模型介绍与网络速率传输过程 -> 正文阅读 |
|
[网络协议]网络模型介绍与网络速率传输过程 |
本文介绍电脑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博客 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:29:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |