这份八股,帮我顶住了大厂的技术面-网络编程篇

955 阅读2分钟

本文来源于公众号:刘卡卡

大家好,我是刘卡卡,一名大厂奶爸程序员,持续探索副业中。

在跳槽到大厂的过程中,用思维导图工具整理了下网络编程相关的一些八股文。

现在分享给你,希望对你有点帮助。

04-网络 编程.png

(想获取原思维导图的话,欢迎关注刘卡卡 回复 888 就可)

又或者,你可以访问 www.processon.com/u/5f0ff035f…

  • 网络编程

    • IO复用函数

      • select()

        • 有哪些IO事件

          • 网络通信

            • 分支主题
        • 不足

        • 底层结构

        • 某个套接字准备好可读,表示什么样的事件发生呢

      • poll()

        • API

        • 网络通信

          • 代码

            • 不足
        • 底层结构

          • 子主题
      • epoll()

        • 三个函数

          • 网络通信

            • 分支主题
        • 底层原理

          • epoll_wait()实现

            • epoll_ctl()
        • 边缘触发和水平触发?

      • 概念

        • 适用哪些场合?
        • 有100万个客户端同时与一个服务器进程保持着TCP连接。而每一时刻,通常只有几百上千个TCP连接是活跃的(事实上大部分场景都是这种情况)。如何实现这样的高并发?
    • Reactor

      • fock() exec()

        • fock()

          • 分支主题
        • 写时复制

          • Redis 的Fock 子进程进行AOF重写
      • 为什么会有?

        • 1、PPC 和 TPC 无法支撑高并发场景

          • PPC

            • 优缺点

              • prefork
          • TPC

            • 基本流程

              • 优缺点

                • prethread
        • 2、IO复用技术+线程池

      • 是什么

        • 1、事件类型

          • 2、三个关键角色
      • 分类

        • 单 Reactor 单进程

          • 优缺点

            • 案例:Redis
        • 单 Reactor 多线程

    • IO模型

      • Unix 常见的IO模型

        • 阻塞IO
    • 基本概念

      • 协议栈基础

        • TCP/IP 网络模型

          • 网络包封装原理

            • s
        • Linux 网络收发流程

        • 如何观察网络的性能情况

          • 网络性能指标

            • 工具
        • C10K

      • 【案例】-使用 tcpdump 和 Wireshark 分析网络流量

    • Socket基本函数

      • 服务端

        • 分支主题
      • 客户端

        • 分支主题
      • 阻塞函数说明

        • 整个交互过程

          • 交互图

            • 分支主题
        • 建立连接

          • socket()

          • listen()

            • TCP三次连接,这个listen backLog有什么作用 

              • 未完成连接队列(SYN 队列) 、已完成连接队列(Accpet 队列)
            • TCP服务端套接字编程中,执行完listen后,而没有执行accept,客户端是建立连接么?

          • accept()

            • accept 发生在三次握手的哪一步?
            • 监听套接字和已连接套接字
          • 关闭连接

            • close()

              • close 函数具体是如何关闭两个方向的数据流呢?
              • 客户端调用 close 了,连接是断开的流程是什么?
            • shutdown ()

              • 和close()区别
        • 收发数据

          • write()

            • 发送缓冲区

              • 操作系统内核的发送缓冲区不足以容纳应用程序数据?
          • read()

        • 其他收发数据

          • recv和send
      • 非阻塞函数

        • read() 和 write()

          • 分支主题
        • accept()

        • connect()