Wireshark(总结)

偏执造就悲剧

By Mac小兔

4号和10号用两天时间把这个半拇指厚的《Wireshark网络分析就这么简单》书,认真学了一遍,对wireshark有了基本的认识,并且能够对基本问题进行基本的分析。

要说通过一次学习掌握的程度能达到百分之六七十以上已经相当不错了。好在自己在本科阶段积累的网络基础知识,现在派上了用场,学习过程的速度明显加快了许多,晦涩难懂的地方也较少。

同时,也再次驳倒了一批人认为学校接触的知识在社会无用武之地的说法。

因为自己非过目不忘型,因此,需要将书中一些知识要点总结并记录下来,以便日后再次复习使用,加强记忆。

  1. 跨子网通信需要默认网关的转发,而和默认网关通信,就需要获得其MAC地址;

  2. 在执行ARP(地址解析协议)的时候,如果A和B不在同一个子网,那么A发出的ARP广播请求,B收到请求之后,会直接回复,而不考虑子网问题;

  3. 常用网络配置信息的命令

    • ifconfig | egrep “HWaddr|inet addr” #查看网络配置信息
    • route | egrep "Dest|**.**" #路由查询
  4. 常用的过滤方式(Filter栏)

    • 协议名称;
    • ip地址加port号,最常用的过滤方式。过滤表达式:ip addr eq && tcp.port eq <端口号>
    • 还可以右键单击感兴趣的包,选择Follow TCP/UDP Stream,即可自动过滤
  5. NFS(网络上的文件系统)—NFS协议是SUN公司设计

  6. portmap

    • 维护一张进程与端口号的对应关系表;
    • 端口号111,一般众所周知
    • 在linux centos6.0以上版本程序已经更名为rpcbind
  7. rpcinfo获得服务器上的端口列表

  8. NFS对客户端的访问控制是通过IP地址实现的

  9. 用户与UID的对应关系由客户端的/etc/passwd,NFS只认UID不认用户名

  10. 判断一个写操作的包是async还是sync的方法

    WRITE Call上的UNSTABLEFILE_SYNC标志分别代表asyncsync

  11. 在mount时,可以使用wsize参数来指定每次应该写多少,但在某些客户端上启用sync参数之后,无论wsize定义成多少都会被强制为4KB

  12. 如果mount时,使用了noac 参数,那么读写性能会受影响

    • noac 参数:让客户端不缓存文件属性
    • 如果也没有指定sync参数,那么noac会把写操作强制变成sync方式
  13. 发包的大小是有MTU较小的一方决定的

  14. 发送方的发送窗口是受接收方的接收窗口和网络影响的,接收方只要在包里使用Win=即可告知发送方其窗口大小

  15. 拥塞点:导致网络拥塞的数据量

  16. 拥塞点的一个较靠谱的确定策略:在发送放维护一个虚拟的拥塞窗口,并利用算法使它尽可能接近真实的拥塞点。

  17. RTO:从发出原始包到重传该包的时间。某些操作系统提供了调节RTO大小的参数

  18. 重传之后拥塞窗口是否需要调整?RFC建议把拥塞窗口降到1个MSS,然后再次进入慢启动过程

  19. RFC 一系列以编号排定的文件,文件收集了有关互联网相关的信息

  20. 即便万分之一的重传对性能的影响都很大

  21. 超时重传对性能影响最大,因为它有一段时间(RTO)没有传输任何数据,而且拥塞窗口会被设成1个MSS,所以要尽量避免超市重传。

  22. 丢包对极小文件的影响比大文件严重,因为读写一个小文件需要的包数很少,所以丢包时往往凑不满3个Dup Ack,只能等待超时重传了。

  23. Nagle算法原理

    在发出去的数据还没有被确认之前,假如又有小数据生成,那就把小数据收集起来,凑满一个MSS或等收到确认后再发送。

  24. Westwood算法原理

    先推算出有多少包已经被送达接收方,从而更精确的估算发生拥塞时的带宽,最后再依据带宽来确定新的拥塞窗口。

  25. Vegas算法原理

    通过监控网络状态来调整发包速度,从而实现真正的拥塞避免

    当网络状况良好时,数据包的RTT(往返时间)比较稳定,这时可以增大拥塞窗口;

    当网络开始繁忙时,数据包开始排队,RTT就会变大,这时需要减小拥塞窗口。

    优势:在拥塞真正发生之前,发送发已经能通过RTT预测到,并通过减缓发送速度来避免丢包。

  26. Windows操作系统中Compound算法同时维持两个拥塞窗口。Windows7上该算法是默认关闭的。

    启用方法:netsh interface tcp set global congestionprovider=ctcp

    关闭方法:netsh interface tcp set global congestionprovider=none

  27. 每个包里都有More fragments的flag。1表示后续还有分片,0表示这是最后一个分片可以组装了。

  28. NFS:理论上试用于任何操作系统,但只在Linux/Unix上流行

  29. Windows共享协议:SMB协议(由微软维护),也叫Common Internet File System(CIFS)。其中有三个版本—SMB、SMB2和SMB3

  30. Windows的Backup Operators组中的用户备份和读操作时,通过包区分的方法:备份的时候在Create请求中Backup Intent为1,读的时候为0

  31. 多个用户访问同一个文件的情况

    • CIFS采用了Oplock(机会锁)
    • OplockExclusive(允许读写缓存) Batch(允许所有操作缓存) Level2(只允许读缓存)
  32. 利用Windows Explorer从CIFS共享上复制文件会比较慢,因为Windows Explorer是逐个复制的(单线程),使用某些工具可能同时复制多个文件(多线程)

  33. SMB3提出了一个叫BranchCache的机制来解决多用户访问同一个文件,但相同内容需要在有限带宽中传输多次的问题。

  34. DNS

    • 用域账号登录操作系统,是依靠DNS找到Domain Controller来验证身份。
    • Domain Controller(域控制器,控制网络上的计算机能否加入的计算机组合)
    • A记录:从域名解析到IP地址
    • PTR记录:与A记录相反,从IP地址解析到域名
    • SRV记录:指向域里资源
    • CNAME记录:称为Alias记录,即别名的意思
    • 递归查询和迭代查询
    • 工作方式
      • 假如有两个同名的A记录,分别对应着两个不同的ip,那么进行多次解析域名时,返回的IP地址是一样的,但每次顺序都是相反的,这是DNS循环工作模式,此特性可以广泛应用于负载均衡
  35. FTP

    客户端连接FTP服务器端口21是为了传输控制信息,称之为控制链接
    当需要传输数据时,重新建立一个TCP连接,称之为数据连接

  36. 三次握手是由服务器端主动发起,称之为主动模式,可以更改主动模式为被动模式,在相应工具中进行设置即可

  37. 云存储一般使用对象存储的方式

  38. NLMNetwork Lock Manager的简称,客户端用它来锁定服务器上的文件,从而避免和其他客户端发生访问冲突,一般都是由客户端查询服务器的NLM端口

Link.