欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 图解Linux网络编程
      • 作者:袁菘华|责编:张爽
      • 出版社:电子工业
      • ISBN:9787121515590
      • 出版日期:2025/11/01
      • 页数:378
    • 售价:55.2
  • 内容大纲

        本书共计14章,介绍Linux网络编程的各个方面。第1~2章介绍网络编程相关的基础知识,包括计算机网络基础、内核收发数据原理、套接字的概念等。第3章介绍套接字编程基础知识,包括字节序、套接字地址、IP地址转换、套接字核心函数等。第4~9章为网络编程实战,包括TCP套接字编程、UDP套接字编程、服务器模型、I/O模型、I/O多路复用、套接字选项。第10~14章为高级网络编程,包括原始套接字、域套接字、组播和广播、零拷贝和百万并发。
        本书的适读人群非常广泛,包括Linux开发人员,以及对Linux感兴趣的初学者。同时,本书适合作为高等院校计算机专业的师生用书和培训机构的教材。
  • 作者介绍

        袁菘华,具有十余年Linux研发经验,曾就职于世界500强企业和国内某通讯公司。擅长以图文的形式写作技术文章,将复杂的技术知识讲得通俗易懂。个人微信公众号“物联网心球”深受广大读者的喜欢。
  • 目录

    第1章  计算机网络基础
      1.1  OSI参考模型
        1.1.1  OSI参考模型介绍
        1.1.2  OSI参考模型的特点
        1.1.3  OSI与TCP/IP模型
        1.1.4  封装和解封
      1.2  TCP/IP
        1.2.1  物理层
        1.2.2  数据链路层
        1.2.3  网络层
        1.2.4  传输层
        1.2.5  应用层
      1.3  两台主机直连
        1.3.1  通信过程
        1.3.2  ARP和ARP表
      1.4  局域网通信
        1.4.1  通信过程
        1.4.2  交换机工作原理
      1.5  跨网段通信
        1.5.1  通信过程
        1.5.2  访问公网服务端
    第2章  认识套接字
      2.1  从不同角度看套接字
        2.1.1  数据加工厂
        2.1.2  不同设备进程间通信
        2.1.3  本机进程间通信
      2.2  从内核看Linux接收数据
        2.2.1  硬中断处理
        2.2.2  软中断处理
      2.3  从内核看Linux发送数据
        2.3.1  传输层处理
        2.3.2  网络层处理
        2.3.3  邻居子系统处理
        2.3.4  网络设备子系统处理
        2.3.5  网卡驱动处理
      2.4  常见套接字介绍
        2.4.1  IPv4套接字
        2.4.2  数据链路层原始套接字
        2.4.3  域套接字
    第3章  套接字编程基础
      3.1  字节序
        3.1.1  字节序的概念
        3.1.2  字节序对通信的影响
        3.1.3  字节序转换函数
        3.1.4  主机字节序判断
      3.2  套接字地址
        3.2.1  通用套接字地址
        3.2.2  新的通用套接字地址
        3.2.3  IPv4套接字地址
      3.3  IP地址转换

        3.3.1  字符串IP地址转二进制
    IP地址
        3.3.2  二进制IP地址转字符串
    IP地址
        3.3.3  二进制IP地址和网络ID、
    主机ID的转换
      3.4  域名与IP地址的转换
        3.4.1  域名系统
        3.4.2  域名和IP地址转换
        3.4.3  获取系统服务
      3.5  套接字核心函数
        3.5.1  socket函数
        3.5.2  bind函数
        3.5.3  listen函数
        3.5.4  connect函数
        3.5.5  accept函数
      3.6  套接字发送函数
        3.6.1  send函数
        3.6.2  sendto函数
        3.6.3  sendmsg函数
        3.6.4  writev函数
      3.7  套接字接收函数
        3.7.1  recv函数
        3.7.2  recvfrom函数
        3.7.3  recvmsg函数
        3.7.4  readv函数
    第4章  TCP套接字编程
      4.1  TCP编程基础
        4.1.1  TCP简介
        4.1.2  TCP状态机
        4.1.3  TCP调试工具
      4.2  TCP套接字编程基础
        4.2.1  TCP编程流程
        4.2.2  正确设置recv函数的
    flags标志
        4.2.3  getsockname和
    getpeername函数
      4.3  优雅关闭套接字
        4.3.1  close函数关闭套接字
        4.3.2  shutdown函数优雅关闭
    套接字
      4.4  TCP连接快速打开
        4.4.1  TFO的工作流程
        4.4.2  TFO编程实战
        4.4.3  验证TFO功能
      4.5  SYN Flood攻击
        4.5.1  什么是SYN Flood攻击
        4.5.2  TCP SYN Cookies简介
        4.5.3  TCP SYN Cookies实战
    第5章  UDP套接字编程

      5.1  UDP编程基础
      5.2  UDP套接字编程基础
        5.2.1  UDP编程流程
        5.2.2  CS网络模型和P2P网络
    模型
        5.2.3  深入理解UDP connect
    函数
        5.2.4  正确发送和接收数据
      5.3  UDP可靠性编程
        5.3.1  UDP丢包
        5.3.2  UDP乱序
        5.3.3  可靠性编程
    第6章  服务器模型
      6.1  循环服务器
        6.1.1  UDP循环服务器
        6.1.2  TCP循环服务器
      6.2  并发服务器
        6.2.1  多进程并发服务器
        6.2.2  多线程并发服务器
      6.3  I/O多路复用服务器
      6.4  本章小结
    第7章  I/O模型
      7.1  同步I/O和异步I/O的区别
      7.2  阻塞I/O
      7.3  非阻塞I/O
      7.4  I/O多路复用
      7.5  信号驱动I/O
        7.5.1  工作原理
        7.5.2  信号驱动I/O编程
      7.6  异步I/O
        7.6.1  工作原理
        7.6.2  io_uring编程
    第8章  I/O多路复用
      8.1  从内核看select
      8.2  select编程实战
        8.2.1  位图
        8.2.2  select编程流程
      8.3  select小结
      8.4  从内核看poll
      8.5  poll编程实战
      8.6  poll小结
      8.7  从内核看epoll
      8.8  epoll编程实战
        8.8.1  编程接口
        8.8.2  epoll的编程流程
      8.9  epoll小结
    第9章  套接字选项
      9.1  套接字选项简介
      9.2  setsockopt和getsockopt函数
        9.2.1  函数原型

        9.2.2  实现原理
      9.3  sysctl相关知识
        9.3.1  /proc/sys虚拟文件系统
        9.3.2  sysctl命令
      9.4  常用的套接字选项
        9.4.1  SO_SNDBUF和
    SO_RCVBUF
        9.4.2  SO_REUSEADDR和
    SO_REUSEPORT
        9.4.3  SO_LINGER
        9.4.4  TCP保活机制
        9.4.5  TCP_NODELAY和
    TCP_CORK
    第10章  原始套接字
      10.1  从内核看原始套接字
        10.1.1  原始套接字如何发送
    数据
        10.1.2  原始套接字如何接收
    数据
      10.2  网络层原始套接字
        10.2.1  编程流程
        10.2.2  常见的网络层原始套接字
    编程问题
      10.3  链路层原始套接字
        10.3.1  套接字地址
        10.3.2  编程流程
        10.3.3  混杂模式
        10.3.4  常见的链路层原始套接字编程
    问题
      10.4  用户层TCP/IP编程
        10.4.1  累加校验和的原理
        10.4.2  以太网帧头
        10.4.3  IP头
        10.4.4  ARP
        10.4.5  ICMP
        10.4.6  UDP
    第11章  域套接字
      11.1  域套接字基础
        11.1.1  域套接字地址
        11.1.2  域套接字的工作原理
      11.2  SOCK_STREAM域套接字
        11.2.1  服务端程序
        11.2.2  客户端程序
        11.2.3  查看域套接字的状态
      11.3  SOCK_DGRAM域套接字
        11.3.1  服务端程序
        11.3.2  客户端程序
      11.4  socketpair域套接字
        11.4.1  socketpair函数
        11.4.2  发送和接收数据

        11.4.3  socketpair函数和pipe函数的
    对比
      11.5  传递文件描述符
        11.5.1  实现原理
        11.5.2  编程实战
    第12章  组播和广播
      12.1  组播
        12.1.1  组播系统
        12.1.2  组播路由
        12.1.3  组播地址
        12.1.4  IGMP
      12.2  组播编程
        12.2.1  编程流程
        12.2.2  组播调试
      12.3  广播
        12.3.1  广播类型
        12.3.2  广播的工作原理
      12.4  广播编程
    第13章  零拷贝
      13.1  传统文件传输
      13.2  零拷贝技术
        13.2.1  mmap内存映射
        13.2.2  pipe
        13.2.3  DMA
      13.3  零拷贝网络编程
        13.3.1  mmap+write
        13.3.2  sendfile
        13.3.3  splice
    第14章  百万并发
      14.1  打开百万个套接字文件
        14.1.1  默认情况
        14.1.2  限制条件
        14.1.3  解除限制
      14.2  建立上百万个网络连接
        14.2.1  分析方法
        14.2.2  单机百万网络连接
      14.3  百万并发常见问题
      14.4  Reactor模型
        14.4.1  单Reactor单线程模型
        14.4.2  单Reactor多线程模型
        14.4.3  主从Reactor多线程模型
        14.4.4  Reactor实战