资讯专栏INFORMATION COLUMN

【前端刷题笔记02】字节跳动2019面试题

amc / 2926人阅读

摘要:为什么状态需要经过最大报文段生存时间才能返回到状态虽然按道理,四个报文都发送完毕,我们可以直接进入状态了,但是我们必须假象网络是不可靠的,有可以最后一个丢失。所以状态就是用来重发可能丢失的报文。

1、TCP的三次握手和四次挥手 1.1 三次握手:

客户端请求 -> 服务器响应 -> 客户端确认收到响应,建立连接(保证网络正常)

1.2 四次挥手

客户端请求 -> 服务器响应该请求 -> 服务器确认数据传送完毕, 发送关闭连接的响应 -> 客户端发送响应,在2MSL内未收到回复则视为服务器端已收到该响应并关闭连接接口,客户端关闭连接。

1.3 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

2、TCP和UDP的区别、比较
UDP TCP
是否连接 无连接 面向连接
是否可靠 不可靠传输,不使用流量控制和拥塞控制 可靠传输,使用流量控制和拥塞控制
连接对象个数 支持一对一,一对多,多对一和多对多交互通信 只能是一对一通信
传输方式 面向报文 面向字节流
首部开销 首部开销小,仅8字节 首部最小20字节,最大60字节
适用场景 适用于实时应用(IP电话、视频会议、直播等) 适用于要求可靠传输的应用,例如文件传输
3、链表反转

链表反转有两种方法:

就地反转法

//就地反转法
interface ListNode {
    value: string;
    next: ListNode;
}
function reverseList1(head:ListNode) {
    if (head == null)
        return head;
    let dummy = null;
    dummy.next = head;
    let prev = dummy.next;
    let pCur = prev.next;
    while (pCur != null) {
        prev.next = pCur.next;
        pCur.next = dummy.next;
        dummy.next = pCur;
        pCur = prev.next;
    }
    return dummy.next;
}

头节点插入法

interface ListNode {
    value: string;
    next: ListNode;
}
function reverseList2(head: ListNode) {
    let dummy = null;
    let pCur = head;
    while (pCur != null) {
        ListNode pNex = pCur.next;
        pCur.next = dummy.next;
        dummy.next = pCur;
        pCur = pNex;
    }
    return dummy.next;
}

参考连接

TCP三次握手和四次挥手过程

TCP和UDP比较

单链表反转总结篇

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109410.html

相关文章

  • 前端笔记01】 - 字节跳动2019春招面试

    摘要:某个请求任务耗时严重,不会影响到其它连接的正常执行如何实现长连接 1、sleep函数该如何实现的 sleep函数,将程序执行挂起一段时间,阻塞程序的运行 ES6方案: function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function test() { con...

    马忠志 评论0 收藏0
  • 前端面试字节跳动2019校招面经 - 前端开发岗(一)

    摘要:这是一次失败的面经但是吃一堑才能长一智不是吗字节跳动校招面经前端开发岗一介绍以及项目经历吧啦吧啦此处省略字面试官会从项目经历入手,考察项目中遇到的难题,以及解决方法,强调个人的努力以及在解决过程中扮演的角色是主导还是参与。 这是一次失败的面经……但是吃一堑才能长一智不是吗? 字节跳动2019校招面经 - 前端开发岗(一) 1. 介绍以及项目经历 吧啦吧啦……此处省略10000字 面试官...

    BigTomato 评论0 收藏0
  • 2019春招前端实习面经总结

    摘要:春招前端实习面试记录从就开始渐渐的进行复习,月末开始面试,到现在四月中旬基本宣告结束。上海爱乐奇一面盒模型除之外的面向对象语言继承因为是视频面试,只记得这么多,只感觉考察的面很广,前端后端移动端都问了,某方面也有深度。 春招前端实习面试记录(2019.3 ~ 2019.5) 从2019.1就开始渐渐的进行复习,2月末开始面试,到现在四月中旬基本宣告结束。在3月和4月经历了无数次失败,沮...

    atinosun 评论0 收藏0
  • 字节跳动Python后端开发岗,已拿offer

    摘要:今年岁,毕业之后进入一家小型的互联网公司工作,名字就不说了,算是熟知的,在这家公司呆了两年,直至今年才有了跳槽的想法。在众多大厂中,最终选择了字节跳动。这样的调整,一方面对自己学习有帮助,另一方面让自己应对面试更从容,更顺利。 ...

    JasonZhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<