- 博客(13)
- 资源 (1)
- 收藏
- 关注
转载 网卡TSO
网卡TSO功能当一个系统需要通过网络发送一大段数据时,计算机需要将这段数据拆分为多个长度较短的数据,以便这些数据能够通过网络中所有的网络设备,这个过程被称作分段。而当网卡支持TSO时,TCP层会逐渐增大mss(总是整数倍数增加),当TCP层向下发送大块数据时,仅仅计算TCP头,网卡接到到了IP层传下的大数 据包后自己重新分成若干个IP数据包,添加IP头,复制TCP头并且重新计算校验和等相关数据。TCP 分段卸载将 TCP 的分片运算(如将要发送的 1M 字节的数据拆分为 MTU 大小的包)交给网卡处理
2021-02-26 19:10:43
2255
原创 【计算机网络】TCP详解
【计算机网络】传输层TCP和UDP区别/优缺点/应用用户数据报协议 UDP(User Datagram Protocol)传输控制协议 TCP(Transmission Control Protocol)无连接面向连接使用尽最大努力交付提供可靠交付没有拥塞控制有流量控制,拥塞控制面向报文面向字节流8个字节信息包20个字节信息包可能丢包保证数据正确性和顺序支持一对一、一对多、多对一和多对多的交互通信TCP 连接只能是点对点的(一对一)
2020-09-26 17:20:43
1085
转载 linux c enum类型
在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚举类型。例如:enum weekday{sun,mon,tue,wed,thu,fri,sat}; 定义了一个枚举类型名 enum weekday,然后定义变量为该枚举类型。例如:enum weekday
2020-08-08 15:11:24
659
原创 makefile编写和使用
什么是makefile?makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一
2020-08-02 18:22:29
446
转载 Linux信号编程概述
中断中断是系统对于异步事件的响应, 进程执行代码的过程中可以随时被打断,然后去执行异常处理程序;计算机系统的中断场景:中断源发出中断信号 -> CPU判断中断是否屏蔽屏蔽以及保护现场 -> CPU(查询中断向量表, 找到中断服务程序的入口地址)执行中断处理程序 ->(处理完中断之后) ->恢复现场,继续执行原来的任务中断分类硬件中断(外部中断)外部中断是指由外部设备通过硬件请求的方式产生的中断,也称为硬件中断软件中断(内部中断)内部中断是由CPU运行程序错误或执行内部
2020-07-25 18:26:50
272
原创 linux c 检查程序是否运行(pid_t定义/stat();函数)
linux c 检查程序是否运行检查进程存在的五种方法:通过wait()函数来监控: 这种方法只适用于父子进程之间,父进程可以使用该函数对子进程进行监控 信号量和文件锁:如果某个进程一直持有某个信号量或者文件锁,并且该文件锁或者信号量一直处于被监控状态,那么当可以获取到信号量和文件锁的时候说明该进程已经终止进程间IPC通信机制:可以通过进程间通信的某些机制来实现对某一个进程的监控,比如FIFO,可以给被监控进程管道的读端,当写端写入失败的时候,说明该进程也已经结束,还可以通过socket,让被监
2020-07-25 04:01:26
3430
原创 argc,argv,argv[0]用法详解
http://www.site.uottawa.ca/~lucia/courses/2131-05/labs/Lab3/CommandLineArguments.htmlYou’ll notice that argv[0] is the path and name of the program itself.This allows the program to discover information about itself.char *argv []是一个字符数组,其大小是int ar
2020-07-24 15:39:03
8439
3
原创 linux 获取文件名和文件目录 basename/dirname(函数/命令)
一、basename/dirname 函数 头文件: #include <libgen.h> 函数定义: char *dirname(char *path); char *basename(char *path); 功能描述: char *dirname(char *path);
2020-07-24 14:49:36
2327
原创 linux c 解析命令行参数 getopt_long(); / struct option
一、命令行参数命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"–",如下表(ls 命令参数)所示,其中-a,-A,-b都表示短选项,–all,–almost-all, --author都表示长选项。他们两者后面都可选择性添加额外参数。比如–block-size=SIZE,SIZE便是额外的参数。短参数与后面的值可以加空格,也可以不加空格。如-a 1 和 -a1是相同的。长参数与后面的值可以加空格,也可以用=号连接。如–byte 3 和–byte
2020-07-22 13:27:44
754
原创 TLV协议(完善+封包+解析)
通信协议概念通讯协议就是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。 通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议。更通俗来讲,它可以理解两个节点之间为了协同工作实现信息交换,协商一
2020-07-11 19:20:06
23802
7
原创 内存泄漏(Memory Leak)
什么是内存泄漏(Memory Leak)?简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。内存泄漏一般指的是堆内存的泄漏。堆内存是指程序从堆中分配的、大小任意的(内存块的大小可以在程序运行期决定)、使用完后必须显示的释放的内存。应用程序一般使用malloc、realloc、new 等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用 fre
2020-07-09 14:02:28
2272
原创 linux daemon(守护进程)
什么是DaemonDaemon程序,又称为守护进程,通常在系统后台长时间运行,由于没有控制终端而无法与前台交互。Daemon程序一般作为系统服务使用。Unix/Linux中的daemon进程类似于Windows中的后台服务进程,例如http服务进程nginx,ssh服务进程sshd等。ps -axj 命令打印系统中各进程的状态。选择项- a显示由其他用户所拥有的进程的状态。-x显示没有控制终端的进程的状态。-j显示与作业有关的信息:对话期 ID、进程组ID、控制终端以及终端进程组 ID。.
2020-07-08 17:14:53
5601
1
转载 数据库行存储和列存储
大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成。字段是列和行的交集:某种类型的单个值。属于同一列的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户数据的表,那么所有的用户名都将是相同的类型,并且属于同一列。在逻辑上属于同一数据记录(通常由键标识)的值的集合构成一行。对数据库进行分类的方法之一是按数据在磁盘上的存储方式进行分类:按行或按列进行分类。表可以水平分区(将属于同一行的值存储在一起),也可以垂直分区(将属于同一列的值存储在一起)。传统的关系型数据库,如 Oracle.
2020-07-06 17:33:30
1313
j2ee login.zip
2020-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅