TCP/IP架构、设计及应用

出版时间:2010-8  出版社:塞斯(Sameer Seth)、文卡特苏鲁(M.Ajaykumar Venkatesulu)、黄清元、 于杰 清华大学出版社 (2010-08出版)  作者:(印度) 塞斯 (印度) 文卡特苏鲁 著  页数:736  
Tag标签:无  

前言

我们非常愿意向大家推荐由Sameer Seth和M.Ajaykumar Venkatesulu编写的《TCP/IP架构、设计及应用(Linux版)》一书。 Sameer Seth以前是Sun Microsystems的高级工程师,主要从事Solaris TCP/IP协议栈、套接字、流、NFS、相关内核框架方面的研究与开发工作,拥有十几年Linux研究和商业开发的经验。他在嵌入式Linux TCP/IP协议栈和X86体系结构方面有着很深的造诣。此外,他曾从事Motorola MPC8260处理器上各种通信协议的开发工作。可以说,Sameer Seth对LinuxTCP/IP协议栈有着非常深入的理解。 本书采用大量的源码和图例来阐述Linux TCP/IP协议栈,尽管市面上有很多介绍TCP/IP协议栈的书籍,但是这些书籍过于侧重参照TCPflP协议相关的RFC来进行阐述,或者注重于一些TCP/IP相关的算法,而从报文的处理过程以及实现源码来深入浅出地介绍Linux TCP/IP协议栈的书籍则很少。可以说,本书是当前市面上唯一使用源码来介绍LinuxTCP/IP概念和实现的文献。本书试图介绍TCP/IP协议栈和内核支撑框架的各个方面,其思想是尽可能地弱化其复杂性,以便于理解的方式呈现给读者。本书首先介绍了支撑该协议栈的内核框架。在Linux中,这些支撑框架有VFS层、套接字框架、协议层、定时器、内存管理、中断处理、软中断、内核线程、内核同步机制等,这是内核实现协议栈所需的。本书采用一种简洁、渐进的方式讨论了TCP/IP协议栈的各个方面,从简单的客户端-服务器程序开始,直到深入介绍TCP/IP协议栈中一些比较复杂的处理过程。每个章节都配有大量的源码和图示,以帮助读者更好地理解这些内容。对于没有太多时间来阅读书籍又期望对LinuxTCP/IP协议栈有深入了解的读者来说,这是一本很好的参考用书。 全书由黄清元博士和于杰博士翻译完成,最后由李化统稿。由于译者水平所限,翻译不妥或者错误之处在所难免,敬请广大读者批评指正。

内容概要

  随着开源软件逐渐成为商业系统和研究项目可信任的组成部分,TCP/IP与Linux操作系统的结合也越来越常见。TCP/IP的盛行使计算机之间的通信越来越容易,虽然这些计算机使用不同的操作系统,如Windows、Mac OS、Linux、Unix等。由于Linux的开源性和易修改性,因此在构建应用程序时,它已经成为开发人员常选的操作系统,开发人员可以定制操作系统,以满足应用程序的需求。  《TCP/IP架构、设计及应用(Linux版)》采用一种简洁、渐进的方式介绍了Linux中TCP/IP的设计和实现——从简单的客户端一服务器应用程序到比较复杂的执行过程,还提供了大量源码和图示来阐述相关的实现,以帮助读者更好地理解《国外计算机科学经典教材:TCP/IP架构、设计及应用》的内容。  《TCP/IP架构、设计及应用(Linux版)》适合于嵌入式网络产品开发人员、网络安全产品开发人员、研究人员、IT网络架构师以及研究生。

作者简介

作者:(印度)塞斯(Sameer Seth) (印度)文卡特苏鲁(M.Ajaykumar Venkatesulu) 译者:黄清元 于杰Sameer Seth是Juniper Networks公司JUNOS内核工作组的高级工程师。他曾经是Sun Microsystems的高级工程师,主要从事Sotaris的TCP/0P协议栈、套接字、流、NFS以及相关的内核框架方面的工作。他拥有十几年Linux的研发经验,也曾从事嵌入式TCP/IP Linux.协议栈和X86体系结构方面的工作。此外;他还曾从事Motorola MPC8260处理器上各种通信协议的工作。并发布相关的技术讨论。他还参与网络和Unix相关技术的写作和讨论。M. Ajaykumar Venkatesulu当前从事网络服务和命名服务方面的工作。他拥有了年Linux网络和内核方面的研发经验,主要研究Linux内核、嵌入式系统、IP路由以及IP服务质量等内容。

书籍目录

第1章引言 1.1 tcp/ip协议栈概述 1.2 linux 2.4.20的源码组织结构 1.3tcp/ip协议栈和内核控制路径 1.4版本2.4之后linux内核的可抢占性 1.5 linux进程和线程 1.6内核同步机制 1.7tcp/ip应用编程接口 1.8shutdown 1.9i/o 1.10 tcp状态 1.11本章总结 第2章协议基础 2.1tcp 2.2 tcp选项(rfcl323) 2.3tcp数据流 2.4延时确认 2.5 nagle算法(rfc 896) 2.6tcp滑动窗口协议 2.7最大化tcp吞吐量 .2.8tcp定时器 2.9tcp拥塞控制 2.10tcp性能和可靠性 2.11ip(internet协议) 2.12路由 2.13netstat 2.14traceroute 2.15icmp 2.16ping 2.17arp/rarp 2.18本章总结 第3章套接宇的内核实现 3.1套接字层 3.2vfs和套接字 3.3协议套接字注册 3.4结构inet protosw 3.5内核中的套接字组织结构 3.6socket 3.7inet create(见源码3-4) 3.8套接字调用流程图 3.9本章总结 第4章tcp连接设置的内核实现 4.1连接设置 4.2bind 4.3listen 4.4内核对连接请求的处理 4.5accept 4.6客户端设置 4.7本章总结 第5章 sk-buff和协议头 5.1结构sk bu迁, 5.2结构skb shared info(见图5-3) 5.3sk buff和dma-skbfrag_struct 5.4 sk buff的例程操作 5.5构建向下遍历协议层时的协议头 5.6解析向上遍历协议层时的协议头 5.7本章总结 第6章sk-buff在不同协议层的处理 6.1tcp/ip协议栈向下的报文处理 6.2准备传输的报文 6.3报文向下处理的内核流 6.4协议栈向上的报文处理过程 6.5沿协议栈向上的报文内核流程 6.6本章总结 第7章tcp发送 7.1 tcp分段单元 7.2分散-聚集支持的分段处理 7.3发送oob数据 7.4tcp分段单元和发送处理流程 7.5分段和发送机制的函数调用流 7.6本章总结 第8章tcp接收 8.1排队机制 8.2接收队列中tcp数据的处理 8.3tcp紧急数据处理 8.4通过tcp套接字接收数据的数据流图 8.5本章总结 第9章tcp内存管理 9.1发送端tcp内存管理 9.2接收端tcp内存管理 9.3接收缓冲区内存释放 9.4tcp内存管理中的系统级控制参数 9.5本章总结 第10章tgp定时器 10.1linux中的定时器 10.2 tcp重传定时器 10.3零窗口探测定时器 10.4延时确认定时器 10.5 keepalive定时器 10.6syn-ack定时器 10.7time wait定时器 10.8本章总结 第11章tcp核心处理 11.1传入tcp数据段处理 11.2快速路径处理 11.3慢速路径处理 11.4传入ack的处理 11.5处理sack块 11.6重定序长度 11.7处理tcp紧急指针 11.8在慢速路径中处理数据段 11.9tcp核心处理 11.10本章总结 第12章tcp状态处理 12.1拥塞状态处理概述 12.2tcp状态 12.3在恢复状态中处理重复/部分确认 12.4在丢失状态中处理重复/部分确认 12.5tcp状态的默认处理 12.6当确认超过tp→high→seq时tcp非正常状态的处理 12.7本章总结 第13章netlink套接宇 13.1 netlink套接字介绍 13.2启动时netlink套接字的注册和初始化 13.3内核netlink套接字的创建 13.4用户netlink套接字的创建 13.5netlink数据结构 13.5.1nl-table 13.5.2rtnetlink_link 13.6其他重要的数据结构 13.6.1 nlmsghdr结构 13.7netlink报文格式 13.8 netlink套接字例子——添加qdisc的比命令 13.9内核空间中的tc命令流程图 13.10本章总结 第14章ip路由 第15章linux中的ip服务质量(ip qos) 第16章ip filter防火墙 第17章网络软中断 第18章报文的传输和接收 第19章ikcd和tcp/ip协议栈的调试 第20章展望

章节摘录

插图:利用Linux实现网络互联是开发人员最常使用的一种选择。Linux不仅在服务器市场占有一定的地位,而且在小型嵌入式网络操作系统市场中,Linux也是最常用的一种选择。所有这些都需要人们对TCP/IP代码有很好的理解。有些产品需要实现防火墙;有些产品需要实现IPSec;有些产品需要修改TCP连接代码,以实现集群运算环境中的负载均衡;有些产品则需要提高SMP机器的可扩展性。这些产品中大部分都是嵌入式系统,而互联是嵌入式系统必然要考虑的因素。实时嵌入式产品对互联有着非常独特的需求,这类产品需要考虑缓冲区管理的要求,或者性能的要求。所有这些都需要人们对协议栈实现以及相关支持框架有完整的了解。如前所述,由于内存的限制,有些嵌入式互联产品只能编译很小一部分代码,这就要求人们对Linux源码组织结构有很好的理解,从而能够轻易地找出其中的相关代码。几乎所有网络应用采用的都是非常基本的客户端一服务器技术。服务器在某保留端口监听连接请求,客户端则将连接请求发送到服务器,而导致该基本技术比较复杂的原因是人们对安全或者负载均衡的考虑,这些因素提高了客户端服务器技术的复杂度。但是,该技术自身的基本实现非常简单,只需要实现客户端和服务器之间的简单对话即可。例如,telnet和ftp服务都通过inet程序进行访问,隐藏了服务的全部细节。不过在调整TCP/IP连接时,有很多可供调整的参数,从而使开发人员能够在不进行系统范围调整的情况下,最好地实现对连接的微调。

编辑推荐

《TCP/IP架构、设计及应用(Linux版)》特点:介绍了基本的套接字概念和实现使用源码和图示实现复杂数据结构的可视化理解tcp定时器和内存管理阐述tcp核心处理过程并实现拥塞控制算法ip转发和服务质量实现调试tcp/ip协议栈

图书封面

图书标签Tags

评论、评分、阅读与下载


    TCP/IP架构、设计及应用 PDF格式下载


用户评论 (总计2条)

 
 

  •   内容还行,没想到随便翻翻的时候居然有缺页。。。。。
  •   还适合吧, 内容比较旧了
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7