A. GPRS模块作用是什么
GPRS模块作用,主要是将串口数据经过GPRS、CDMA、3G等无线网络,将数据传输到上位机软件,实现数据远程监测。而为那通信的GPRS 模块也叫WCTU 30XX,还可以将传感器模拟量数据采集转换成数字量传输到后台软件,实现对前端串口数据与模拟量数据分析和监控。还可以自定义I/O输入输出,同时支持自主AES、DES、3DES等加密方式。
B. 操作系统是如何将socket接受的数据发送给应用层的
在正篇开始之前,我先提问几个问题,不知道你是否全都了解:
(1) 网络请求是通过http发送的吗?
(2) http与tcp之间的关系?
(3) 网络请求是怎么发送的,通过什么形式去发送的?
在过往对于http与tcp的理解其实只是一个简单模糊的概念,仔细想想其实http只是一种协议,tcp只是用于建立一个持久连接,它们都不是用于网络发送数据的根本,真正发送数据的是我们的物理层,http协议只是作为一个标识的作用,简单来说是定位到某一主机。
下面来介绍一下计算机网络体系结构
计算机网络分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层以及应用层,由于7层太多所以后面经过演变之后定为5层,把应用层,会话层,表示层给合统称为应用层,我们客户端的每一步操作,举个例子,当我们点击发送按钮请求网络的时候,这时候会通过应用层逐渐往下传递直到物理层,物理层会提供一个互联网网络接口,这时候才真正通过互联网开始传输数据,这里最主要介绍的是传输层以及物理层,其它的网络一下,传输层是第一个端到端的层次,也是进程——进程的层次。
主要功能是实现端到端的可靠数据传输、复用与分解、连接控制、流量控制和拥塞控制(这些东西都是定义去网络一下,比如说流量控制,其实就是控制数据的发送量,你不能一次性发送很多数据,原因想一下就知道了),客户端的每一步操作都会在这5层体现出来,查下定义之后就会一目了然(比如说在我们终止会话,这时候就是由会话层管理,实体间交换数据的语法,解决格式和数据表示的差别是由表示层来完成等),在我们建立连接的时候比如说发送一个http请求(原理跟后面的socket数据传输模块是一样的),我们会先建立一个tcp连接,然后发送http请求,这时候数据会经过传输层,传输层里携带了发送数据的报文(比如ip地址,端口号之类的,数据内容),向下传递到物理层,物理层最后会提供一个互联网网络接口去发送数据,数据是以比特流的形式发送,发送到交换机上面(交换机是什么,去网络查一下,不做解释),交换机是有多个的,当我们数据非常大的时候,数据会被分解发送到多个交换机上面,传到对方客户端或者服务器的时候数据会重新整合起来,上面的是一个简单的http请求,下面来介绍一下Socket。
1.Socket的整体流程:
udp客户端:创建套接字,发送数据,接收数据,关闭套接字。
udp服务端:创建套接字,绑定地址和端口号,接收数据,发送数据,关闭套接字。
tcp客户端:创建套接字,建立连接,发送数据,接收数据,关闭套接字。
tcp服务端:创建套接字,绑定地址和端口号,设置监听,建立连接,发送数据,接收数据,关闭套接字。
这些理解起来很容易,我们客户端是要发送数据的,服务端需要接收数据,所以服务端要绑定地址和端口号,而tcp是需要三次握手的所以要有监听。
2.Socket三次握手
第一次握手,客户端发送请求给服务端(询问是否可以建立连接)。
第二次捂手,服务端回应给客户端一个确认,接受连接或者拒绝连接
第三次握手,经过确认之后,客户端回应给服务端(意思是我要开始发送数据了,下一步就开始发送了)。
理解三次握手,为什么要三次,第一次握手确认客户端可以发送请求,第二次握手确认服务端可以接收并且发送,第三部确认客户端可以接收。
3.Scoket四次挥手
第一次挥手,客户端向服务器发送断开连接请求
第二次挥手,服务端回应客户端(意思是,稍等等我数据传完(处理完的意思),在断开)
第三次挥手,服务端回应客户端断开请求(可以断开了)
第四次挥手,客户端与服务端请求断开。
tcp连接是面向连接的,数据发送可靠,udp是面向无连接的,数据发送过后就不管了,下面介绍一下tcp为什么数据可靠
具体方法如下:
差错检测:我们发送数据的时候刚刚说过是由物理层提供的互联网网络接口以比特流的形式进行发送,那么这个时候差错检测利用差错编码实现数据包传输过程中的比特差错检测,保证数据正确性
确认:接收方向发送方反馈接收状态。ACK(肯定确认);NAK(否定确认)
重传:当没有接收到反馈状态。ACK(肯定确认);NAK(否定确认)的时候,或者请求超时的时候进行重新发送
计时器:内部检测,一个定时器,当数据在一定时间没有接收到确认的时候就认为发送失败,进行重传操作。
序号:刚刚说了重传有两种情况,那么当重传是因为网络超时引起的,那么这个时候计时器进行了一次重传,然后上次超时后并没有发送失败这个时候也发送成功了,这个时候就会造成数据错乱,那么序号就起了一个作用,就是给数据进行排序,以至于不错乱。
下面来说一下tcp可靠传输协议滑动窗口协议
左边的代表的是接收的数据,中间代表的是正在处理的,右边代表的是没有处理的,在我们发送数据的时候比如56789这些数据发送,56成功了,这时候窗口就会往右移动,接收的时候呢,当我们接收比如56,接收成功了,这时候窗口往右移动,这里有一个需要注意一下,比如说当我们5没有发送成功或者说5没有接收成功,而6发送成功了,这时候窗口是不会往右移动的,它会等待5发送成功后在往右移动,浮动窗口协议里还有GBN协议和SR协议,这两个的主要区别是,GBN协议的发送窗口只能发送一个,比如上面中间准备发送的5678就只能存在5一个,但是接收窗口是可以有多个的,SR协议是可以发送窗口与接收窗口都是可以多个的。
最后总结一下http请求与socket的差异,socket是套接字,用于将报文传输到传输层,http请求在发送的时候会建立tcp连接,所以http也会分为http持久性连接和非持久性连接,至于网络传输都是要经过物理层才能传输,数据经过多个交换机进行分解,传到服务器的时候在进行整合。
网卡接收到数据根据数据头,将数据写到对应的内存,并发出中断,系统接收到中断,然后通知应用吧?
VC中客户端socket与服务器连接后,需要执行一个封状的操作
朝服务器发送一些数据(命令),然后返回结果
假设全部才字符串,类似这样的函数
CString SendCommand (CString cmd,socket sk)
要求在执行这个函数的时候能同时响应用户界面操作
也就是要用异步方式
而且这个socket已经建立好,有RecvTheard在处理
我目前是用Event实现的,很别扭:
m_hevtReadStore=CreateEvent(NULL,false,FALSE,NULL);
//m_tcp是封装的socket基本操作类
C. vue开发中有几种网络请求方式用哪一种
选择什么网络模块?Vue中发送网络请求有非常多的方式,那么,在开发中,如何选择呢?
选择一:传统的ajax是基于XMLHTTPRequest(XHR)
为什么不用他呢?
非常好解释,配置和调用方式等非常混乱
编码起来非常蛋疼
选择二:JQuery-Ajax 相遇与传统的ajax非常好用
为什么不用他?
Vue项目中不适用jquery了。
专门适用ajax专门引用jquery,麻烦
选择三: vue-resource 体积小
为什么不用他?
不再更新。
选择四:axios 用起来方便
功能特点:
在浏览器中发送xmlhttprequest请求
在node.js中发送http请求
支持promiseApi
拦截请求和响应
转换请求和响应数据
D. tcp/ip协议包含哪四层,会有什么功能
TCP/IP协议包括四个层次:网络接口层、网络层、传输层、应用层。
功能:
1、网络接口层
主要用于实现与传输媒介相关的物理特性,由下而上来看,对于接收到的物理帧数据,得到IP数据包,交给网络层;由上而下来看,从网络层接收到IP数据包封装成帧数据,发送到网络中。
2、网络层:
处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据者销报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;核睁假如该数据报尚未到达信宿,则转发该数据报。处理路径、流控、拥塞等问题。
3、传输层:
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。
4、应用层:
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
各层协议:
网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有基于TCP/IP协议网络的核心。
传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。
两个协议就是它管理这些数据的两种方式:TCP是一个基首氏游于连接的协议;UDP则是面向无连接服务的管理方式的协议。
TCP/IP协议的主要特点
1、TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。
2、TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。
3、统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址
4、标准化的高层协议,可以提供多种可靠的用户服务。
E. 网络模块是什么
网络模块分发射端模块和接收端模块,一般是分别用于网桥主、从两端的主模块。信号发射模块负责发射信号,信号接受模块负责接收信号。是一一对应的,也可以一发射端多接收端。一对一的称为POINT TO POINT(点对点)系统,一对多的称为 MULTIPOINT(点对多点)系统。
(5)发送网络请求是哪个模块扩展阅读:
路由器中一般只提供发射端模块,而它所提供的网络环境中其到接收作用的模块并非严格意义上的接收模块,是网卡中的网络芯片,其质量的好坏直接影响到网络的优劣度。解决局域网从路由器到电脑终端的网络化问题。
2014年为止,部分的网桥也是利用了网卡芯片来做网络模块使用,这样成本较低。严格意义上的网桥是不会这么用的。