凡科网上传网站,wordpress 设置导航,手机app开发软件教程,手机网银怎么开通1.OSI七层模型作用
物理层#xff1a;负责光电信号的传输#xff0c;以及将光电信号转化为二进制数据数据链路层#xff1a;主要负责将收到的二进制数据进一步的封装为数据帧报文。同时因为数据在网络中传递的时候#xff0c;每一个主机都能够收到报文数据#xff0c;该层…1.OSI七层模型作用
物理层负责光电信号的传输以及将光电信号转化为二进制数据数据链路层主要负责将收到的二进制数据进一步的封装为数据帧报文。同时因为数据在网络中传递的时候每一个主机都能够收到报文数据该层的MAC地址就阻止了并非传递给本主机的数据进一步向上交付。网络层主要负责地址管理和路由选择通过IP地址和内部维护的路由表可以将数据传输到指定的目标主机上。一个报文在网络中并非是直达目标主机的中间会经历无数个路由器设备那么如何知道报文该走哪一条路线呢就是网络层完成的工作了。传输层主要负责两个主机进程的数据传输工作确保数据可以以用户想要的方式进行传输。如果想要可靠的传输就采用TCP协议传输如果想追求效率和实时性等就使用UDP协议进行网络传输。会话层负责管理不同主机之间的连接。一个主机同一时间会和多个主机进行网络通信那么就需要将这些连接管理起来。表示层负责字符流数据的序列化和发序列化处理。应用层负责实现网络服务的功能。对于服务器来说就需要实现对客户端发送请求的解析工作并对不同请求提供不同的服务对于客户端来说就需要有发送请求和解析响应数据的能力了。这些都是在应用层实现的。 对于上三层主要的作用就是实现网络服务的下面四层主要是负责两个主机之间的数据传递工作。 2.HTTP协议中的各种方法
GET用于从服务器获取资源。他的请求参数会附加在URL后面以键值对的形式存在。POST用于向服务器提交数据通常服务器接收之后会创建相应的实体例如在数据库表中添加一条数据。他的请求参数会放在请求正文中。PUT用于向服务器上传指定的资源通常用于更新已经存在的资源。通常是整体性的更新。DELETE用于请求服务器删除指定的资源。 3.HTTP的头部字段
请求报文请求行 属性字段。请求行分为方法、url以及HTTP协议版本。响应报文状态行 属性字段。状态行分为HTTP协议版本、响应码以及响应码解释字段。 4.TLS握手 TLS握手就是HTTPS进行密钥协商的一个过程。HTTPS协议加密采用的是非对称加密、CA认证进行密钥协商以及对称加密的方式进行数据加密。首先服务端会先生成一对非对称密钥然后将公钥和一些域名、申请者等相关信息生成.csr文件之后向CA机构申请证书CA机构认证后会将证书内置给服务端。 当有客户端想要进行连接的时候服务端会先将带有公钥的CA认证证书发给客户端客户端会使用CA机构的公钥解密签名并将数据指纹与明文信息进行对比操作防止中间人篡改公钥。之后生成一个对称密钥并使用公钥进行加密操作传递给服务器服务器使用私钥进行解密就完成了TLS握手的操作。 5.指针和引用的使用场景 指针就是一个地址他内部存放了区域的起始地址。可以用于接收动态分配的内存在处理字符串和数组的时候可以使用指针的算术运算快速的定位元素在创建数据结构的时候尤其是树和链表结构会大量的使用指针。对于引用来说底层的原理也是一个指针只不过上层看起来是一个变量的别名可以起到简化代码的操作。两者在传参和函数返回值的场景下可以减少数据的拷贝工作。 6.零拷贝技术
介绍 零拷贝技术是一种高效的数据传输技术其核心目标就是减少在计算机系统在传输数据时的拷贝次数从而降低CPU的使用率提供数据传输效率提供系统的性能。 例如在从磁盘中读取数据并通过网络发送的过程当中就涉及到至少四次的拷贝。第一次拷贝操作系统将数据从磁盘读取到内核空间的缓冲区。第二次拷贝将数据从内核空间缓冲区拷贝到用户空间的应用程序缓冲区。第三次拷贝应用程序处理完数据后将数据从用户空间缓冲区拷贝回内核空间的套接字缓冲区。第四次拷贝最后将数据从套接字缓冲区拷贝到网卡设备通过网络发送出去。 同时在用户空间和内核空间之间的切换也会带来额外的开销这种多次拷贝和上下文切换会消耗大量的 CPU 资源降低系统的整体性能。
实现方式以及原理
内存映射使用mmap系统调用接口可以将磁盘文件映射到用户虚拟地址空间当中这样用户空间和内核空间可以共享一块物理内存。所以程序也可以直接访问这块内存避免了数据从内核空间到用户空间的一次拷贝。否则的话需要进行系统调用进行文件的读取然后层层拷贝到用户缓冲区这样的话就涉及到了操作系统的参与就需要进行内核态与用户态的转化操作了。sendfile接口允许内核直接将数据从磁盘文件传输到网络套接字文件中无需将数据拷贝到用户空间了。相当于在内核空间完成数据的读取和发送。减少了两次拷贝。分散/聚集I/O操作在用户层创建多个缓冲区并允许内核一次将数据从多个缓冲区的数据聚集在一起发送相当于将多次拷贝转化为了一次拷贝操作。或者将数据一次拷贝分散到多个缓冲区当中。