【计算机网络】数据流简单分析

引言

计算机网络这里有很多协议,很多硬件,相关算法,相关模型,总之,理论与抽象很多;

所以,从数据这个角度出发,分析整个传输过程,然后来发现每次划分,每个硬件,每个算法存在的意义;

写下这些的目的是想用一条线把所有的核心点串起来,其余那些更多的是在为这个框架服务,以不同形式来实现;


 

应用层

用户使用各种应用程序,产生一些需要传输的数据;
产生数据后,打算向目标发送,但是中间隔着万千机器,也不知道对方用的是什么程序接收;
所幸,程序不一样,但是依照的协议和端口还是一样的;
然后,就把双方的IP、端口和数据组装成一个新的数据,递交给了传输层;

这里写图片描述

 

传输层

传输层接收到应用层数据之后,打算要向目标的应用进程发送生成的这个新数据;
但是数据在之后的传输过程可能会出现问题,所以在这一层要保证数据传输的可靠;
在这里把应用层数据重新进行分块拆分,并打上了一些头部标签来保证其可靠,这里有两种方式用来重新组装应用层数据;

TCP方式
这里写图片描述

UDP方式
这里写图片描述

 

网络层

网络层接收到传输层数据之后,打算要向目标发送生成的这个新数据;
但是后面负责传输数据的各个网络类型、路由器、还有协议都不一样,所以这一层要保证数据能够传输过去;
首先本机网络层硬件先加一个头部标签,然后传递给临近的硬件设备;
之后的网络层的各个硬件(网桥、路由器、网关)对其它硬件传输过来的数据,去除他们打上头部标签,然后打上自己的头部标签,再传递给下一个硬件;
这里简单罗列几种传输过程中的数据;

本机网络层处理后
这里写图片描述

本机发现和路由器连接使用的是LLC
这里写图片描述

路由器发现下一个路由器使用的X25
这里写图片描述

 

数据链路层

数据链路层接收到网络层数据之后,也根据网络层告诉的路由选择知道下一个要传递给谁,现在打算要向后面的硬件设备发送生成的这个新数据;
但是传输过程中可能会有乱序、丢失等现象,所以这一层要保证数据的可靠传输;
在这一层,网络层传递的数据已经变成了01串,数据链路层就是要把这堆01串分批次发送给下一个硬件,同时在首尾加上一些头部标签来保证数据可靠性,另外每次发送数据量的单位叫帧;
当然,不同协议或不同硬件的帧格式是不同的,下面是几种帧格式数据;

HDLC帧格式 —— FAC-I-FCS-F
这里写图片描述

PPP帧格式 —— FAC-PI-FCS-F
这里写图片描述

 

物理层

物理层接收到数据链路层数据之后,就开始真正的传输数据了,现在的数据就是纯粹的01字符串;
但是用于传输数据的硬件是无法传输0和1,但是他们可以传输其它的信号来代替0和1,然后接受到信号的硬件再把那些信号转化为0和1;

下面是几种根据不同硬件对0和1的编码方式:

  • 单极性不归零码:0-半幅电平以下;1-半幅电平以上;
  • 双极性不归零码:0-负电流;1-正电流;
  • 单极性归零码:0-无电流;1-正电流;
  • 双极性归零码:0-负脉冲;1-正脉冲;

 

小结

其实数据真实的流转就是在一台电脑生成数据后,转化为01串,转化为物理信号,由一台机器传给另一台机器,最后传递到目标电脑;

数据在本机电脑就经历了 应用层-传输层-网络层-数据链路层-物理层 的数据改造,然后经由物理设备传输至附近的路由器;

路由器将电信号(或光信号)转化为01串,再向上改造为 物理层-数据链路层-网络层 的数据,然后找到下一个物理设备,向下改造为 网络层-数据链路层-物理层 的数据,然后传递具体的物理信号;

最后到达目标主机,物理信号转化为01串,再向上把数据改造为 物理层-数据链路层-网络层-传输层-应用层 的数据,找到具体程序和端口,转化为用户可以理解的展示形式;

通过数据流这个角度来看,可以更好的理解计算机网络中那些抽象出来的概念,因为计算机网络的核心目的就是要传输数据;

那么,跟随着数据的流动,就能知道每一层都在干什么,也知道那些每一层的具体体现在哪里,有哪些设备,用了哪些协议,实现了哪些功能

评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值