Skip to content

Network Basics

Published: at 08:00 AM

Table of contents

Open Table of contents

理论

实践

wireshark

wireshark作为抓包的工具,帮助在troubleshot的时候回溯流程。但wireshark怎么用呢?

TCP/IP

除了3次握手连接和4次握手,还有protocol的各种参数外,还有个TCP 窗口拥塞算法,也是TCP/IP的重要组成部分.

MTU

在3次握手时,双方会告诉对方MSS,MSS加上TCP和IP的头部,就是MTU(Maximum Transmission Unit).

在传输大的网络包的时候,MTU是根据双方里最小的那个作为基准.

properties of TCP/IP

Seq: 如果收到的包乱序了,可以根据这个来排序和检查丢包,不一定从0开始计数,接收方回复的Ack号恰好就等于发送方的下一个Seq号,大体关系是:

TCP 窗口

网络传输的速度怎么加速?

每次传输更多的数据?TCP 窗口的定义就是传输过程中最多的数据量. 一旦超出了,就得等待ACK,然后再传输.

如何计算TCP窗口的大小?

        2 ^ windowsclae * winsize(in tcp header)

拥塞算法

导致网络拥塞的因素很多,并且动态变化,所以需要动态的算法来调整窗口的大小,来模拟当下的拥塞点,以达到最大的传输速度.

在每次都收到ACK后,可以2* MSS的速度来增加窗口的大小

往返 + 1 MSS

超时重传

超过一定时间(RTO),还没有收到ACK,就会重传.

之后的窗口大小:丢包总量的1/2

用wireshark里的expert info可以看到重传的包

快速重传

如果收到了>=3个的ACK,就会重传. >=3目的是避免因为乱序导致重传。

DNS

  dig @ip domain

  nslookup domain

socket server

Reference