稀酷客

 找回密码
 加入稀酷客

只需一步,快速开始

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1256|回复: 0

[电子资料] 《深入浅出Linux TCP IP协议栈》.(罗钰).[PDF]@ckook

[复制链接]

878

主题

879

帖子

1756

积分

金牌会员

Rank: 6Rank: 6

积分
1756
发表于 2018-2-9 10:48:27 | 显示全部楼层 |阅读模式
《深入浅出Linux TCP IP协议栈》.(罗钰).[PDF]@ckook 网络通讯
本书主要对linux 2.6.18内核协议栈源代码做了一些基本的分析,这些分析基于作者在操作系统方面的研究和网络协议开发过程中的经验和笔记,编写本书的目的主要是使读者能够在尽可能短的时间内掌握linux内核协议栈的工作机理,为移植和扩展协议栈打下基础。
本书首先介绍了内核源码的整体概况及协议栈初始化过程,然后结合配置、用户使用协议栈的方法,采取深入浅出、由上及下的策略对协议栈的代码进行了分解和注释。最后还介绍了通信界里较流行的vlan技术和lacp协议。
本书适合linux网络开发人员以及对linux内核感兴趣的读者阅读。
作译者
罗钰:贵州人,国防科学技术大学硕士毕业,多年Linux底层开发经验,精通软件分析与设计、TCP/IP协议,曾开发Windows/Linux/Vxworks/FreeBSD等平台的设备驱动,开发过以太网芯片驱动、二层协议以及OSPF路由协议,对MPLS架构设计有非常丰富的经验,擅长编译器、CPU技术,近年来一直致力于无线网络产品系统的分析与设计工作。

目录
第1章 操作系统、网络、协议栈、代码 1
1.1 linux操作系统介绍 2
1.1.1 linux操作系统架构简介 2
1.1.2 网络协议发展介绍 3
1.2 本书的组织和安排 7
1.2.1 基本的数据结构和计算机术语 8
1.2.2 图片风格演示 10
1.2.3 本书的组织 11
第2章 内核系统初始化 14
2.1 系统初始化流程简介 15
2.2 内核文件解读 19
2.2.1 elf文件格式 19
2.2.2 link scripts知识 22
2.2.3 linux内核镜像解析 23
2.3 中断及任务调度管理 32
2.3.1 中断及软中断模型 32
2.3.2 各种语境下的切换 43
2.3.3 内核下的同步与互斥 44
2.3.4 各种异步手段 47
2.4 虚拟文件系统 49
2.5 网络协议栈各部分初始化 52
2.5.1 网络基础系统初始化 53
2.5.2 网络内存管理 54
2.5.3 网络文件系统初始化 63
2.5.4 网络协议初始化 65
2.5.5 初步了解路由系统 74
2.6 linux设备管理 75
2.6.1 底层pci模块的初始化 78
2.6.2 网络设备接口初始化例程 80
第3章 配置网络系统 92
3.1 配置过程分析 93
3.1.1 配置是如何下达到内核的? 93
3.1.2 socket系统调用 95
3.1.3 ioctl代码的实现 104
3.1.4 loopback接口的配置过程 113
3.1.5 ip别名的实现 115
3.2 回顾fib系统初始化 119
3.3 深入fib系统 122
3.4 fib系统发生了什么样的变化 132
3.5 直接访问路由表 149
3.6 接口状态变化的处理过程 151
第4章 网络层实现的初步研究 154
4.1 从ping 127.0.0.1开始旅程 155
4.2 再次相遇socket系统调用 157
4.3 ip数据报文格式 158
4.4 send系统调用 159
4.5 在路由系统中游历 164
4.5.1 查找出口 164
4.5.2 当目的地址是远端主机时 177
4.5.3 创建对应路由cache表项 180
4.5.4 创建对应邻居表项 184
4.6 回到发送的路径 189
4.6.1 ip层发送过程 189
4.6.2 揭密hh_cache 193
4.7 arp的作用 202
4.7.1 arp的机制 202
4.7.2 arp报文格式 203
4.7.3 linux arp协议的实现 204
4.8 到达设备驱动层 219
4.8.1 数据链路层帧格式 219
4.8.2 loopback设备的发送过程 224
4.9 接收过程:从中断到路由系统 225
4.10 icmp 240
4.10.1 icmp报文格式 241
4.10.2 ping本机地址及回环地址 242
4.10.3 ping外部地址 243
4.11 从内核到用户 249
第5章 传输层实现的研究 253
5.1 进一步到udp 254
5.1.1 udp用户代码 254
5.1.2 udp数据报文格式 255
5.1.3 服务器端bind的实现 255
5.1.4 接收代码 261
5.1.5 释放udp的socket 264
5.2 更高阶的tcp 266
5.2.1 tcp用户代码 266
5.2.2 tcp数据报文格式 266
5.2.3 tcp栈及socket的初始化 268
5.2.4 服务器端bind和listen的实现 271
5.2.5 服务器端accept的实现 276
5.2.6 客户端connect的实现——发起三次握手 278
5.2.7 tcp报文的接收 286
5.2.8 三次握手的实现 291
5.2.9 内核收到报文转到用户态 295
5.2.10 释放tcp的socket 300
5.3 tcp拥塞控制 303
5.3.1 tcp拥塞控制机制介绍 305
5.3.2 linux内核拥塞控制功能的实现 307
第6章 select系统调用的实现机制 310
6.1 如何使用select 312
6.2 select的内核实现 313
第7章 数据链路层协议实现 318
7.1 基本的2层知识 319
7.2 linux桥实现的基本框架 320
7.3 vlan 321
7.3.1 vlan概念 321
7.3.2 linux下vlan——存在巨大的缺陷 323
7.4 lacp协议 330
7.4.1 聚合端口简介 330
7.4.2 lacp在linux中的实现 333
7.5 2层功能总结 339
后记 341
参考文献 342

立即下载( 3343.zip ) 百度网盘

解压密码:已隐藏见下(↓)

二维码

【拿出手机】->【解锁】->【打开微信】->【扫描左侧<-的二维码】->【关注稀酷客的微信】->【发送帖子的tid号】->【获得密匙】->【将密匙填到下面的框框中】->【提交】->【免币查看隐藏内容】  如何下载?(图文教程)    如何获取酷币?    如有问题联系莎莎私人微信:ickook

该帖tid为: 3343   或者支付2酷币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入稀酷客   

本版积分规则

QQ|Archiver|手机版|小黑屋|稀酷客 ( 冀ICP备14004526号-1 )

GMT+8, 2018-10-17 15:36 , Processed in 1.117225 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表