自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 TCP协议的滑动窗口详解

其实没有什么窗口,窗口也就是一个数值而已,这个窗口的作用是用来控制每次发发送字节的大小的,是TCP的流量控制,我们知道TCP包头有一个字段叫窗口大小,这个值就是来控制窗口的,发送方的接受方都有一个缓冲区,在接受方的缓冲区空闲的大小就是接受窗口的大小,发送窗口等于接受窗口,所以要发送的值也就是不能超过接受方缓冲区空闲的值,超过就麻烦了,接收方接受不了这个数据就丢失了,所以一定要进行流量控制。那问题来...

2018-08-01 18:41:57 707 1

原创 TCP协议详解

一、这里我来说说TCP协议,要了解TCP协议我们需要了解结构。TCP协议的包头结构:在从应用层得到数据后,会加一个TCP包头,也就是这个结构,源端口号和目标端口号就不用说了,顺序号是干嘛的?1、序列号(顺序号)也就是这个TCP分段的编号,它的作用是用来确保TCP分段是不是乱序到达,乱序后可以通过这个序列号排序,也可以验证是否重复,这个序列号就是保证TCP可靠性的基本要求。那序列号的值是...

2018-08-01 15:41:01 428

原创 网络数据发送的过程详解

这篇博客是我最近研究网络传输的心得,在这里我就来个总结,有错误的地方希望好心人能帮我纠正下,感谢!要想弄懂网络数据发送就需要知道哦OSI模型:OSI分为七层:1、物理层,2、数据链路层,3、网络层,4、传输层,5、会话层,6、表示层,7、应用层我们在后面慢慢介绍每个层相应的功能,这里我们分数据发送端和数据接收端。1、应用层:这里我不讨论5、6层。首先发送端数据的产生是在应用层,产生...

2018-07-31 23:42:21 4295 1

原创 简单易懂的TCP的拥塞控制

1、什么是拥塞现象?谈到拥塞控制,我们需要先了解什么是拥塞,拥塞现象简而言之就是网络中的数据包太多,使得网络来不及处理,因为传输的分组在到达某个节点时会有一个缓冲区来保留该分组,当网络中的分组太多,就会导致这个分组没有缓冲区来保存,这样就只能让上个节点重传,但是重传只是徒增网络的压力,并造成恶性循环,就像公路堵车一样。危害嘛,一般会使网络性能下降,严重的话会让网络崩溃,出现死锁现象(网络有效吞吐量...

2018-03-29 20:36:30 305

原创 你所不知道的++i,和i++

相信所有人都对i++和++i不陌生,当有人问到你i++和++i的区别时,你会非常肯定的回答:i++是先取值后++,++i是先++后取值。你的回答确实没问题,但是这里要讲的确实你可能不知道的。这道题的答案你们能算出来吗?` int main(){ int i = 0; printf("%d%d%d%d",i++,--i,i++,++i);} `咋眼一看好像很简单,我就直接说结果了

2017-10-25 17:31:25 211

原创 描述函数栈帧的调用过程

这次我们通过例子来研究调用过程:int sum(int a,int b){ int temp = 0; temp = a+b; return temp;}int main(){ int a = 10; int b = 20; int ret = sum(a,b); return 0;}CPU含有两个寄存器:eax,edx 返回值字节: 1.

2017-10-25 16:41:59 372

原创 C的内存虚拟地址空间结构

.text:代码段,可读不可写可执行。 .data:数据段,可读可写不可执行。 .data:存放全局变量或静态变量,初始化且不为零的数据。 .bss:全局变量或静态变量未初始化,或初始化为零。 .rodata:只读数据段

2017-10-18 17:00:55 302

原创 Linux中同步控制

一、互斥锁 1、概念: 实现线程访问临界资源的同步控制。 如果一个线程在临界区开始时,给互斥锁加锁, 那么其他的线程就必须等待线程解锁, 才能接着运行, 并访问资源。 操作: ①初始化, ②加锁,③ 解锁,④ 销毁锁 2、互斥锁类型 : pthread_mutex_t 3、锁初始化: int pthread_mutex_init(pthread_mutex_t*mutex,pthre

2017-10-14 20:44:06 224

原创 Linux线程的使用

1、 概念 进程内部的一条执行序列。 进程内部至少有一条执行线程。 即就是 main函数的执行体。 进程内部可以有多条线程, main 函数的线程称之为主线程, 其他线程称之为函数线程。 函数线程是由主线程通过系统调用函数创建的。 2、 与进程的区别: ①进程是资源分配的最小单位, 线程是调度(执行) 的最小单位 ② 第七点 ③ 线程切换比进程切换消耗小 3、 线程的分类

2017-10-10 17:48:47 299

原创 欢迎使用CSDN-markdown编辑器

一、二叉树的建立1、建立结构体 typedef char ElemType; typedef struct BtNode //结构体 { BtNode *leftchild; BtNode *rightchild; ElemType data; }BtNode, *BinaryTree; 2、购买结点 BtNode * Buynode() {

2017-09-22 19:44:20 181

空空如也

空空如也

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

TA关注的人

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