Linux
文章平均质量分 88
本专栏专供 个人学习、复习
WGzZsyu
感谢你的关注
展开
-
我们来谈谈tcp
一、认识Tcp报头"让新离开地表,才能找到盘旋爬升的动力。一、认识Tcp报头我们先来认识认识tcp协议报头字段。跟tcp协议字段报头比起来,udp可真是太轻松了。(2) 相关字段的理解如何理解4位首部字段?根据以上关于TCP协议字段,我们可以得出以下结论:TCP报头是有长度的:20字节。要进行正常的网络通信的一个条件是,要让协议报头与有效载荷完成分离,也就是 " 解包与分用 "。然而,TCP的协议报头不是说是20字节嘛?那么要解包分用直接拿掉头上的20字节不就得了?但其实,这是不对的。原创 2023-07-06 12:40:50 · 686 阅读 · 0 评论 -
我们来谈谈https
一、 http明文传输"这一封信只是得到它要回答问题,那个答案早已点燃在心里"一、 http明文传输紧接上文这仍然是一款拙劣的http服务器,我们此时在用户数输入栏输入数据信息并提交表单。我们先来认识认识使用到的两个工具软件。1.PostManpostman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。2. Fiddler。原创 2023-06-12 12:25:35 · 1140 阅读 · 0 评论 -
http长连接与会话保持
答案是肯定不是,此时你用户泄漏的就不再是自己的数据,而仅仅是一个session_id,大大降低了用户真实数据泄漏的可能,其次,在这个网络攻防的世界里,没有完全的、绝对的防御,需要配合一定的策略来保障网络访问的安全性。因此,Http所提出的长连接的实质是为了解决,一个完整网页需要多次请求,才能构建出来的问题,需要让Client和Server端都需要支持,仅只需要建立好一个连接,在这个连接的基础上,获取大份资源。从老方法找解决方法,无非就在于,不让用户数据由用户自己管理就好了,也许你会说你的"防范意识"很强。原创 2023-06-12 00:09:51 · 2852 阅读 · 0 评论 -
Linux守护进程
一、 Xshell远端登录和断开做了些什么?我们先来看看这个场景。这是一个常见的基于TCP套接字的网络服务器,服务端接收客户端发送的消息,收到后并向echo回响给客户端。对于Linux而言,终端只能有一个前台进程,这也是为什么当我们在服务端一侧启动服务时,继续输入诸如ls\pwd\which等命令时,bash(shell)没有作任何响应。现在我们将服务端的窗口关闭后,可以发现的是,客户端就自动退出了。这是为什么呢?上述图片描述了什么呢?SID又是什么呢??原创 2023-05-15 21:22:41 · 636 阅读 · 0 评论 -
高级IO:selcet\epoll + 反应堆(Reactor)
(一)五种IO模型"就让我是一道微光,能让你拥有灿烂的锋芒"(一)五种IO模型如何理解高级IO?IO=等待 + 数据拷贝高效IO:减少"等待"花费的单位时间,尽可能提高IO效率!(1)阻塞IO阻塞 IO顾名思义:阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待.举个钓鱼的例子,再鱼没咬钩之前,死盯着杆子。一旦鱼咬钩,就立马拉杆。(2)非阻塞IO显然,非阻塞IO就和阻塞IO完全对立。如果内核还未将数据准备好, 系统调用仍然会直接返回。并且返回EWOULDBLOCK错误码。原创 2022-09-09 22:19:28 · 761 阅读 · 0 评论 -
网络基础2(下):IP协议与MAC帧
(一)传输层(IP协议)"你说不爱了,又依依不舍。"(一)传输层(IP协议)IP协议的基本概念主机:配有IP地址,但是不进行路由控制的设备。路由器:既配有IP地址,又进行路由控制。节点:主机 && 路由器的统称。所谓IP协议,就是实现主机 与 主机,跨网络的 通信!(1)IP构成dst IP=目标网络(号)+目标主机(号)如何找到IP?1.先找到主机所在的网络2.在确定网络中,找到对应主机。(2)IP格式认识任何报头,重中之重在于:1.报头与有效载荷的分离。原创 2022-09-03 17:05:40 · 2028 阅读 · 0 评论 -
网络基础2(上):http协议、tcp/udp协议
(一)应用层"逆风让翱翔,更珍贵"(一)应用层应用层是我们最常接触到的,编写代码的所在层。往下的传输、网路....由OS管理。(1)初始HTTP①认识URL②urlencode和urldecode像 "/?:" ......这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现.urlencode/urldecod 修改工具将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。...............原创 2022-08-26 21:43:23 · 1172 阅读 · 3 评论 -
网络基础1:网络初始与网络套接字通信
(1)初识TCP/UDP协议本篇仅仅对TCP和UDP的协议进行初步的认识,不做多的深究。因为本篇的重在实现套接字编程!TCP的四个特点:传输层协议有连接可靠传输面向字节流UDP的四个特点:传输层协议无连接不可靠传输面向数据报对TCP和UDP的初步认识,可以从可靠和不可靠的传输开始。所以 如果需要稳定的传输,就得使用TCP协议,反之,这样的协议一定更复杂,如果对数据传输的可靠性要求不高,那么可以选择,实现起来更简单的UDP协议。(2)网络字节序我们生活中,主机大端机,小端机。原创 2022-08-21 16:59:30 · 298 阅读 · 0 评论 -
线程(下):读写者模型\环形队列\线程池
一)读写者问题;"不曾回顾的往事,是那苦笑的释然"(一)读写者问题;本篇只简单提一提读写者问题。(1)什么是读写锁?原创 2022-08-08 17:02:36 · 196 阅读 · 0 评论 -
线程(中):线程安全
难免会有竞争能力强的执行流,反复申请锁,释放锁,但却不会做什么有效的事情,致使其他竞争力相对弱的执行流无法拿到锁,处于一饥饿状态!可以知道,一个线程互斥地访问临界资源的时候,其他线程除了等待该线程访问完临界资源,释放锁之外,什么也做不了。而本质上,锁的实现,满足原子性的特性,是能够保证自己的安全。②如何理解,锁是每个执行流都可以去争抢的资源,那么也叫做临界资源,它又如何能保护临界资源?很显然,这样一种区域,是不安全的。这样就可以保证,只一个执行流进入临界区,其余执行流会因为没拿到锁,阻塞在锁外。...原创 2022-08-08 12:07:25 · 144 阅读 · 0 评论 -
线程(上篇):线程的创建
因此,为了简化设计,所以复用了进程管理的逻辑,进行线程管理。我们知道,Linux并没有真正意义的线程,所以也没有提供真正意义上与线程有关的系统调用接口!因此,由pthread库提供的 线程id 实质上就是进程地址空间上 mmap区域的地址。②线程本质上是在进程内部运行的,享用同一块进程地址空间(这里暂且这样理解);是一种负担,这个时候,我们可以告诉系统,当线程退出时,自动释放线程资源。③线程的资源(进程地址空间),本质上是经由进程进行合理分配。更准确的定义是:线程无非是"一个进程内部的控制序列"....原创 2022-08-07 23:16:22 · 161 阅读 · 0 评论 -
进程信号;
要弄懂信号,就需要 理解信号的三种情况 与处理 这些信号,在系统里本质上就是一堆宏定义; 所以一个进程收到信号,本质上就是因为PCB内 位图被修改!!!本质就是操作系统 去修改进程PCB内的位图!(0)前言 我们先来一个现象;此时收到键盘的ctrl + C 后程序终止;原因是,把ctrl + C 解释 成了 2号信号;口说无凭,我们现在来认识下面的一个捕捉信号的函数 收到了信号(ctrl + C)但为什么此刻程序不终止了??是因为这个捕捉函数,在捕捉的时候,也把默认行为 改为自定义行为了~ co原创 2022-08-05 17:21:44 · 232 阅读 · 1 评论 -
进程间通信(IPC)
一)进程间通信的理解;(一)进程间通信的理解;对进程间通信的理解,我们分为三个问题;数据传输:一个进程需要将它的数据发送给另一个进程.资源共享:多个进程之间共享同样的资源.通知事件:一个进程向另一个或一组进程发送消息.通知它发生了某种事件进程控制;进程知道另外一个进程的运行状态.(2)如何做到呢?我们从进程的概念所知,如果仅仅依靠两个进程发生通信,是很难的。因为进程运行 具有独立性!进程A---->"拷贝"资源给OS(提供一段内存区域)---->OS“拷贝”资源---->进程B。...原创 2022-08-05 14:04:28 · 282 阅读 · 0 评论 -
基础IO(下):软硬链接和动静态库
那么相对于文件而言,你能在不同目录,却能创建同一名字的文件。但是当文件运行起来变成进时,操作系统是找不到库文件的!我们知道,磁盘上的真正文件不是文件名,而是inode。也就是说,硬连接属性是在包括“.""..”,当在目录内另创建class。根本上,编译和执行是分离的,一个是交给编译器,另一个是交给操作系统。在进程章节,我们知道。硬链接不会生成新的inode,也就不是一个独立的文件。软链接会新成新的inode,是一个独立的文件。我们制作动静态库,只需要把头文件、.o文件打包就行。...原创 2022-07-25 19:53:01 · 369 阅读 · 1 评论 -
基础IO(上):文件管理和描述符
5)使用dup2-----------------"如果说,非要一个人去的抗。那就让我去吧"(1)复习回顾(C提供文件操作接口)我们先来回顾在C语言时期,用的C文件接口。①文件打开以及文件生成位置。我们先看看fopen函数问我们常说,文件在当前可执行程序目录生成,这对不对呢?此时我们让进程跑起来。也就是,cwd和exe目录重叠了。所以我们退回一层目录,发现文件生成已经不在可执行目录中了。所以,应当是进程运行路径作为文件生成的地方。②写入与输出。...原创 2022-07-18 14:40:50 · 235 阅读 · 0 评论 -
进程(番外):自定义shell命令行解释器
---------------------加油! 本篇的理论较少,当然代码量也很少就仅仅是上传的代码而已。 最终代码就段落。祝你好运~原创 2022-07-08 21:40:11 · 309 阅读 · 0 评论 -
进程(下):进程控制、终止、等待、替换
--------------“美好的事总会如约而至”父:子 ==1:N; 父进程不需要表示,子进程需要标识。多个子进程执行不同任务,父进程需要通过id 区分子进程。 因此调用fork时候,内核会做:1.分配新的内存块 和 内核数据 给子进程。2.将父进程的代码 数据拷贝给子进程。3.并把子进程添加到 系统进程调用列表当中。4.fork返回,并执行调度。通常情况下,父子代码共享,数据也是(物理内存是一样的)。但是当一方试图写入时,为了保证各个进程的独立性,此时会发生写时拷贝。 为什么要写时拷贝?①保证进原创 2022-07-08 21:15:59 · 230 阅读 · 0 评论 -
进程(中):进程状态、进程地址空间
-----------”锻炼你的能力,成功会自动找上门来” 作用:优先级的存在,就是决定谁先、谁后拿到某种资源。vs权限(能与不能)。存在优先级的根本是: 资源(cpu)有限, 需求无限(进程多个)。如何理解进程排队?PCB结构体排队,依据头指针,就可以确定优先级。记录程序即将执行的下一条指令的地址。(当进程被切换、终止时,不用再从头开始执行)。CPU执行:取指令 分析指令 执行指令。EIP----->帮助cpu记录,在进程切换的时候,保存当前进程数据,利于进程恢复。任何进程都具有自己的“时间片”:操作系原创 2022-07-08 16:57:15 · 432 阅读 · 0 评论 -
进程(上篇):进程与操作系统
------------学习是为了养成,不是致富目录(1)冯诺依曼体系(2)操作系统(OS):①概念:②目的:③管理:(3)进程管理:①什么是进程?②如何对进程进行管理?编辑 ③linux下的进程操作: 创建一个进程:小结:计算机笔记本、服务器,大部分都遵守冯诺依曼体系。那么这个体系是什么呢?输入单元(设备): 键盘、鼠标、硬盘、摄像头……处理器(CPU):运算、控制。输出单元(设备):显示器、音响、网卡、硬盘……为什么外设与cpu不直接交互,需要一个中间的过渡区(存储器)? 外设相对于cpu运算原创 2022-07-08 10:37:58 · 149 阅读 · 0 评论 -
Linux:yum\vim 与 权限配置
----------让别人去说吧本篇就是Linux 的开篇。 对于Linux 的学习,就我而言,我感觉在实操是要大于理解的。所以,进行这块知识的学习,尤其注重实操和练习。在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。在windows下就更简单点,他们会把自己的软件包安装在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。所以软件包 和 软件管理器的关系,就类似于 手机、PC上的“应用”,和软件管理器就是“应用商店”的关系。所以,y原创 2022-06-26 16:44:27 · 1066 阅读 · 0 评论