V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3kkkk
V2EX  ›  程序员

程序员面试时网络相关会问哪些问题

  •  
  •   3kkkk · 2021-12-24 14:58:43 +08:00 · 3985 次点击
    这是一个创建于 1064 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1 、浏览打开百度都发生了什么?

    2 、ip 的作用,ip 掩码的作用及分段,怎样区分公网 IP 和内网 IP 。

    3 、tcp 协议的三次握手,四次挥手

    4 、nat,dhcp,dns,VPN 是什么

    5 、http 、https 描述及区别

    6 、tcp/ip 协议

    8 、get 和 post 请求有哪些区别

    9 、进程线程区别

    39 条回复    2021-12-28 15:34:49 +08:00
    whoosy
        1
    whoosy  
       2021-12-24 15:00:54 +08:00
    这常识吧
    deplivesb
        2
    deplivesb  
       2021-12-24 15:02:57 +08:00
    那种级别的程序员面试?一般问这种的都是校招的吧
    koor
        3
    koor  
       2021-12-24 15:09:24 +08:00
    前端我一般会问 https 默认端口号是多少,能答上的寥寥无几
    mainjzb
        4
    mainjzb  
       2021-12-24 15:11:02 +08:00
    有被问过 UDP 的 MTU
    3kkkk
        5
    3kkkk  
    OP
       2021-12-24 15:13:22 +08:00
    5 年以下都适用尤其 tcp 的握手和挥手干掉一半面试。还有 ip 保留内网段,好多人直接就是懵比的状态。
    LANB0
        6
    LANB0  
       2021-12-24 15:28:16 +08:00
    @3kkkk 大学计算机基础好好听也不至于这么惨
    FantaMole
        7
    FantaMole  
       2021-12-24 15:40:14 +08:00
    程序员面试,三次握手四次挥手居然能干掉五年以下一半人。这个问题是问到什么级别的?是具体到 TCP 报文内容,加上每一次传输 ACK/SYN/FIN 和 ack number 的变化这种么。如果是这种,是不是有点过于八股了,我网络工程专业的,我还得看一看书先

    网络相关让我问,我可能就问问 TCP 是怎么保证通讯可靠性的,看对方大致讲几点,然后挑几个问问是怎么实现的,比如滑动窗口,比如三次握手,比如拥塞控制。如果说不知道,那我还会给他讲讲比如说拥塞控制大致要实现避免因为网络拥堵出现的丢包情况,让他设计一个方案,来实现这个目标,看看要怎么实现。其实方案是不是真的能实现,不太重要,主要是看看设计功能的思路和工程能力
    securityCoding
        8
    securityCoding  
       2021-12-24 15:49:05 +08:00
    握手挥手,状态变化,标准的八股
    MakHoCheung
        9
    MakHoCheung  
       2021-12-24 15:49:46 +08:00
    @FantaMole 设计方案进行拥塞控制?突然来这么个问题我是完全没有思路,把慢开始、拥塞避免简化一下算不算呢,😂
    FantaMole
        10
    FantaMole  
       2021-12-24 16:43:11 +08:00
    @MakHoCheung #9 当然算,你拿 TCP 的实现算法来解题当然是对的

    换个问题,从一些大部分人都接触过一点的知识问起:假设我要从网络中或者从大量文件中,持续加载数据,简单处理过后,这些数据要落地到磁盘。而此时磁盘写入速度比较慢,持续加载数据的话,会爆内存。那我要怎么设计让数据加载速度尽量快的同时保证不会内存溢出

    这个问题可以从很多方面入手来解决,当然,一般来说真出了这种情况,大家都是从瓶颈入手,解决数据落地的速度问题。但如果你从数据加载方面来解决,当成拥塞控制问题来思考也是可以的
    linglin0924
        11
    linglin0924  
       2021-12-24 16:46:26 +08:00
    @koor 有这么夸张吗
    seanxx
        12
    seanxx  
       2021-12-24 16:54:55 +08:00
    梦回大学
    darknoll
        13
    darknoll  
       2021-12-24 17:09:33 +08:00
    端口几个字节,ipv4 和 ipv6 几个字节,mac 地址几个字节,MTU 、MSS 大小啥的
    superfatboy
        14
    superfatboy  
       2021-12-24 17:21:53 +08:00
    get 和 post 请求有哪些区别 这个 真的各种解答,我到现在也没搞清出
    duduaba
        15
    duduaba  
       2021-12-24 17:34:51 +08:00
    应届生八股文面试?
    Itoktsnhc
        16
    Itoktsnhc  
       2021-12-24 17:39:36 +08:00
    你们面试别人别人反问你答案是什么你知道吗?
    gefranks
        17
    gefranks  
       2021-12-24 17:45:06 +08:00 via iPhone
    大部分都是热身的常识题 要是这些都答不出 进一步的就问不下去了啊
    dany813
        18
    dany813  
       2021-12-24 17:45:27 +08:00
    背起来
    psyche
        19
    psyche  
       2021-12-24 17:46:41 +08:00   ❤️ 1
    @superfatboy
    Get 应当幂等, Post 不是.
    网上很多答案都 get 不到点, 很多面试官自己也很糊涂.
    zjj19950716
        20
    zjj19950716  
       2021-12-24 17:54:35 +08:00
    为什么以太网的 MAC 帧最小长度为 64 字节
    exceldream
        21
    exceldream  
       2021-12-24 17:55:01 +08:00 via Android
    确实常识的东西能理解消化也不容易了
    libook
        22
    libook  
       2021-12-24 18:05:44 +08:00
    Web 开发相关岗位我会问 1 和 5 ,视情况可能会问 9 ,其余基本用不上。

    话说 GET 和 POST 也就只有 Method 名称不一样,基本没啥区别吧。
    Jooooooooo
        23
    Jooooooooo  
       2021-12-24 18:07:27 +08:00
    多问为什么是更好的问题, 为什么需要 https, https 解决什么问题, 为什么能解决.
    MoYi123
        24
    MoYi123  
       2021-12-24 18:08:44 +08:00
    @libook 对服务器来说没什么区别, 对浏览器来说就有很多细节了
    dantangfan
        25
    dantangfan  
       2021-12-24 18:09:08 +08:00
    就很惨,进去就写个 CRUD API 而已,面试的时候要背这么多东西
    yin1999
        26
    yin1999  
       2021-12-24 18:13:41 +08:00
    @libook #22 GET 不能带 body
    janus77
        27
    janus77  
       2021-12-24 18:18:20 +08:00
    作为客户端的人员,基本上就是
    各种握手挥手等基本原理
    怎么优化网络速度
    加密和安全相关
    如果是特殊行业背景,比如多文件下载管理、多媒体推拉流、IM 聊天等,会问的深一些。
    deplivesb
        28
    deplivesb  
       2021-12-24 18:22:43 +08:00
    @libook 在设计思路上的区别,GET 的是幂等的,而 POST 不是,楼上有人说 GET 不能带 body ,@yin1999 简单写个接口,curl 请求一下,wireshark 抓个包验证一下 GET 能不能有 body
    deplivesb
        29
    deplivesb  
       2021-12-24 18:23:32 +08:00
    @yin1999 GET 没有规定不能有 body 哈,建议自己写个接口 curl 请求一下,抓个包看下有没有 body
    Kobayashi
        30
    Kobayashi  
       2021-12-24 21:34:35 +08:00 via Android
    @FantaMole 同感。握个 JB 的手,根本没有人让你控制手动握手。代码里直接调用 socket 对象上接口完成握手。我是做 Web 的,唯一见到的需要用到 TCP 场景是在底层 Web 服务器里,有些人情况需要 TCP_NODELAY 制关了把数据刷掉,之后再把拥塞控制打开。但这也是 Web 服务器的事情,业务上也不用管。
    gengchun
        31
    gengchun  
       2021-12-24 22:03:00 +08:00
    @deplivesb 其实是 RFC http/1.1 对没有定义 Get 方法的 body 。但最早的一版还是提了 Server 应该忽略 body ;后来的 RFC 也提示如果存在 body ,较早的 server 实现可能对其不兼容。

    保守一点看,说不能加 body 不算错。如果是实现 server 的话这个可以问一下;但大多数人只是做客户端的,问这个意义不大。
    Danlianbiao
        32
    Danlianbiao  
       2021-12-24 22:52:22 +08:00
    握手挥手的,属于是面试造航母;对于网络问题,最简单有效的手段就是抓包和正常报文对比,我估计问这些的人,抓过包,打开看过的聊聊无几
    buliugu
        33
    buliugu  
       2021-12-24 23:02:57 +08:00
    问网络延迟,从 cpu 指令到 L1L2 缓存,从内存到硬盘,从局域网到上海发往纽约
    wsseo
        34
    wsseo  
       2021-12-25 01:58:44 +08:00
    这些基本的问题,很多开发人员不清楚
    xiaofan305
        35
    xiaofan305  
       2021-12-25 09:46:15 +08:00 via iPhone   ❤️ 1
    直接问,墙通过哪些技术,实现了让我们无法访问 v 站和油管的!
    charlie21
        36
    charlie21  
       2021-12-25 11:46:49 +08:00
    hhhh
    superfatboy
        37
    superfatboy  
       2021-12-25 13:56:50 +08:00
    @yin1999 get 可以带,只是规范不让带,自己写接口,也能拿到 body 的数据
    3kkkk
        38
    3kkkk  
    OP
       2021-12-27 11:01:56 +08:00
    @FantaMole 就是简单描述下发送方接收方交互流程。别自己抓个包看着都迷茫,ip 也是如此。 现实中前后端联调,接口不通为什么不通,都是茫然甩锅而不是做下简单的排查。
    yin1999
        39
    yin1999  
       2021-12-28 15:34:49 +08:00 via Android
    @superfatboy 恩,我知道只是规范不让带,实际的 HTTP 请求只是 http message 里面的字符串不一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:33 · PVG 18:33 · LAX 02:33 · JFK 05:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.