Linux专栏
文章平均质量分 94
梳碧湖的敲键人
学如逆水行舟,不进则退。心似平原跑马,易放难收。
展开
-
LInux学习------高级IO
select和poll:效率会随着描述符的增多而降低,并且select的实现较为复杂,但是如果是单描述符的监控,或者单描述符的超时控制非常适用。epoll:性能不会随着描述符的增多而降低,适于针对大量描述符的监控场景,而不太适合单描述符的超时控制,因为它需要在内核中创建句柄,进行各种操作,如果不用了还要进行销毁操作。要么适用单个描述符的超时控制,要么针对大量描述符的事件监控。在对于大量描述符事件监控的场景时,只适用于有大量描述符,但同一时间少量就绪的情况。原创 2022-08-21 14:21:20 · 527 阅读 · 0 评论 -
网络学习总结
源端主机给目的端主机发送ICMP请求报文进行询问,目的主机接收后,必须给源端主机发送ICMP回答报文进行回答,这下源端主机就知道目的主机可以连接成功)①递归查询:一路从本地域名服务器往上递归经过根域名服务器、顶级域名服务器、权限域名服务器,然后返回。②迭代查询:由本地域名服务器挨个访问根域名服务器、顶级域名服务器、权限域名服务器,然后返回。③:为了提高DNS的查询效率并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛的使用了。①:因特网所采用的是层次树状结构的域名结构。...原创 2022-08-07 22:18:15 · 690 阅读 · 0 评论 -
数据链路层-------以太网协议
1.MAC地址的作用:当多台主机连接到同一个广播信道上,如果说一台主机发送数据到广播信道上,所有主机都会接收到,对于该广播信道上的所有主机而言,通过发送数据上携带的标志信息,才能知道这个数据是不是发送给自己的。假设主机A要给主机B发送数据包,但是我们知道,主机A是不知道主机B的MAC地址,并且如果一个主机接收到的数据报上的MAC地址与自己的MAC地址不匹配的话,会直接将这个数据包丢弃,所以我们在发送数据的时候肯定会将接收方的MAC地址搞到手,而这个操作就是ARP协议的作了。然后给主机A发送ARP响应报文。.原创 2022-08-03 20:20:30 · 3609 阅读 · 1 评论 -
网络层协议------IP协议
②例子2IP地址与子网掩码与得到网络号,但是在该子网中,它的最后一个子节的二进制是"11110000"(只看最后一位的原因是子网掩码前三个子节的十进制都是255,二进制表示为"11111111",这个数与任何数就等于与它与的哪个数),而IP地址的最后一个子节的68表示的二进制是"01000100",所以与下来之后是"01000000"对应的十进制也就是64,这样就可以得到其网络号是多少,然后由于子网掩码最后的bit位为0的位置有4个,最大数量表示为15,所以子网地址的范围如上所示。...原创 2022-07-28 21:06:49 · 2242 阅读 · 0 评论 -
传输层协议------TCP协议
1.首先我们先看TCP协议段格式的样子为:大致包含的内容如上图所示。其中,字段中的每个不同的内容都有着不同的作用。首先,如下图:由于在tcp的传输中,tcp将每个字节的数据都进行编号,称为序列号。假设客户端和服务端已经建立好连接在发送数据。客户端在给服务端发送数据的时候,会将自己所发送的数据对应的每个序列号发送给服务端,而服务端进行接收数据后,会将这些数据的每个序列号进行确认,当服务器接受完此次客户端发送的数据后,会给客户端发送一个确认序列的信号,而这个确认序列的信号大小就等于服务器接收数据的序列号原创 2022-07-10 14:28:58 · 1190 阅读 · 4 评论 -
传输层协议------UDP协议
1.作用:其实就是一个标识符,用来区分应用层中不同的进程。但是在通信中,端口号非常重要。一个五元组信息是通信中必备的信息,而端口号就占了两个,一个通信的成功进行,五元组必不可少,所以对于源端端口号和对端端口号都必须知道。2.端口号的表示:端口号的表示是用16个比特位进行标识的,也就是2个字节,标识的范围为0~65535。其中:对于不同的区间有着不同的划分。注意:端口号只具有本地意义,只是为了标识本计算机的应用层的各进程,而在因特网中,不同的计算机中相同的端口号是没有关系的。3.除了端口号,其实还有个协议原创 2022-07-03 10:19:05 · 981 阅读 · 1 评论 -
应用层 ------ HTTP协议
1.概念:应用层为我们计算机网络体系结构的最高层,以下的每一层就是为其服务的,说白了就是我们经常接触的那一层,这层也是满足我们日常生活的一些需求的网络程序。例如:我们经常使用的qq,网站的访问,以及应用软件这一切的都是在应用层。2.作用:负责应用程序之间的数据沟通,但是对于这些应用程序,它都是又人为编写出来的,所以它就像上面我们写的加法器一样,应该有着自己的协议,有了这些协议,应用层程序之间的交流才会流畅。应用层的协议有很多,例如:HTTP协议(超文本传输协议)、FTP协议(文件传输协议)、SMTP协议(邮原创 2022-07-02 11:59:25 · 1163 阅读 · 0 评论 -
“再谈”协议
如果我们要指定一个计算器,那么客户端就应该将两个数据和一个运算符号发给服务器,服务器进行解析后计算后将最终数据发给客户端。例如:我们要指定一个加法器,那么客户端就应该给服务端发两个数据和一个“+”符号,那么对于服务器,他肯定有自己的一个协议,这个协议就是约定方案,约定了客户端在请求服务端的时候,应该将数据以什么方式发送,数据最终以什么方式返回来,只有这样的操作,客户端才能得到客户们想要的结果。例如:我们要制定一个加法器,那么我们应该又以下一些协议约定一:约定二:上面只是写了约定的一部分,因为对于我们实现一原创 2022-06-24 18:00:35 · 151 阅读 · 0 评论 -
Linux------网络套接字编程(二)
由于TCP的协议的服务,他是提供一个可靠的,面向字节流,有连接的传输服务,所以他与UDP协议是有部分不同的,但是还是右部分是相同的。具体工作的步骤如下:1.TCP服务端通信服务的步骤:2.TCP客户端通信的操作步骤:TCP通信程序的函数接口和UDP通信程序的函数接口有相同的也有不同的,如下:1.创建套接字:其中:domain:地址域类型,由于我们目前学习是IPV4地址域类型,所以填写AF_INET。type:数据传输方式,因为是TCP协议的通信,所以需要的可以提供面向字节流,可靠的,基于连接的流式套接字原创 2022-06-19 17:09:11 · 589 阅读 · 1 评论 -
Linux-----网络套字编程(一)
1.在网络通信中,我们去将一个数据给另一个用户去发送的时候,其实并不是直接交到另一个用户的手里的,而是将这个数据发给一个服务端,服务端通过客户端发送的数据,从里面提取到一些给谁的信息,此时服务端会找到这些信息所对应的用户,然后等待这些用户上线之后,将这些数据给其发过去,实现了网络通信。2.通过上面的网络通信的大致路径,我们也就知道了,进行网络通信的时候,我们为什么在发送的数据的时候要加上源端ip地址,源端口号,对端ip地址,对端口号,这样服务端才能对发来的数据进行操作。3.客户端和服务端①:客户端:网络通原创 2022-06-12 23:07:05 · 693 阅读 · 0 评论 -
网络基础(1)-----认识网络
网络基础1计算机网络背景网络发展ip地址和端口号MAC地址网络的模型及协议网络传输的流程网络字节序计算机网络背景网络发展1.独立模式:计算机之间相互独立。2.网络互联:多台计算机连接在一起,完成数据共享。其中,A,B,C是不同的计算机,但是他们共有一个服务器,通过服务器进行数据共享。3.局域网和广域网①:局域网(LAN):计算机数量多了,通过路由器和交换机连接起来,如下图:其中交换机的作用就是将服务器和客户机连接起来,并且通过路由器与另外的服务器的交换机连接起来。(其实在现实生活中,交原创 2022-05-31 00:33:40 · 1304 阅读 · 0 评论 -
Linux学习------多线程(4)-----线程应用
线程应用线程池单例模型线程池单例模型原创 2022-05-25 08:21:22 · 115 阅读 · 0 评论 -
Linux学习------线程(3)------线程安全
线程安全概念以及实现方法互斥互斥锁死锁同步条件变量同步的实现概念以及实现方法1.概念:多线程对同一临界资源的访问是安全的。因为对于临界资源,多个线程同时对其进行修改,就会出现数据的二义性。例如:这段程序运行的时候,两个进程对变量a进行操作,我们想的的出来的结果应该是a是按顺序加的,但是并不是,是会出现错误的,如下:我们发现并没有按顺序去进行,这是为什么呢,这就是多线程的安全问题了,对于像全局变量这种临界资源,如a,不同的线程对其操作,他都会改变,并且,我们知道,每个线程在pcb上运行的时间是相原创 2022-05-22 21:59:19 · 180 阅读 · 1 评论 -
Liunx学习-----多线程(2)-----线程的创建与使用
线程的创建与使用线程的创建线程的终止线程的等待线程的分离线程的创建线程的终止线程的等待线程的分离原创 2022-05-15 23:07:37 · 183 阅读 · 0 评论 -
Linux学习-------多线程(1)-------了解线程
线程线程的概念线程与进程之间的关系线程与线程之间的关系多线程与多进程在任务处理中的优缺点线程的概念线程与进程之间的关系线程与线程之间的关系多线程与多进程在任务处理中的优缺点...原创 2022-05-14 22:21:16 · 227 阅读 · 0 评论 -
Linux学习-----(进程信号)
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-05-12 20:38:46 · 689 阅读 · 0 评论 -
Liunx学习之-----IPC---(进程间通信)
进程间通信管道匿名管道命名管道共享内存消息队列信号量1.进程间通信在linux下是非常重要的,我们知道在linux下不同的进程的操作是互不干扰的(独立性,这是因为每个进程都有自己的独特的虚拟地址,而这个虚拟地址就是进程与物理内存沟通的桥梁,对于不同的进程,相同的虚拟地址位置会映射到不同的物理内存上,所以进程具有独立性),那么我们难免会遇到一个进程需要另一个进程的东西,那么对于进程间通信,在这些方面就非常重要。2.进程间通信的目的:数据传输:一个进程将自己的数据传输给另一个进程。资源共享:多个进程共原创 2022-05-03 13:14:14 · 417 阅读 · 1 评论 -
Linux---系统编程阶段------(基础IO)
基础IO常用的IO接口库函数IO接口系统调用IO接口文件操作符和文件流指针动态库和静态库的生成和使用常用的IO接口库函数IO接口系统调用IO接口文件操作符和文件流指针动态库和静态库的生成和使用...原创 2022-04-16 19:06:21 · 1224 阅读 · 0 评论 -
Linux---系统编程阶段-------(进程控制)
进程控制进程创建进程终止进程等待进程间程序替换进程创建1.进程创建函数:①:pit_t fork(void);其中pit_t实际上为int类型,返回的是子进程的id。其头文件为:#include<unistd.h>主要作用是在已经运行的进程里面创建一个进程。原来的进程称为父进程,新建的进程称为子进程。并且,自身的返回值为0,给父进程返回值大于0,出错返回-1。②:进程调用fork后,当控制转移到内核终的fork代码后,内核做以下事情:分配新的内存块和内存数据结构给子进程将父原创 2022-04-06 11:38:02 · 1029 阅读 · 1 评论 -
Linux --- 系统编程阶段 ------(进程概念)
进程概念冯诺依曼体系结构操作系统进程概念进程状态环境变量程序地址空间冯诺依曼体系结构1.冯诺依曼体系:一共由五大部分组成,分别为:输入设备,输出设备,存储器,运算器,控制器,其关系如下图所示:①:其中,黑色的线表示数据的流入与流出,红色的线代表的是对各个设备的控制。中央处理器(cpu)的组成是里面有控制器和运算器,其中控制器对各个其他的设备具有控制作用。②:数据的流入是从输入设备流入存储器中,而运算器则是对存储器的数据进行拿出来并进行运算,然后再将处理后的数据流入存储器中,最终再输出设备再从存储原创 2022-03-25 21:48:25 · 386 阅读 · 1 评论 -
Linux---常用重要基础工具-----(常用工具)
Linux上的常用重要基础工具常用基础工具yumvimg++/gccgdbmakefilegit常用基础工具yumvimg++/gccgdbmakefilegit原创 2022-03-23 09:04:00 · 960 阅读 · 0 评论 -
Linux---常用重要操作指令-----(基础指令)
Linux常用重要基础操作指令常用操作指令目录相关指令普通相关指令匹配查找指令权限相关指令常用操作指令所有的指令都是在对虚拟机的操作进行的,也是为了我们更加方便的使用虚拟机来完成这些操作目录相关指令1.ls 指令①:使用语法:ls [选项] [目录或者文件]②:作用:浏览目录(展示文件夹内部的文件信息,默认查看当前所在文件夹内容)当我们使用虚拟机打开一个终端的时候,我们默认处于家目录当中。③:常用选项的举例:-a 列出所在目录下的所有文件,包括隐藏文件(以.开头的文件)-l 列出文件的详原创 2022-03-20 17:34:10 · 1222 阅读 · 2 评论