随笔分类 -  网络

就是各种协议了
摘要:struct sock sock->sk_receive_queue 协议栈负责把数据放到sk_receive_queue中,进程通过recvmsg_from去从协议栈中读数据, 在sk_receive_queue中的都是一个完整的从用户发过来的skb数据包了,里面有完整的tcp的控制信息位于:tc 阅读全文
posted @ 2018-05-12 18:32 honpey 阅读(158) 评论(0) 推荐(0)
摘要:巴达努斯 阅读全文
posted @ 2018-05-02 21:21 honpey 阅读(165) 评论(0) 推荐(0)
摘要:1)为啥docker是不安全的,虚机就是安全的? 几种linux(unix)攻击方法:缓冲区溢出,理论上你可以执行地址空间上的任何代码,虚机是把整个地址空间做了隔离,所以即便是受到了缓冲区溢出的攻击,不会影响到宿主机;但是docker是共享内核的,如果内核有bug,被攻击了,就可能让其他容器受到影响 阅读全文
posted @ 2018-04-09 22:43 honpey 阅读(97) 评论(0) 推荐(0)
摘要:网卡的包是怎么处理的? 在一个CPU上收包,然后多个CPU负责收包 我的机器上的网卡中断都绑定在了CPU1上,注意是: 查看中断号: cat /proc/interrupts /proc/irq/<中断号>/smp_affinity /proc/irq/<中断号>/smp_affinity_list 阅读全文
posted @ 2018-04-09 22:42 honpey 阅读(544) 评论(0) 推荐(0)
摘要:三次握手协议:三次握手协议的主要过程是交互彼此之间的初始序列号,如果没有确认的ACK帧可以么?肯定是可以的 client A > server B client A 发送了自己的初始序列号;然后B看见了之后B发送了一个初始序列号,这样两次“握手”都可以啊。但是两次握手的问题是:此时A开始发送信息,B 阅读全文
posted @ 2018-03-31 23:33 honpey 阅读(157) 评论(0) 推荐(0)
摘要:一直感觉一端发送数据,另一端接受数据很不可思议的事情,如果不能即时地读走会导致什么后果呢? 其实socket读出来的数据,你自己看着办,里面的数据是什么格式你自己去解析,用户可以基于TCP去实现你自己的协议【其实等价于客户基于IP协议去实现自己的传输层协议】,所以可以想想用户是怎么实现http协议的 阅读全文
posted @ 2018-03-31 21:25 honpey 阅读(104) 评论(0) 推荐(0)
摘要:从UDP开始看吧,udp_rcv时,数据包已经经过了驱动,网络层的层层过滤来到了传输层,在这里还是要经过层层的考验才会进入到最终socket 重要数据结构:udp_table: 67 /** 68 * struct udp_table - UDP table 69 * 套接字都是本地创建的 70 * 阅读全文
posted @ 2018-03-29 23:55 honpey 阅读(487) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/bytxl/article/details/45397967 网络抓包的原理解析,在看网络收包的代码时,有个关键的结构体叫packet_type,这个结构体就是网络收包时对包的各种乱七八糟的操作函数的链表,这篇文章解析了该函数。 https://blog. 阅读全文
posted @ 2018-03-28 08:42 honpey 阅读(541) 评论(0) 推荐(0)
摘要:真正看网络收包了 netif_receive_skb 疑问1:当一个网卡收到了包之后,使用wireshark还是能抓到数据包的,但是没有回应; 阅读全文
posted @ 2018-03-27 23:14 honpey 阅读(147) 评论(0) 推荐(0)
摘要:http协议中到底都会传输我电脑上的啥东西呢?主机名,账号密码? 没有主机名,有你这台主机的操作系统。。。也就是说他们会知道你的操作系统。。。。。 阅读全文
posted @ 2018-03-24 11:10 honpey 阅读(373) 评论(0) 推荐(0)
摘要:在做网络试验中发现,抓包是超级有用的一个工具,抓到了包我就知道了数据流,就可以解析数据,看网络的流量是不是按照所假定的那种方式去走的,所以今天就看看通常情况下网络抓包的原理。 网络抓包包括 tcpdump官网 http://www.tcpdump.org/ pcap_setfilter 调用了啥函数 阅读全文
posted @ 2018-03-21 23:35 honpey 阅读(888) 评论(0) 推荐(0)
摘要:docker有容器内外的端口映射,是怎么做到的呢?这是要起一个新的网络的namespace吧; 启动了docker之后,在docker上面还是有确实是有iptables的项,但是此时应该是有两个网络的namespace吧,使用ip netns list是没有看到的,也就是说其实是在一个网络的name 阅读全文
posted @ 2018-03-21 23:35 honpey 阅读(2323) 评论(0) 推荐(0)
摘要:我的工作机是A,通信网卡是Aeth0, Appp0; 然后我的云主机是B, 通信的网卡是Beth0, Bppp0; 在网卡Bppp0上会不断地很清晰的数据包: 16:40:39.522917 IP 61.135.169.121 > 192.168.0.234: ICMP echo reply, id 阅读全文
posted @ 2018-03-18 18:50 honpey 阅读(2897) 评论(0) 推荐(0)
摘要:这些地方的准确翻译是hook点(hook点是一个土的说法,学名叫rule chain,规则链)这些规则链是内核netfilter架构布置在内核里面的,然后iptables是利用了这套基础架构,想起了内核里的ftrace基础架构; iptables利用了netfilter提供的基础设施,netfilt 阅读全文
posted @ 2018-02-25 15:41 honpey 阅读(612) 评论(0) 推荐(0)
摘要:nf_register_hooks是什么 net->netns_nf->nf_hook_entry[NFPROTO_NUMPROTO][NF_MAX_HOOKS=8] (nf) (hooks) NFPROTO_IPV4=2; NFPROTO_ARP=3; NFPROTO_IPV6=10; 也就是说在 阅读全文
posted @ 2018-02-24 23:37 honpey 阅读(1254) 评论(0) 推荐(0)
摘要:所以说,总共有五个矛点:PRE_ROUTING/LOCAL_IN/FORWARDING/LOCAL_OUT/POST_ROUTING local_in是路由后发现本地数据包,在路由之后做处理; local_out是路由之后,要朝外走,是路由之前做处理; 设置函数:nf_nat_setup_info 阅读全文
posted @ 2018-02-20 12:23 honpey 阅读(687) 评论(0) 推荐(0)
摘要:在IP层发送数据包的时候, 阅读全文
posted @ 2018-02-19 22:52 honpey 阅读(106) 评论(0) 推荐(0)
摘要:看下docker中是怎么配置的网络 在虚机中访问外网:设定了qemu,在主机上添加路由:sudo iptables -t nat -I POSTROUTING -s 192.168.1.110 -j SNAT --to-source 192.168.0.108 设置了这句话就可以访问外网了。 设置了 阅读全文
posted @ 2018-02-19 19:01 honpey 阅读(925) 评论(0) 推荐(0)
摘要:arp已经应答了,然后再返回ICMP应答的时候竟然不被回复。 其实这里想想也很容易想清楚: 虽然arp给了回复,但是真正到ICMP报文到的时候,我理解报文到的时候,我理解还是要进行与本地网络兑换的,本质上也还是要对比局域网的,但是到底在哪里比较的呢? 仍然开始使用伟大的systemtap [] 阅读全文
posted @ 2018-02-16 08:19 honpey 阅读(472) 评论(0) 推荐(0)
摘要:2019/01/13 今天测试发现结果不符合预期呀,发现设置了arp_filter之后,仍然是能ping通主机上的另外一张网卡.但是现在的问题是 内核中是如何确定arp_ignore和rp_filter的值的? 然后呢 落实到文档中就是: 代码与文档匹配: 所以在做关于arp的试验之前,要先把机器上 阅读全文
posted @ 2018-02-14 01:49 honpey 阅读(1157) 评论(0) 推荐(0)