自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写后端的小学生

永不懈怠

  • 博客(69)
  • 收藏
  • 关注

原创 13.进程-fork函数的原理和进程空间

进程空间这里说的进程空间,指的是进程虚拟地址空间;每个进程都有自己的4GB 虚拟地址空间,这里指的是32位系统下的进程;每个进程的进程虚拟地址空间是相互隔离的,互不影响;...

2018-06-29 22:44:04 340

原创 12.进程-进程的产生(fork函数)

上篇文章中的a.out进程实际上是由终端 bash 进程创造出来的;那 bash 进程的父进程又是谁呢?如果你不断追溯下去,你就会发现,最终的那个进程就是 pid 为1 的 init 进程,而 init 进程,又是由一个 pid 为 0 的进程通过系统调用 fork 生成的,它也是第一个由 fork 函数创造出来的进程;fork 是用户创建进程的唯一方法(万事都有特例,现阶段可忽略);fork函数...

2018-06-29 22:27:17 396

原创 28.TCP协议-保活定时器

保活定时器

2018-06-25 22:37:35 536

原创 27.TCP协议-糊涂窗口综合症

糊涂窗口综合症

2018-06-25 22:37:15 707

原创 26.TCP协议-持续定时器

持续定时器

2018-06-25 22:36:56 632

原创 25.TCP协议-超时与重传

超时与重传

2018-06-25 22:36:14 832

原创 24.TCP协议-快重传与快恢复

快重传与快恢复

2018-06-25 22:35:54 1047

原创 23.TCP协议-两个拥塞控制算法:慢启动和拥塞避免

慢启动与拥塞避免

2018-06-25 22:35:30 3561

原创 22.TCP协议-观察慢启动的发包过程(拥塞控制算法)

慢启动——观察

2018-06-25 22:34:43 706

原创 21.TCP协议-拥塞控制概述

概述在学习拥塞控制前,我们假设:接收方总是有足够大的缓存空间,接收方的接收窗口大小总是很大——这意味着接收方对数据来者不拒。在基于这样的理想条件上,如果发送方发送的数据接收方没有收到,那么大抵上可以判断为网络出现了拥网络拥塞是怎么来的图1 某个小型局域网 图 1 所示的是一个典型的小型局域网,SW 表示交换机,R 表示路由器。基于第 1 节中所述的假设,如果 PC1 给主机 PC3 发送 TCP ...

2018-06-25 22:34:07 649

原创 111.二叉树的最小深度(Minimum Depth of Binary Tree)

题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度  2.解题思路...

2018-06-19 22:29:04 562

原创 19.TCP协议-PSH标志

PSH标志

2018-06-14 20:54:04 995

原创 18.TCP协议-滑动窗口(抓包分析)

滑动窗口(抓包分析)

2018-06-14 20:53:36 1198

原创 17.TCP协议-滑动窗口(基础)

滑动窗口(基础)

2018-06-14 20:53:06 771

原创 16.TCP协议-Nagle算法

Nagle) 

2018-06-14 20:52:06 768

原创 15.TCP协议-迟到的ACK-Linux

迟到的ACK-Linux

2018-06-14 20:51:21 837

原创 14.TCP协议-迟到的ACK-Windows

迟到的ACK-Windows

2018-06-14 20:50:40 1690

原创 13.TCP协议-同时关闭

有同学会问,为什么不写同时打开?(同时打开指的是两端都是服务器,两端同时向对方建立连接请求)。一方面,在我们实际生活中几乎遇不到;另一方面,很多操作系统实际都不能正确的支持同时打开,所以,这里就不写了,如果你对这个很感兴趣,请参考《TCP/IP 详解卷1:协议》的 18.8 小节。1. 同时关闭同时关闭,指的是已建立连接的两端同时发起主动关闭。TCP 协议允许这种事情发生。见图 1. 图1 同时关...

2018-06-14 20:28:47 1014

原创 12.TCP协议-半打开

1. 半打开(Half-Open)如果一方已经关闭或异常终止,而另一方却对此毫不知情,这种连接就称为半打开的。比如:其中一端突然断网了,或者停电导致的异常关机。假设在主机 A 和 B 之间建立了一条 TCP 连接,由于停电导致主机 B 异常关机。接下来,我们分三种情况讨论,A 此时继续给 B 发数据,会有什么现象。B 仍然关机B 开机,但是未启动服务B 开机并重新启动了服务2. 实验serv 程序...

2018-06-14 20:28:03 787

原创 11.TCP协议-连接异常与RST

RST段当TCP连接出现严重的错误时,必须释放连接;通过将TCP 首部中的 RST 标志位置 1,就可以通知对端发生错误,以终止连接;我们在 TCP 协议(连接异常)一文中已经看到过这种错误,当时实验演示的是向一个不存在的端口建立连接,导致对端发送过来一个 RST 段。异常终止连接正常情况下,关闭连接的方式是发送 FIN 段,即四次挥手。这种方式也称为有序释放(orderly release)。也...

2018-06-14 20:20:48 960

原创 10.TCP协议-FIN_WAIT2

FIN_WAIT2

2018-06-14 19:56:42 805

原创 9.TCP协议-TIME_WAIT 状态

TIME_WAIT 状态

2018-06-13 22:17:53 739

原创 8.TCP协议-状态机

TCP协议-状态机

2018-06-13 22:17:21 925

原创 7.TCP协议-MSS

MSS

2018-06-13 22:16:51 1437

原创 6.TCP协议-连接异常

连接异常

2018-06-13 22:16:21 1169

原创 5.TCP协议-断开连接(四次挥手)

TCP协议-断开连接

2018-06-13 22:15:44 934

原创 4.TCP协议-建立连接

TCP协议-建立连接

2018-06-13 22:14:53 849

原创 3.TCP协议-序列号和确认号

3.TCP协议-序号和确认号

2018-06-13 22:14:17 2099

原创 2.TCP协议-基础

什么是TCP协议你和你对象(没有对象那就选你上铺或下铺的同学吧)发短信,事先约定,你给他发送任何短信,TA 都得回复你一句:收到。我想这个在你平时生活中应该有所遇到。比如你发送“早安”给 TA,TA 会回复你:“收到”。如果过了 1 分钟你还没有收到 TA 的回复(也许是你发送的短信 TA 没收到,也许是 TA 已经回复了,但是因为网络原因你没收到),你就再发送一次“早安”给 TA,直到 TA 回...

2018-06-13 22:13:19 680

原创 1.基础知识

协议协议,如果换成C语言来描述,那就是一个struct结构体,有很多函数可以对结构体(协议)进行解读;底层的协议,可以为其上层协议服务,是指底层的结构体中的数据域,就是上层的某个结构体(协议)的对象;数据链路层上传输是2型以太网帧,你可以把帧理解为一个struct frame结构体;struct frame { char destination[6]; // 目标网卡地址 char sou...

2018-06-13 21:58:37 684

原创 11.进程-基础

当你编译完一段代码生成 a.out 后,在命令行键入 ./a.out,这时候,就有一个(或多个)新的进程产生了(前提你的 a.out 没问题^_^).在此之前,a.out 文件只是一份保存在你硬盘上的死物而已,它并不是进程。一旦你在你的终端里键入./a.out,你的终端 shell(它也是个进程,一个活物) 就会把 a.out 文件读到内存,一旦把控制权交给内存中的这段 a.out (称之为内存映...

2018-06-13 10:47:16 1087

原创 10.文件与目录- st_mode 与 chmod 函数

 st_mode 与 chmod 函数 

2018-06-12 22:03:54 907

原创 9.文件与目录-Linux中的时间

Linux中的时间 

2018-06-12 22:03:14 692

原创 8.文件与目录-stat函数及结构体

stat函数及结构体

2018-06-12 22:02:10 792

原创 7.文件与目录-ext2文件系统及实验

ext2文件系统及实验 

2018-06-12 22:00:42 894

原创 6.文件与目录-文件系统初探

文件系统初探 

2018-06-12 21:59:37 1002

原创 5.文件IO-fcntl函数(修改文件表的 f_flags 标志)

阻塞与非阻塞是文件本身的属性;每个文件描述符是数组的一个索引,这个数组每个元素保存了一个指向文件表的指针;这个文件表的结构如下:

2018-06-12 21:58:38 1023

原创 4.文件IO-阻塞与非阻塞IO

通常来说,从普通文件读数据,无论你是采用 fscanf,fgets 也好,read 也好,一定会在有限的时间内返回;但是如果你从设备,比如终端(标准输入设备)读数据,只要没有遇到换行符('\n'),read 一定会“堵”在那而不返回;还有比如从网络读数据,如果网络一直没有数据到来,read 函数也会一直堵在那而不返回;read的这种行为,称之为block,一旦发生block,本进程将会被操作系统设置为睡眠,直到等待的事件发生(比如有数据到来),进程才会被唤醒;系统调用 write 同样有可能

2018-06-12 21:57:41 1156

原创 3.文件IO-文件描述符,文件表与lseek

文件描述符在上一篇博客当中,我们知道open函数会返回一个整数,它在本进程中唯一标识了一个文件;在一个进程中,存在着一个大数组,记录了打开的文件;这个数组的索引就是open函数返回的整数,而这个索引就是文件描述符;而这个数组的每一项,都记录了与打开的文件相关的信息;在操作系统当中,是通过进程控制块(PCB)来描述进程信息和相关资源的;实际上在Linux中,PCB就是一个巨大的结构体,即task_s...

2018-06-12 21:45:53 982

原创 2.文件IO-read/write/open函数

用Linux接口实现文件拷贝#define BUFFERSIZE 4096int main(int argc, char* argv[]) { int srcfd = open(argv[1], O_RDONLY); // 用只读的方式打开一个已经存在的文件 //创建一个新的文件,这个文件只能写,权限是 0666 int dstfd = open(argv[2], O_CREAT ...

2018-06-12 16:56:07 1325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除