图书介绍

TCP/IP详解2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

TCP/IP详解
  • (美)加里·R.赖特(Gary R. Wright),(美)W.理查德·史蒂文斯(W. Richard Stevens)著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111617938
  • 出版时间:2019
  • 标注页数:904页
  • 文件大小:319MB
  • 文件页数:925页
  • 主题词:计算机网络-通信协议

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

TCP/IP详解PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述1

1.1引言1

1.2源代码表示1

1.2.1将拥塞窗口设置为11

1.2.2印刷约定2

1.3历史2

1.4应用编程接口3

1.5程序示例4

1.6系统调用和库函数6

1.7网络实现概述6

1.8描述符7

1.9mbuf与输出处理11

1.9.1包含插口地址结构的mbuf11

1.9.2包含数据的mbuf12

1.9.3添加IP和UDP首部13

1.9.4IP输出14

1.9.5以太网输出14

1.9.6UDP输出小结14

1.10输入处理15

1.10.1以太网输入15

1.10.2IP输入15

1.10.3UDP输入16

1.10.4进程输入17

1.11网络实现概述(续)17

1.12中断级别与并发18

1.13源代码组织20

1.14测试网络21

1.15小结22

第2章 mbuf:存储器缓存24

2.1引言24

2.2代码介绍27

2.2.1全局变量27

2.2.2统计28

2.2.3内核统计28

2.3mbuf的定义29

2.4mbuf结构29

2.5简单的mbuf宏和函数31

2.5.1m_get函数32

2.5.2MGET宏32

2.5.3m_retry函数33

2.5.4mbuf锁34

2.6m_devget和m_pullup函数34

2.6.1m_devget函数34

2.6.2mtod和dtom宏36

2.6.3m_ullup函数和连续的协议首部36

2.6.4m_pullup和IP的分片与重组37

2.6.5TCP重组避免调用m_pullup39

2.6.6m_ullup使用总结40

2.7mbuf宏和函数的小结40

2.8Net/3联网数据结构小结42

2.9m_copy和簇引用计数43

2.10其他选择47

2.11小结47

第3章 接口层49

3.1引言49

3.2代码介绍49

3.2.1全局变量49

3.2.2SNMP变量50

3.3ifnet结构51

3.4ifaddr结构57

3.5sockaddr结构58

3.6ifnet与ifaddr的专用化59

3.7网络初始化概述60

3.8以太网初始化61

3.9SLIP初始化64

3.10环回初始化65

3.11if_attach函数66

3.12ifinit函数72

3.13小结73

第4章 接口:以太网74

4.1引言74

4.2代码介绍75

4.2.1全局变量75

4.2.2统计量75

4.2.3SNMP变量76

4.3以太网接口77

4.3.1leintr函数79

4.3.2leread函数79

4.3.3ether_input函数81

4.3.4ether_output函数84

4.3.5lestart函数87

4.4ioctl系统调用89

4.4.1ifioctl函数90

4.4.2ifconf函数91

4.4.3举例94

4.4.4通用接口ioctl命令95

4.4.5if_down和if_up函数96

4.4.6以太网、SLIP和环回97

4.5小结98

第5章 接口:SLIP和环回100

5.1引言100

5.2代码介绍100

5.2.1全局变量100

5.2.2统计量101

5.3SLIP接口101

5.3.1SLIP线路规程:SLIPDISC101

5.3.2SLIP初始化:slopen和slinit103

5.3.3SLIP输入处理:slinput105

5.3.4SLIP输出处理:sloutput109

5.3.5slstart函数111

5.3.6SLIP分组丢失116

5.3.7SLIP性能考虑117

5.3.8slclose函数117

5.3.9sltioctl函数118

5.4环回接口119

5.5小结121

第6章 IP编址123

6.1引言123

6.1.1IP地址123

6.1.2IP地址的印刷规定123

6.1.3主机和路由器124

6.2代码介绍125

6.3接口和地址小结125

6.4sockaddr_in结构126

6.5in_ifaddr结构127

6.6地址指派128

6.6.1ifioctl函数130

6.6.2in_control函数130

6.6.3前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSTADDR132

6.6.4地址指派:SIOCSIFADDR133

6.6.5in_ifinit函数133

6.6.6网络掩码指派:SIOCSIFNETMASK136

6.6.7目的地址指派:SIOCSIFDSTADDR137

6.6.8获取接口信息137

6.6.9每个接口多个IP地址138

6.6.10附加IP地址:SIOCAIFADDR139

6.6.11删除IP地址:SIOCDIFADDR140

6.7接口ioctl处理141

6.7.1leioctl函数141

6.7.2slioctl函数142

6.7.3loioctl函数143

6.8Internet实用函数144

6.9ifnet实用函数144

6.10小结145

第7章 域和协议146

7.1引言146

7.2代码介绍146

7.2.1全局变量147

7.2.2统计量147

7.3domain结构147

7.4protosw结构148

7.5IP的domain和protosw结构150

7.6pffindproto和pffindtype函数155

7.7pfctlinput函数157

7.8IP初始化157

7.8.1Internet传输分用157

7.8.2ip_init函数158

7.9sysctl系统调用159

7.10小结161

第8章 IP:网际协议162

8.1引言162

8.2代码介绍163

8.2.1全局变量163

8.2.2统计量163

8.2.3SNMP变量164

8.3IP分组165

8.4输入处理:ipintr函数167

8.4.1ipintr概观167

8.4.2验证168

8.4.3转发或不转发171

8.4.4重装和分用173

8.5转发:ip_forward函数174

8.6输出处理:ip_output函数180

8.6.1首部初始化181

8.6.2路由选择182

8.6.3源地址选择和分片184

8.7Internet检验和:in_cksum函数186

8.8setsockopt和getsockopt系统调用190

8.8.1PRCO SETOPT的处理192

8.8.2PRCO GETOPT的处理193

8.9ip_sysctl函数193

8.10小结194

第9章 IP选项处理196

9.1引言196

9.2代码介绍196

9.2.1全局变量196

9.2.2统计量197

9.3选项格式197

9.4ip_dooptions函数198

9.5记录路由选项200

9.6源站和记录路由选项202

9.6.1save_rte函数205

9.6.2ip_srcroute函数206

9.7时间戳选项207

9.8ip_insertoptions函数210

9.9ip_pcbopts函数214

9.10一些限制217

9.11小结217

第10章 IP的分片与重装218

10.1引言218

10.2代码介绍219

10.2.1全局变量220

10.2.2统计量220

10.3分片220

10.4ip_optcopy函数223

10.5重装224

10.6ip_reass函数227

10.7ip_slowtimo函数237

10.8小结238

第11章 ICMP:Internet控制报文协议239

11.1引言239

11.2代码介绍242

11.2.1全局变量242

11.2.2统计量242

11.2.3SNMP变量243

11.3icmp结构244

11.4ICMP的protosw结构245

11.5输入处理:icmp_input函数246

11.6差错处理249

11.7请求处理251

11.7.1回显询问:ICMP_ECHO和ICMP_ECHOREPLY252

11.7.2时间戳询问:ICMP_TSTAMP和ICMP_TSTAMPREPLY253

11.7.3地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY253

11.7.4信息询问:ICMPIREQ和ICMP_IREQREPLY255

11.7.5路由器发现:ICMP_ROUTERADVERT和ICMP和ICMP_ROUTERSOLICIT255

11.8重定向处理255

11.9回答处理257

11.10输出处理257

11.11icmp_error函数258

11.12icmp_reflect函数261

11.13icmp_send函数265

11.14icmp_sysctl函数266

11.15小结266

第12章 IP多播268

12.1引言268

12.2代码介绍269

12.2.1全局变量270

12.2.2统计量270

12.3以太网多播地址270

12.4ether_multi结构271

12.5以太网多播接收273

12.6in_multi结构273

12.7ip_moptions结构275

12.8多播的插口选项276

12.9多播的TTL值277

12.9.1MBONE278

12.9.2扩展环搜索278

12.10ip_setmoptions函数278

12.10.1选择一个明确的多播接口:IP_MULTICASTIF280

12.10.2选择明确的多播TTL:IP_MULTICAST_LOOP281

12.10.3选择多播环回:IP_MULTICAST_LOOP281

12.11加入一个IP多播组282

12.11.1in_addmulti函数285

12.11.2slioctl和loioctl函数:SIOCADDMLTI和SIOCDELMULTI287

12.11.3leioctI函数:SIOCADDMULTI和SIOCDELMULTI288

12.11.4ether_addmulti函数288

12.12离开一个IP多播组291

12.12.1in_delmulti函数292

12.12.2ether_delmulti函数293

12.13ip_getmoptions函数295

12.14多播输入处理:ipintr函数296

12.15多播输出处理:ip_output函数298

12.16性能的考虑301

12.17小结301

第13章 IGMP:Internet组管理协议303

13.1引言303

13.2代码介绍304

13.2.1全局变量304

13.2.2统计量304

13.2.3SNMP变量305

13.3igmp结构305

13.4IGMP的protosw的结构306

13.5加入一个组:igmp_joingroup函数306

13.6igmp_fasttimo函数308

13.7输入处理:igmp_input函数311

13.7.1成员关系查询:IGMP_HOST_MEMBERSHIP_QUERY312

13.7.2成员关系报告:IGMP_HOST_MEMBERSHIP_REPORT313

13.8离开一个组:igmp_leavegroup函数314

13.9小结315

第14章 IP多播选路316

14.1引言316

14.2代码介绍316

14.2.1全局变量316

14.2.2统计量317

14.2.3SNMP变量317

14.3多播输出处理(续)317

14.4mrouted守护程序318

14.5虚拟接口321

14.5.1虚拟接口表322

14.5.2add_vif函数324

14.5.3del_vif函数326

14.6IGMP(续)327

14.6.1add_lgrp函数328

14.6.2del_lgrp函数329

14.6.3grplst_member函数330

14.7多播选路331

14.7.1多播选路表334

14.7.2del_mrt函数335

14.7.3add_mrt函数336

14.7.4mrtfind函数337

14.8多播转发:ip_mforward函数338

14.8.1phyint_send函数343

14.8.2tunnel_send函数344

14.9清理:ip_mrouter_done函数345

14.10小结346

第15章 插口层348

15.1引言348

15.2代码介绍349

15.3socket结构349

15.4系统调用354

15.4.1举例355

15.4.2系统调用小结355

15.5进程、描述符和插口357

15.6socket系统调用358

15.6.1socreate函数359

15.6.2超级用户特权361

15.7getsock和sockargs函数361

15.8bind系统调用363

15.9listen系统调用364

15.10tsleep和wakeup函数365

15.11accept系统调用366

15.12sonewconn和soisconnected函数369

15.13connect系统调用372

15.13.1soconnect函数374

15.13.2切断无连接插口和外部地址的关联375

15.14shutdown系统调用375

15.15close系统调用377

15.15.1soo_close函数377

15.15.2soclose函数378

15.16小结380

第16章 插口I/O381

16.1引言381

16.2代码介绍381

16.3插口缓存381

16.4write、writev、sendto和sendmsg系统调用384

16.5sendmsg系统调用387

16.6sendit函数388

16.6.1uiomove函数389

16.6.2举例390

16.6.3sendit代码391

16.7sosend函数392

16.7.1可靠的协议缓存393

16.7.2不可靠的协议缓存393

16.7.3sosend函数小结401

16.7.4性能问题401

16.8read、readv、recvfrom和recvmsg系统调用401

16.9recvmsg系统调用402

16.10recvit函数403

16.11soreceive函数405

16.11.1带外数据406

16.11.2举例406

16.11.3其他的接收操作选项407

16.11.4接收缓存的组织:报文边界407

16.11.5接收缓存的组织:没有报文边界408

16.11.6控制信息和带外数据409

16.12soreceive代码410

16.13select系统调用421

16.13.1selscan函数425

16.13.2soo_select函数425

16.13.3selrecord函数427

16.13.4selwakeup函数428

16.14小结429

第17章 插口选项431

17.1引言431

17.2代码介绍431

17.3setsockopt系统调用432

17.4getsockopt系统调用437

17.5fcntl和ioctl系统调用440

17.5.1fcntl代码441

17.5.2ioctl代码443

17.6getsockname系统调用444

17.7getpeername系统调用445

17.8小结447

第18章 Radix树路由表448

18.1引言448

18.2路由表结构448

18.3选路插口456

18.4代码介绍456

18.4.1全局变量458

18.4.2统计量458

18.4.3SNMP变量459

18.5Radix结点数据结构460

18.6选路结构463

18.7初始化:route_init和rtable_init函数465

18.8初始化:rn_init和rn_inithead函数468

18.9重复键和掩码列表471

18.10rn_match函数473

18.11rn_search函数480

18.12小结481

第19章 选路请求和选路消息482

19.1引言482

19.2rtalloc和rtallocl函数482

19.3宏RTFREE和rtfree函数484

19.4rtrequest函数486

19.5rt_setgate函数491

19.6rtinit函数493

19.7rtredirect函数495

19.8选路消息的结构498

19.9rt_missmsg函数501

19.10rt_ifmsg函数503

19.11rt_newaddrmsg函数504

19.12rt_msg1函数505

19.13rt_msg2函数507

19.14sysctl_rtable函数510

19.15sysctl_dumpentry函数514

19.16sysctl_iflist函数515

19.17小结517

第20章 选路插口518

20.1引言518

20.2routedomain和protosw结构518

20.3选路控制块519

20.4raw_init函数520

20.5route_output函数520

20.6rt_xaddrs函数530

20.7rt_setmetrics函数531

20.8raw_input函数532

20.9route_usrreq函数534

20.10raw_usrreq函数535

20.11raw_attach、raw_detach和raw_disconnect函数539

20.12小结540

第21章 ARP:地址解析协议542

21.1介绍542

21.2ARP和路由表542

21.3代码介绍544

21.3.1全局变量544

21.3.2统计量544

21.3.3SNMP变量546

21.4ARP结构546

21.5arpwhohas函数548

21.6arprequest函数548

21.7arpintr函数551

21.8in_arpinput函数552

21.9ARP定时器函数557

21.9.1arptimer函数557

21.9.2arptfree函数557

21.10arpresolve函数558

21.11arplookup函数562

21.12代理ARP563

21.13arp_rtrequest函数564

21.14ARP和多播569

21.15小结570

第22章 协议控制块572

22.1引言572

22.2代码介绍573

22.2.1全局变量574

22.2.2统计量574

22.3inpcb的结构574

22.4in_pcballoc和in_pcbdetach函数575

22.5绑定、连接和分用577

22.6in_pcblookup函数581

22.7in_pcbbind函数584

22.8in_pcbconnect函数589

22.9in_pcbdisconnect函数594

22.10in_setsockaddr和in_setpeeraddr函数595

22.11in_pcbnotify、in_rtchange和in_losing函数595

22.11.1in_rtchange函数598

22.11.2重定向和原始插口599

22.11.3ICMP差错和UDP插口600

22.11.4in_losing函数601

22.12实现求精602

22.13小结602

第23章 UDP:用户数据报协议605

23.1引言605

23.2代码介绍605

23.2.1全局变量606

23.2.2统计量606

23.2.3SNMP变量607

23.3UDP的protosw结构607

23.4UDP的首部608

23.5udp_init函数609

23.6udp_output函数609

23.6.1在前面加上IP/UDP首部和mbuf簇612

23.6.2UDP检验和计算和伪首部612

23.7udp_input函数616

23.7.1对收到的UDP数据报的一般确认616

23.7.2分用单播数据报619

23.7.3分用多播和广播数据报622

23.7.4连接上的UDP插口和多接口主机625

23.8udp_saveopt函数625

23.9udp_ctlinput函数627

23.10udp_usrreq函数628

23.11udp_sysctl函数633

23.12实现求精633

23.12.1UDP PCB高速缓存633

23.12.2UDP检验和634

23.13小结635

第24章 TCP:传输控制协议636

24.1引言636

24.2代码介绍636

24.2.1全局变量636

24.2.2统计量637

24.2.3SNMP变量640

24.3TCP的protosw结构641

24.4TCP的首部641

24.5TCP的控制块643

24.6TCP的状态变迁图645

24.7TCP的序号646

24.8tcp_init函数650

24.9小结652

第25章 TCP的定时器654

25.1引言654

25.2代码介绍655

25.3tcp_canceltimers函数657

25.4tcp_fasttimo函数657

25.5tcp_slowtimo函数658

25.6tcp_timers函数659

25.6.1FIN_WAIT_2和2MSL定时器660

25.6.2持续定时器662

25.6.3连接建立定时器和保活定时器662

25.7重传定时器的计算665

25.8tcp_newtcpcb算法666

25.9tcp_setpersist函数668

25.10tcp_xmit_timer函数669

25.11重传超时:tcp_timers函数673

25.11.1慢起动和避免拥塞675

25.11.2精确性677

25.12一个RTT的例子677

25.13小结679

第26章 TCP输出680

26.1引言680

26.2tcp_output概述680

26.3决定是否应发送一个报文段682

26.4TCP选项691

26.5窗口大小选项692

26.6时间戳选项692

26.6.1哪个时间戳需要回显,RFC1323算法694

26.6.2哪个时间戳需要回显,正确的算法695

26.6.3时间戳与延迟ACK695

26.7发送一个报文段696

26.8tcp_template函数707

26.9tcp_respond函数708

26.10小结710

第27章 TCP的函数712

27.1引言712

27.2tcp_drain函数712

27.3tcp_drop函数712

27.4tcp_close函数713

27.4.1路由特性713

27.4.2资源释放716

27.5tcp_mss函数717

27.6tcp_ctlinput函数722

27.7tcp_notify函数723

27.8tcp_quench函数724

27.9TCP_REASS宏和tcp_reass函数724

27.9.1TCP_REASS宏725

27.9.2TCP_REASS函数727

27.10tcp_trace函数732

27.11小结736

第28章 TCP的输入737

28.1引言737

28.2预处理739

28.3tcp_dooptions函数745

28.4首部预测747

28.5TCP输入:缓慢的执行路径752

28.6完成被动打开或主动打开752

28.6.1完成被动打开753

28.6.2完成主动打开756

28.7PAWS:防止序号回绕760

28.8裁剪报文段使数据在窗口内762

28.9自连接和同时打开768

28.10记录时间戳770

28.11RST处理770

28.12小结772

第29章 TCP的输入(续)773

29.1引言773

29.2ACK处理概述773

29.3完成被动打开和同时打开774

29.4快速重传和快速恢复的算法775

29.5ACK处理778

29.6更新窗口信息784

29.7紧急方式处理786

29.8tcp_pulloutofband函数788

29.9处理已接收的数据789

29.10FIN处理791

29.11最后的处理793

29.12实现求精795

29.13首部压缩795

29.13.1引言796

29.13.2首部字段的压缩799

29.13.3特殊情况801

29.13.4实例802

29.13.5配置803

29.14小结803

第30章 TCP的用户需求805

30.1引言805

30.2tcp_usrreq函数805

30.3tcp_attach函数814

30.4tcp_disconnect函数815

30.5tcp_usrclosed函数816

30.6tcp_ctloutput函数817

30.7小结820

第31章 BPF:BSD分组过滤程序821

31.1引言821

31.2代码介绍821

31.2.1全局变量821

31.2.2统计量822

31.3bpf_if结构822

31.4bpf_d结构825

31.4.1bpf_open函数826

31.4.2bpfioctl函数827

31.4.3bpf_setif函数830

31.4.4bpf_attachd函数831

31.5BPF的输入832

31.5.1bpf_tap函数832

31.5.2catchpacket函数833

31.5.3bpf_read函数835

31.6BPF的输出837

31.7小结838

第32章 原始IP839

32.1引言839

32.2代码介绍839

32.2.1全局变量839

32.2.2统计量840

32.3原始IP的protosw结构840

32.4rip_init函数842

32.5rip_input函数842

32.6rip_output函数844

32.7rip_usrreq函数846

32.8rip_ctloutput函数850

32.9小结852

结束语853

附录A 部分习题的解答854

附录B 源代码的获取872

附录C RFC1122的有关内容874

参考文献895

热门推荐