免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach

[实践] 【好书来袭,参与讨论有礼】那些年,hack 过的网络问题 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-30 17:12 |显示全部楼层
回复 10# GFree_Wind

是别人修订的。增加了一些新的网络内容,好像什么 NAT,ipv6 啥的。


   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-30 17:19 |显示全部楼层
另外一个区别,第二版讲的是linux实现的行为,第一版是bsd实现的行为。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-30 17:49 |显示全部楼层
回复 12# nswcfd

卷 1 是协议。具体说实现的应该不是很多。

BTW,第二版现在只是英文版,我买来只是简单翻了翻。还发现一个错误,给作者发了邮件,没有任何回应。

   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-30 18:03 |显示全部楼层
不好意思,没表达清楚。

tcp/ip illustrated/v1的最大特点是结合实验(大量的使用了tcpdump和socket程序)来讲解协议,第一版是在bsd平台上做的实验,第二版是在linux平台上做的。
由于平台不同,某些细节上还是有差异的。比如对listen(2)的backlog参数的解释。

有一次看人家问了个tcp/ip illustrated的问题,直接就在v1里摘了一段话作为答复,后来仔细一看,人家是针对v2问的,真是囧死了……

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 赞一个!

查看全部评分

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-30 18:05 |显示全部楼层
PS,第二版应该只有v1协议部分吧?有v2实现部分么?如果有,应该是讲linux实现的?

论坛徽章:
0
发表于 2015-07-30 20:37 |显示全部楼层
本帖最后由 pywj777 于 2015-07-30 20:38 编辑

介绍一些我学习Linux网络协议栈的一些经验吧。

在学习Linux网络协议栈代码时,经常一头就扎进代码细节中,总是想搞清楚每一行代码的含义和细节。但是最终浪费了很多时间和精力。
通过这么多年在kernel 协议栈中的开发,分享一些学习方法供大家参考:
1. 一定要深入了解网络协议,推荐《TCP/IP详解》卷一,就像GFree_Wind说的,至少看3遍。
2. 看整个协议栈流程代码之前,先搞懂SKB的整体架构和接口。
3. 看协议栈流程时,不要过多的关注代码细节,先将整个框架流程了解清楚。
   3.1 如果一个函数接口名就已经能够说明这个函数要做的事情,那么就不用深入进去看实现了。
   3.2 有些修改skb状态的函数还是需要仔细看一下的。
   3.3 最好能够画出整个框架流程图,便于记忆。
4. 根据自己的需要了解相应协议或业务的实现细节,很多细节只有通过修改、测试、增加新功能才能真正的了解清楚。
5. 在了解协议栈实现细节时,推荐看一下《深入理解Linux网络内幕》
这样随着时间的推移,了解的协议越来越多,就会在脑海中形成整个网络协议栈的架构,和各个协议的细节。

评分

参与人数 1可用积分 +10 收起 理由
Godbach + 10 赞一个!

查看全部评分

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
发表于 2015-07-30 22:13 |显示全部楼层
参与一下:
1. 曾经解决的比较头疼的网络问题有哪些?
   曾经解决的比较头疼的网络问题比如:
   内网丢包问题:
        之前用rsync做备份,由于数据量大,而当时没考虑带宽问题,结果发现,每天到有些业务经常性卡顿,写个脚本测试,发现卡顿时候内网丢包,检查网络设备没有发现异常,查看监控发现流量很大,基本把内网口跑满,最后检查发现是备份导致的,最后使用rsync自带的限速功能备份,解决问题,此问题折腾了1个星期,主要是问题不明显,发现不及时,另外开始都是在网络设备层找问题,最后发现和网络设备一点关系都没有。
2. 曾经是否深入研究过网络功能或者工具,甚至直接从应用层代码杀到内核态?
    这个不能说深入到内核层,之前发现我们有个业务nginx上堆积的连接数特别多,检查日志发现连接没有异常,但是从日志访问量去计算,不应该出现这么多连接,所以一直怀疑有人攻击,但是也没能发现有什么异常的攻击日志和行为,服务器上有一些sync_recv状态的连接,但是也不多,非常头疼,开始研究tcp协议的三次握手,使用tcpdump抓包分析,都没有发现特别异常的地方,最后去查看nginx的配置和官方的手册,最后发现了一个很容易疏忽的地方导致的,我们在nginx上启用了长连接,tcp_timeout时间设置为300秒,但实际上服务大多数都是短链接,将超时时间设置为5秒后,服务器的nginx同时在线连接数从20K迅速减少到2K。

评分

参与人数 1可用积分 +10 收起 理由
Godbach + 10 经验之谈,赞一个!

查看全部评分

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
发表于 2015-07-30 23:21 |显示全部楼层
pywj777 发表于 2015-07-30 20:37
介绍一些我学习Linux网络协议栈的一些经验吧。

在学习Linux网络协议栈代码时,经常一头就扎进代码细节中 ...


赞同在开始看内核代码之前,把linux skb buff弄清楚,这是基础。

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
发表于 2015-07-31 09:20 |显示全部楼层
这个话题不太懂,纯支持了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-31 09:48 |显示全部楼层
回复 14# nswcfd

看来 nswcfd 兄对 v2 研究的也不少了,欢迎分享一下 v2 的一些知识点。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP