- 博客(17)
- 资源 (6)
- 收藏
- 关注
原创 tcp头部分析
tcp头部如下图依次是源端口号:16位目标端口号:16位seq号:32位ack号:32位首部长度:4位,最大值为15。单位为4字节,即首部最大长度为60字节.保留字段:4位标志位: CWR:Congestion Window Reduced (the sender reduced its sending rate) ECE:ECN Echo (the sender received an earlier congestion notification) URG:U...
2020-05-12 18:35:52 851
原创 完全背包问题-leetcode-08.11. 硬币
问题描述https://leetcode-cn.com/problems/coin-lcci/面试题 08.11. 硬币硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)等价背包。给定数量物品,物品体积为25、10、5和1,编写代码背包体积为n,装物品的方法有多少种。(结果可能会很大,你...
2020-05-04 14:14:19 284
原创 01背包问题
问题描述https://www.lintcode.com/problem/backpack-ii/description125.背包问题 II有n个物品和一个大小为m的背包. 给定数组A表示每个物品的大小和数组V表示每个物品的价值.问最多能装入背包的总价值是多大?关键点:1.定义dp数组,dp[i][j]表示前i个物品,在背包大小为j的情况下的最大价值,dp[...
2020-05-02 19:24:34 302
原创 wireshark之tcptrace
wireshark的tcptrace图非常强大, 也有些复杂。 本文简单记录下每条线的意义, 方便以后查找。参考http://packetbomb.com/understanding-the-tcptrace-time-sequence-graph-in-wireshark/第一个图是bbr没有丢包,没有乱序的简单图。 最上面绿色图是发送的一个上限,即对端的接收窗口+当前的发送序列号,...
2019-12-09 11:05:54 3825
原创 mysql密码策略修改(password does not satisfy the current policy requirements)
1.查看当前策略.SHOW VARIABLES LIKE 'validate_password%';2.修改策略等级改为最低:set global validate_password_policy=LOW;长度改为6:set global validate_password_length=6;...
2019-05-03 10:59:25 741
原创 mysql安装
二进制安装Installing MySQL on Unix/Linux Using Generic Binaries1.下载wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz2.解压并移动到目标目录tar -zxfmysql-5.7.26-li...
2019-04-29 18:58:29 108
原创 tcp拥塞分析八(HTCP)
本文分析linux-4.19.12代码的htcp拥塞算法与reno拥塞算法不同处,慢启动超过阈值ssthresh的ack直接忽略了;拥塞避免阶段多了个参数ca->alpha. 开始ca->alpha=1<<7,与标准的reno增长速度一样; 拥塞乘性减窗口时候不是固定beta不是固定的0.5static void htcp_cong_avoid(struct sock...
2019-04-13 22:32:35 1899
原创 tcp拥塞分析七(scalble)
本文分析linux-4.19.12代码的scalble拥塞算法hstcp相对reno算法,通过两个固定的值TCP_SCALABLE_AI_CNT和TCP_SCALABLE_MD_SCALE改变了拥塞避免阶段窗口增长速度,以及丢包后ssthresh的设置./* These factors derived from the recommended values in the aer: * ...
2019-03-27 14:30:29 335
原创 tcp拥塞分析六(HSTCP)
本文分析linux-4.19.12代码的hstcp拥塞算法hstcp相对reno算法,通过一个与发送窗口相关的固定数组hstcp_aimd_vals,改变了拥塞避免阶段窗口增长逻辑,以及丢包后ssthresh的设置.也就是改了AIMD (Additive Increase Multiplicative Decrease)的发送窗口.根据当前发送窗口snd_cwnd,找到数组位置i满足hst...
2019-03-27 11:59:26 623
原创 tcp拥塞算法分析五(vegas)
本文分析linux-4.14.69代码的vegas拥塞算法传统的基于丢包的拥塞算法(例如cubic,reno)都是(填满网络直到)有丢包了就认为出现拥塞.vegas会根据rtt来计算网络吞吐量和当前实际传输量,来判断是否出现拥塞.关键变量介绍/* Vegas variables */struct vegas { u32 beg_snd_nxt; /* right edge dur...
2019-03-17 23:19:40 4464 3
原创 tcp拥塞算法分析四(bbr)
本文分析linux-4.14.69代码的bbr拥塞算法bbr算是一个完全独立的拥塞算法,具有自己的拥塞状态机.tcp_cong_control函数已经被bbr_main函数接管了.()/* The "ultimate" congestion control function that aims to replace the rigid * cwnd increase and decre...
2019-03-14 10:38:50 3143 2
翻译 BBR: Congestion-based congestion control
BBR: 基于拥塞的拥塞控制关键术语RTT: round-trip-timeRTprop: round-trip propagation timeBtlBw: bottleneck bandwidth。 路径上最小带宽。data in flight: data sent but not yet acknowledgedBDP: bandwidth-delay product...
2019-03-08 20:01:38 2554
翻译 (翻译)tcp滑动窗口数据传输和确认机制
英文原文参考http://www.tcpipguide.com/free/t_TCPSlidingWindowDataTransferandAcknowledgementMech-2.htmtcp客户端和服务端会根据三个指针划分的四个类别来跟踪发送和接收流.发送未确认(snd.una):第一个发送但没有收到ack的序列号.即下图中category#2中标记的第一个字符.其前面的序列号都在c...
2019-03-08 15:46:52 477
原创 tcp拥塞算法分析三(cubic)
本文分析linux-4.14.69代码的cubic拥塞算法,参考论文 “CUBIC: A New TCP-Friendly High-Speed TCP Variant"传统的拥塞算法(TCP-Reno, TCP-NewReno and TCP-SACK)在BDP(bandwidth and delay product)很大的情况下,窗口增加的很慢.各种各样的"high-speed"算法(例如...
2019-02-28 12:10:59 6738
原创 tcp拥塞算法分析二(bic)
本文分析linux-4.14.69代码的bic拥塞算法首先回顾下基础的慢启动和拥塞避免函数,慢启动阶段(tcp_slow_start)更新窗口的速度是加acked,acked就是这个ack包对应确认的包个数;拥塞避免阶段(tcp_cong_avoid_ai)更新窗口的速度是加acked/w, w一般情况下就是当前的窗口大小.(在bic中,相当与一个权重,bic会根据当前窗口到最大窗口的差距动态...
2019-02-21 22:30:18 1913
原创 tcp拥塞算法分析一(拥塞避免和慢启动)
最近需要研究tcp拥塞算法,决定通过写博客的方式加深理解.这是第一篇,记录下拥塞避免和慢启动算法拥塞避免阶段:以1/cwnd的速度增长.即每次收到一个ack(如果每个包都对应一个ack,不考虑延迟ack等复杂情况),就会将snd_cwnd_cnt加1,如果snd_cwnd_cnt超过了当前窗口大小,就会将发送窗口加1,snd_cwnd_cnt重新重置为0.其中snd_cwnd_cnt就是用来统...
2019-02-16 01:20:51 1101
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人