摘要: 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号, 阅读全文
posted @ 2020-07-11 21:19 孔子?孟子?小柱子! 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 传输层里有两个比较重要的协议:TCP和UDP。对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议。 TCP是面向连接的,UDP是面向无连接的。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特 阅读全文
posted @ 2020-07-11 20:42 孔子?孟子?小柱子! 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 在Linux里面,进程可以分成两种:一种为实时进程,需要尽快执行返回结果;另一种是普通进程。 在task_struct中,有一个成员变量叫调度策略。优先级配合调度策略,优先级就是一个数值,对于实时进程,优先级的范围是0~99;对于普通进程,优先级的范围是100~139。数值越小,优先级越高。 对于实 阅读全文
posted @ 2020-07-11 17:43 孔子?孟子?小柱子! 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 对于Linux,无论是进程,还是线程,在内核里面,统一称为任务(Task),由一个统一的结构task_struct进行管理。每一个任务都有一个ID,作为这个任务的唯一标识。 Linux可以通过kill来给进程发信号,通知进程退出。在运行中的进程,一旦要进行一些I/O操作,需要等待I/O完毕,这个时候 阅读全文
posted @ 2020-07-11 16:53 孔子?孟子?小柱子! 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 线程负责执行二进制指令,进程除了执行指令之外,内存、文件系统等等都要其来管理。 使用进程实现并行执行的问题有两个:第一,创建进程占用资源太多;第二,进程之间的通信需要数据在不同的内存空间传来传去,无法共享。 创建和运行一个普通线程:声明线程函数->>声明线程对象->>设置线程属性->>创建线程->> 阅读全文
posted @ 2020-07-11 15:54 孔子?孟子?小柱子! 阅读(120) 评论(0) 推荐(0) 编辑