深⼊浅出LinuxTCPIP协议栈,深⼊浅出LinuxTCPIP协议栈
《深⼊浅出LinuxTCP/IP协议栈》主要对Linux2.6.18内核协议栈源代码做了⼀些基本的分析,这些分析基于作者在操作系统⽅⾯的研究和⽹络协议开发过程中的经验和笔记,编写《深⼊浅出LinuxTCP/IP协议栈》的⽬的主要是使读者能够在尽可能短的时间内掌握Linux内核协议栈的⼯作机理,为移植和扩展协议栈打下基础。
《深⼊浅出LinuxTCP/IP协议栈》⾸先介绍了内核源码的整体概况及协议栈初始化过程,然后结合配置、⽤户使⽤协议栈的⽅法,采取深⼊浅出、由上及下的策略对协议栈的代码进⾏了分解和注释。最后还介绍了通信界⾥较流⾏的VLAN技术和LACP协议。
《深⼊浅出LinuxTCP/IP协议栈》适合Linux⽹络开发⼈员以及对Linux内核感兴趣的读者阅读。 罗钰,贵州⼈,国防科学技术⼤学硕⼠毕业,多年Linux底层开发经验,精通软件分析与设计、TCP/IP协议,曾开发Windows/Linux/Vxworks/FreeBSD等平台的设备驱动,开发过以太⽹芯⽚驱动、⼆层协议以及OSPF路由协议,对MPLS架构设计有⾮常丰富的经验,擅长编译器、CPU技术,近年来⼀直致⼒于⽆线⽹络产品系统的分析与设计⼯作。 第1章操作系统、⽹络、协议栈、代码
1.1Linux操作系统介绍
1.1.1Linux操作系统架构简介
1.1.2⽹络协议发展介绍
1.2本书的组织和安排
1.2.1基本的数据结构和计算机术语
1.2.2图⽚风格演⽰
1.2.3本书的组织
第2章内核系统初始化
2.1系统初始化流程简介
2.2内核⽂件解读
2.2.1ELF⽂件格式
2.2.2LinkScripts知识
2.2.3Linux内核镜像解析
2.3中断及任务调度管理
2.3.1中断及软中断模型
2.3.2各种语境下的切换
2.3.3内核下的同步与互斥
2.3.4各种异步⼿段
2.4虚拟⽂件系统
2.5⽹络协议栈各部分初始化
2.5.1⽹络基础系统初始化
2.5.2⽹络内存管理
2.5.3⽹络⽂件系统初始化
2.5.4⽹络协议初始化
2.5.5初步了解路由系统
2.6Linux设备管理
2.6.1底层PCI模块的初始化
2.6.2⽹络设备接⼝初始化例程第3章配置⽹络系统
3.1配置过程分析
3.1.1配置是如何下达到内核的?
3.1.2socket系统调⽤
3.1.3ioctl代码的实现
3.1.4loopback接⼝的配置过程3.1.5IP别名的实现
3.2回顾FIB系统初始化
3.3深⼊FIB系统
3.4FIB系统发⽣了什么样的变化3.5直接访问路由表
3.6接⼝状态变化的处理过程
第4章⽹络层实现的初步研究
4.1从ping127.0.0.1开始旅程4.2再次相遇Socket系统调⽤4.3IP数据报⽂格式
4.4send系统调⽤
4.5在路由系统中游历
4.5.1查出⼝
4.5.2当⽬的地址是远端主机时4.5.3创建对应路由cache表项4.5.4创建对应邻居表项
4.6回到发送的路径
4.6.1IP层发送过程
4.6.2揭密hh_cache
4.7ARP的作⽤
4.7.1ARP的机制
4.7.2ARP报⽂格式
4.7.3LinuxARP协议的实现
4.8到达设备驱动层
4.8.1数据链路层帧格式
4.8.2Loopback设备的发送过程
4.9接收过程:从中断到路由系统
4.10ICMP
4.10.1ICMP报⽂格式
4.10.2ping本机地址及回环地址
4.10.3ping外部地址
4.11从内核到⽤户
第5章传输层实现的研究
5.1进⼀步到UDP
5.1.1UDP⽤户代码
5.1.2UDP数据报⽂格式
5.1.3服务器端bind的实现
5.1.4接收代码
5.1.5释放UDP的socket
5.2更⾼阶的TCP
5.2.1TCP⽤户代码
5.2.2TCP数据报⽂格式
5.2.3TCP栈及socket的初始化
5.2.4服务器端bind和listen的实现
5.2.5服务器端accept的实现
5.2.6客户端connect的实现——发起三次握⼿5.2.7TCP报⽂的接收
5.2.8三次握⼿的实现
5.2.9内核收到报⽂转到⽤户态
5.2.10释放TCP的socket
5.3TCP拥塞控制
5.3.1TCP拥塞控制机制介绍
5.3.2Linux内核拥塞控制功能的实现
第6章Select系统调⽤的实现机制
6.1如何使⽤select
6.2Select的内核实现
第7章数据链路层协议实现
7.1基本的2层知识
7.2Linux桥实现的基本框架
7.3VLAN
7.3.1VLAN概念
7.3.2Linux下VLAN——存在巨⼤的缺陷
7.4LACP协议
7.4.1聚合端⼝简介
7.4.2LACP在Linux中的实现
7.52层功能总结
后记
参考⽂献
内容简介:
《深⼊浅出LinuxTCP/IP协议栈》主要对Linux2.6.18内核协议栈源代码做了⼀些基本的分析,这些分析基于作者在操作系统⽅⾯的研究和⽹络协议开发过程中的经验和笔记,编写《深⼊浅出LinuxTCP/IP协议栈》的⽬的主要是使读者能够在尽可能短的时间内掌握Linux内核协议栈的⼯作机理,为移植和扩展协议栈打下基础。
《深⼊浅出LinuxTCP/IP协议栈》⾸先介绍了内核源码的整体概况及协议栈初始化过程,然后结合配置、⽤户使⽤协议栈的⽅法,采取深⼊浅出、由上及下的策略对协议栈的代码进⾏了分解和注释。最后还介绍了通信界⾥较流⾏的VLAN技术和LACP协议。
《深⼊浅出LinuxTCP/IP协议栈》适合Linux⽹络开发⼈员以及对Linux内核感兴趣的读者阅读。
作者简介:
罗钰,贵州⼈,国防科学技术⼤学硕⼠毕业,多年Linux底层开发经验,精通软件分析与设计、TCP/IP协议,曾开发Windows/Linux/Vxworks/FreeBSD等平台的设备驱动,开发过以太⽹芯⽚驱动、⼆层协议以及OSPF路由协议,对MPLS架构设计有⾮常丰富的经验,擅长编译器、CPU技术,近年来⼀直致⼒于⽆线⽹络产品系统的分析与设计⼯作。
⽬录:
第1章操作系统、⽹络、协议栈、代码
1.1Linux操作系统介绍
1.1.1Linux操作系统架构简介
1.1.2⽹络协议发展介绍
tcpip协议pdf1.2本书的组织和安排
1.2.1基本的数据结构和计算机术语
1.2.2图⽚风格演⽰
1.2.3本书的组织
第2章内核系统初始化
2.1系统初始化流程简介
2.2内核⽂件解读
2.2.1ELF⽂件格式
2.2.2LinkScripts知识
2.2.3Linux内核镜像解析
2.3中断及任务调度管理
2.3.1中断及软中断模型
2.3.2各种语境下的切换
2.3.3内核下的同步与互斥
2.3.4各种异步⼿段
2.4虚拟⽂件系统
2.5⽹络协议栈各部分初始化
2.5.1⽹络基础系统初始化
2.5.2⽹络内存管理
2.5.3⽹络⽂件系统初始化
2.5.4⽹络协议初始化
2.5.5初步了解路由系统
2.6Linux设备管理
2.6.1底层PCI模块的初始化
2.6.2⽹络设备接⼝初始化例程第3章配置⽹络系统
3.1配置过程分析
3.1.1配置是如何下达到内核的?
3.1.2socket系统调⽤
3.1.3ioctl代码的实现
3.1.4loopback接⼝的配置过程3.1.5IP别名的实现
3.2回顾FIB系统初始化
3.3深⼊FIB系统
3.4FIB系统发⽣了什么样的变化3.5直接访问路由表
3.6接⼝状态变化的处理过程
第4章⽹络层实现的初步研究
4.1从ping127.0.0.1开始旅程4.2再次相遇Socket系统调⽤4.3IP数据报⽂格式
4.4send系统调⽤
4.5在路由系统中游历
4.5.1查出⼝
4.5.2当⽬的地址是远端主机时4.5.3创建对应路由cache表项
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论