深入浅出Linux TCP/IP协议栈,深入浅出Linux TCP/IP协议栈

《深入浅出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网络协议发展介绍

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层功能总结

后记

参考文献

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值