![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 网络
qq_41163331
这个作者很懒,什么都没留下…
展开
-
虚拟机访问外部网络的方式
本文章主要是讲述虚拟机访问外部网络的方式原创 2022-12-13 16:56:22 · 3396 阅读 · 1 评论 -
差错报文的类型
icmp差错报文的类型原创 2022-12-01 10:20:18 · 200 阅读 · 0 评论 -
proc 目录下的/proc/net/route文件解析
转载 2020-04-28 15:31:03 · 2120 阅读 · 0 评论 -
客户端收到客户端的异常rst包,再次调用send会返回失败吗?
最近在项目中遇到这样的一个问题,客户端收到一个rst包之后(在网卡上抓包),收到包之后客户端继续发送消息(send 是异步的)没有返回失败,甚是疑惑啊,最后查看包发现收到的rst包的seq和之前收到的包的seq一样,并且中间有数据收发,如下图所示起初以为即使rst包的seq和之前的重复,协议栈也应该正常处理,但是经过如下方式的验证:伪造异常seq的rst包给客户端1, 写一个客户端和服务...原创 2019-05-24 17:06:30 · 995 阅读 · 0 评论 -
close socket 后,发送rst包的场景
前几天解决了一个很棘手的问题:从抓包来看,客户端收到了rst包,但是我的应用程序无响应的问题,在解决这个问题的过程中,我详细了解了为啥服务端调用close的时候,客户端收到的都不是正常的socket的关闭流程(先发FIN包),而是发送一个rst包给客户端,通过查阅各种资料,发现原来是这样的:当程序调用close关闭socket的时候,如果发送缓冲区中仍然有数据的话,协议栈会发送RST包代替FIN...原创 2019-05-31 10:18:07 · 1711 阅读 · 3 评论 -
水平触发与边缘触发
今天开始封装c的socket的基础,在封装的时候意识到这样一个问题,如果我现在fd的接收缓冲区中有2048字节的数据,但是我只读出来1024个字节的数据,当我下次select的时候(这之间没有网络数据过来), 还会检测到该select可读吗?这样就引申出来水Linux的IO多路复用中的水平触发模式和边缘触发模式,那么什么是水平触发模式,什么是边缘触发模式呢?水平触发模式:如果文件描述符已经就绪可...原创 2019-05-29 17:08:47 · 269 阅读 · 0 评论 -
如何更改socket的发送缓冲去,以及更改socket的发送缓冲区出现的问题
本来是想看看当发送缓冲区快满的时候,继续发包的话,滑动窗口是怎样,就写了一个测试的demo,测试了很多次感觉设置的发送缓冲去大小不生效似的,最后发现不是真的不生效,而是这样的一个结论:在Linux系统中,不管你设置的发送缓冲去是多少,只要是你设置的小于8192,即使你通过接口拿到的缓冲区是你设置的值*2,这个fd的发送缓冲去仍然就是16384测试demo如下#include <sys/...原创 2019-06-26 20:22:29 · 940 阅读 · 1 评论 -
telnet ping ipv6问题分析
项目上开始支持ipv6的网络,但是环境比较难整,今天捣鼓了半天ipv6的测试环境, 测试环境的网络拓扑如下所示:s机器的网卡的ipv6的地址:fe80::20c:29ff:fe92:47a9A机器的IPV6的地址:fe80::1e67:58ff:fe0b:481eB机器的ipv6的地址:fe80::c18a:3fe2:c205:5dc8我用A机器的wan口ping B机器的wan口的ip...原创 2019-09-03 20:03:31 · 5625 阅读 · 0 评论