
Linux
文章平均质量分 92
blame_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
典型IO模型之四
任何的IO过程,都包含两个步骤,第一是等待,第二是拷贝。而且在实际的应用场景中,等待消耗的时间往往都远远高于拷贝的时间。为了让IO更加高效,最核心的绑法就是让等待的时间尽量少。阻塞IO:在内核将数据准备好之前,系统调用会一直等待。所有的套接字默认都是阻塞方式。阻塞IO的流程非常简单,一次只能进行一个IO,多个IO的情况下,过程是串行的。缺点:进程对CPU利用率不够高(因为可能有大量的时间在...原创 2020-04-25 21:51:36 · 158 阅读 · 0 评论 -
网络层IP协议
网络层:负责地址管理与路由选择; 典型协议:IPIP协议格式4位协议版本:IPV4 / IPV64位首部长度:记录IP报头长度(以四字节为单位),4字节最多表示15,所有IP报头最大长度是60字节8位服务类型(TOS):3位优先权字段(已经弃用),一位保留位(必须置0),4位TOS位分别表示:最小延时,最大吞吐量,最高可靠性,最小成本;这四者互相冲突,只能选择一个。16位总长度:IP...原创 2020-04-11 23:41:18 · 264 阅读 · 0 评论 -
TCP浅析(2)
TCP协议如何实现可靠传输TCP协议实现可靠传输的主要依仗就是它具有以下能力:连接管理:通过连接管理保证双方都具有数据收发的能力;确认应答机制:发送的每一个数据,都要求对方进行确认回复(通过协议字段中的序号和确认序号实现)超时重传机制:发送数据后一段时间内没有收到确认回复,则认为数据丢失,进行重传。协议中校验和字段:通过协议字段中的校验和校验数据一致性,若不一致则要求对方进行重传;...原创 2020-04-11 12:00:35 · 216 阅读 · 0 评论 -
TCP浅析(1)
TCP:TCP是面向连接,可靠传输,面向字节流的传输层协议。面向连接:通过三次握手建立连接,四次挥手释放连接,以及状态的连接管理实现面向连接。tcp是一个有状态的协议。可靠传输:保证数据有序并且可靠的到达对端;面向字节流:可靠的,有序的,双向的,基于连接的字节流传输(不限制上层发送/接收的数据大小)协议格式:16位源端口 / 目的端口:负责实现应用程序之间的数据传输。32位序号...原创 2020-04-07 13:16:51 · 222 阅读 · 0 评论 -
UDP协议浅析
传输层:负责应用程序之间的数据传输; 典型协议 UDP / TCPUDP:无连接,不可靠,面向数据包的传输协议。无连接:知道对方的地址就可以发送数据,不需要建立连接;不可靠:udp并不保证数据可靠的到达对端,只管数据发送出去,不关心会不会丢失。面向数据包:无连接的,不可靠,有最大长度限制的数据传输。(小于64k)协议格式16位源端口 / 16位目的端口:负责应用...原创 2020-04-07 13:09:06 · 443 阅读 · 0 评论 -
【Linux】基础IO接口
基础IO:常用头文件 < fcntl.h>标准库IO接口c 默认会打开三个输入输出流, 分别是 stdin , stdout, stderr这三个流的类型都是FILE*, fopen返回值类型,是个文件指针。FILE* fopen(const char* path, const char* mode);//path:文件路径名//mode:// r 只读 ...原创 2020-03-25 19:05:17 · 218 阅读 · 0 评论 -
【Linux】socket套接字接口(TCP)
TCP 通信流程tcp协议特性:面向连接,可靠传输,面向字节流。服务端:创建套接字在内核中创建socket结构体与网卡建立联系,描述协议版本,传输类型,协议类型。为套接字绑定地址信息给socket描述源端地址信息。开始监听告诉操作系统可以开始接收客户端的连接请求(客户端与服务端进行TCP通信必须首先建立连接,确保双方都具有数据收发的能力).当服务端收到了客户端的连接请求,连接...原创 2020-03-25 19:02:08 · 391 阅读 · 0 评论 -
【Linux】socket套接字接口(UDP)
UDP:用户数据包协议,特性是 无连接,不可靠,面向数据包;应用场景:数据的实时性要求高于安全性的通信场景。例如:视频传输socket套接字编程套接字编程主要是: TCP通信程序和UDP通信程序的编写应用程序是程序员开发的,应用协议是程序员自己定的,但是从传输层开始往下都是操作系统实现的。网络编程通常也叫做套接字编程,套接字实际上就是一套网络通信编程的接口,程序员可以通过这套接口,并且提供...原创 2020-03-18 15:49:35 · 314 阅读 · 0 评论 -
【Linux】网络基础1
网络基础交换机:实现主机之间的数据交换路由器:不但实现数据交换,并且实现数据的路径选择网络的划分:局域网 ,城域网, 广域网 互联网 / 因特网组网的方式:以太网 / 令牌环网IP 和 PORT在复杂的网络通信中,必须保证每个主机都有自己唯一的标识,只有这样才是实现精确的点对点的通信。IP地址:网络通信中主机的唯一标识IPV4: uint32_t --无符号四...原创 2020-03-10 10:25:39 · 147 阅读 · 0 评论 -
【Linux】进程间通信
进程间通信进程间因为每个进程都有一个独有的虚拟地址空间,在保证了进程独立性的同时,却使得进程间无法直接通信。为了能使进程间可以通信,操作系统提供了进程间通信的方式,因为通信场景的不同,提供的方法也有多种。进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程;资源共享:多个进程之间共享同样的资源;通知事件:一个进程需要向另一个或者另一组进程发送消息,通知他们发生了某种事件。...原创 2019-12-04 20:29:27 · 213 阅读 · 0 评论 -
Linux -- 进程控制
进程控制相关的头文件一般都是 <unistd.h>进程创建进程创建简单的来说就是创建一个PCB。使用 fork 库函数。pid_t fork();pid_f vfork(void);fork — 通过复制调用进程也就是父进程的PCB来创建一个新的子进程。fork的返回值是:父进程返回子进程的PID,子进程返回0,若创建失败返回-1.vfork — 创建子进程,父子进程公...原创 2019-11-21 13:23:18 · 218 阅读 · 0 评论 -
Linux -- 进程概念
进程概念进程是什么?简单的来说进程就是运行中的程序。而这样理解显然是不够的。从操作系统的层面理解:当一个程序运行起来需要将代码数据加载到内存中,操作系统中运行了很多程序,这时候操作系统就需要把这些程序先描述,再组织进行管理。对于操作系统来说,进程就像对一个运行的程序的描述。在操作系统眼里,看到进程就相当于看到了一个程序,而这个对程序的描述信息就是 — PCB(进程控制块)。从内核观点来看...原创 2019-11-20 11:21:43 · 132 阅读 · 0 评论 -
Linux -- 基础命令
Linux 命令的用法:命令名 【功能选项】【源操作对象】【目标操作对象】常用基本命令:1) ls 显示目录或文件-a 列出目录下所有文件包括以 . 开头的隐藏文件-d 将目录像文件一样显示,但不显示其下文件-i 列出文件并显示 inode 号-l 列出文件的详细信息-k 以k字节的形式表示文件的大小-n 用数...原创 2019-04-27 21:00:17 · 391 阅读 · 1 评论