20-TCP 协议(滑动窗口——基础)

相信大家都遇到过这样的场景: 同学 Luffy 给你打电话,让你记下一串手机号码,可是你记忆力不太好,你跟 Luffy 约定,一次只最多只能报 4 个数字,Luffy 念一遍,如果你听到了就把...
焦点IT 2018/03/31 533

19- TCP 协议(Nagle)

前面我们所用的 unp/protocol/tools/winclient/echo_cli.cpp 程序的特别之处是它总会发送一个小分组(TCP 段,只有 41 字节)到服务器。这样的小分组在英文中称...
焦点IT 2018/03/31 391

18-TCP 协议(迟到的 ACK—— Linux)

在上一篇文章中已经分析了 windows 在回复确认时的情况,在接收到 TCP 段的情况下,等待 200ms 再回复 ack,除非在这 200ms 里接收方也有数据要发给对方,于是就在发送数据的时候...
焦点IT 2018/03/31 544

17-TCP 协议(迟到的 ACK —— Windows )

1. 引言 我们知道,TCP 协议中,需要对接收到 TCP 段进行确认。有两种方式可以减少 TCP 报文段. 一种是累积确认,另一种是捎带确认。 累积确认 有时候,发送方发送速度非常快,接收...
焦点IT 2018/04/03 480

26-TCP 协议(慢启动与拥塞避免)

观察到上一个实验中的慢启动的现象后,接下来我们就详细讲讲到底是怎么一回事。 1. 慢启动算法 对于发送方来说,TCP 维护了一个变量 cwnd (congestion window),这个变量...
焦点IT 2018/03/31 660

32-网络编程概述

1. 预备知识 从网络编程开始(基于 socket 套接字的编程),我们要用到很多很多在Linux 环境编程中学到的知识,比较典型的就是信号处理,多进程,多线程这些知识。如果你对这些东西感觉还是很模...
焦点IT 2018/04/02 424

25-TCP 协议(慢启动——观察)

在上一节,我们已经介绍了网络拥塞以及常用的拥塞控制算法,另外,我们还简单的讲述了如何试探性的去探测网络有没有拥塞。实际上,慢启动算法也是这样做的,只是比这个稍稍复杂一点。 在讲慢启动算法之前, 我们...
焦点IT 2018/03/31 650

24-TCP 协议(拥塞控制)

1.概述 在学习拥塞控制前,我们假设:接收方总是有足够大的缓存空间,接收方的接收窗口大小总是很大——这意味着接收方对数据来者不拒。 在基于这样的理想条件上,如果发送方发送的数据接收方没有收到,那么...
焦点IT 2018/03/31 440

22-TCP 协议(PSH 标志)

1. PSH 标志位 从你第一次抓包以来,PSH 标志位几乎与你形影不离。它的英文单词是 PUSH,表示“推”的意思。 1.1 接收缓冲区和发送缓冲区 在谈 PSH 标志位前,先来说说 TC...
焦点IT 2018/03/31 433

31-TCP 协议(保活定时器)

1. Keep Alive TCP 保活定时器,Keep Alive,特别强调一下,不是 HTTP 协议里的那个 Keep Alive. 在 HTTP 中,keep alive 是在应用层实现的,...
焦点IT 2018/03/31 560

友情链接