腾讯二面 菜的真实。。

今天晚上腾讯二面面试官打来电话了,开局先问我愿不愿意转go
那必然是愿意啊,只要给offer,转汇编我都愿意。。。。。
然后就开始了神仙发问
从系统的角度讲一下线程通信
我:java中有....
别给我扯java,从底层说一说
我。。。。
怎么用udp实现一个tcp
我。。。。这tm能行??
qq怎么保证不重复发送消息
这这。。确认号机制??
不对。今天就到这吧,你有什么要问的?
面试官您好,我就是个弟弟,晚安!

#腾讯#
全部评论
System.out.println("我就是个弟弟,晚安");
点赞 回复 分享
发布于 2019-03-21 21:44
面试官您好,我就是个弟弟,晚安!
点赞 回复 分享
发布于 2019-03-21 21:21
1.从系统层面上线程通信依靠共享内存或者报文和消息队列吧(你要我讲个所以然肯定不会)2.UDP就是个纯净的传输端,重写一遍TCP的三次握手四次挥手(你要我写我肯定不会)3.凭感觉有点像三次握手,client发送消息后server回复一次确认消息,然后client等待server返回结果,不然就重发。总结,遇到这三个问题=面具
点赞 回复 分享
发布于 2019-03-21 21:55
你问他,为什么下凡?
3 回复 分享
发布于 2019-03-22 08:43
udp做可靠通信我也被问过……然后答了一个封私有协议做确认,面试官不是很满意,不过应该是你要的答案?我那个正解是应用层做确认重发= =然后你的第三题,其实就是分布式里面的幂等性问题,楼主可以去查查看
点赞 回复 分享
发布于 2019-03-22 08:11
是你啊,nettyrpc看的如何?至于这几道题,操作系统层面的线程通信共享内存,信号量,应该跟进程通信差不多吧,用udp实现tcp,这个学计网的时候就做过实验,无非就是每个消息都加上一个系列号,接收端保持着上一个已经接收的系列号等着下面的系列号,发送端发送一个消息带上序列号并且等待ack,设置超时重传,有人说三次握手四次握手这个应该不相关吧,毕竟重点在可靠数据传输而不是建立连接,这方面可以看看tcp的滑动窗口协议。QQ不发送重复消息,这个应该也是跟ack跟序列号相关的,我发给你一个消息,期待收到ack,没收到就重传,你发送的ack如果丢失了收到重复消息了,那就丢掉消息,再发ack,怎么确定是重复消息呢,还是系列号来定
点赞 回复 分享
发布于 2019-03-22 12:03
udp做tcp的话还是可以的,他应该想问的是ack确认和gbn重传机制吧。
点赞 回复 分享
发布于 2019-03-22 08:41
我…我做go的,腾讯三面每一面都会问我愿意不愿意转java…
点赞 回复 分享
发布于 2019-03-22 00:16
简单粗暴
点赞 回复 分享
发布于 2019-03-21 22:43
xswl
点赞 回复 分享
发布于 2019-03-21 21:45
晚安。
点赞 回复 分享
发布于 2019-03-21 21:30
真实
点赞 回复 分享
发布于 2019-04-07 07:59
1 线程共享内存地址空间,所以本身就在同一媒介下,实现同学比较方便,只需要一个共享变量即可 2 udp实现tcp很简单,就是给面试官说一下tcp有什么保证可靠性的机制,都加到udp即可 3 早期的QQ其实是udp传输,现在的可能是tcp,tcp保证报文去重是通过tcp报头里面32位序号来实现去重的
点赞 回复 分享
发布于 2019-04-01 11:29
1、线程的通信的主要目的是线程同步,若从系统层面回答应该往锁机制、信号量回答。 2、用udp实现tcp,那要看实际场景的需求,在实时性和可靠性之间做平衡。所以可以在udp基础上选择性的实现序列号机制、确认机制、流量控制机制、拥塞控制机制等。 3、如何保证QQ不重复发送消息,我的理解就是同一条消息不能在对方的窗口中显示多次,而不是说不允许消息重发。可以在为条消息配一个唯一的id,接受方在接受消息的时候用id查询是否接受过,若之前接受过则丢弃。
点赞 回复 分享
发布于 2019-03-23 16:25
sout 弟中弟
点赞 回复 分享
发布于 2019-03-22 15:49
楼主一面到二面多久啊
点赞 回复 分享
发布于 2019-03-22 14:08
Orz,神仙下凡
点赞 回复 分享
发布于 2019-03-22 12:58
太狠了。。。udp实现tcp是讲解一下思路就够了吗
点赞 回复 分享
发布于 2019-03-22 01:28
请问是19届春招还是20届实习?   udp转tcp的问题 去年秋招我也被问到 难道说也有题库?
点赞 回复 分享
发布于 2019-03-22 01:01
有趣
点赞 回复 分享
发布于 2019-03-22 00:15

相关推荐

从输入URL到页面加载发生了什么:总体来说分为以下几个过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束。简述了一下各个过程的输入输出作用:以下是对从输入 URL 到页面加载各过程的输入、输出或作用的一句话描述:DNS 解析: 输入:用户在浏览器地址栏输入的域名(如 www.example.com)。输出:对应的 IP 地址(如 192.168.1.1)。作用:将易于记忆的域名转换为计算机能够识别和用于网络通信的 IP 地址,以便浏览器与目标服务器建立连接。TCP 连接: 输入:浏览器获得的服务器...
明天不下雨了:参考一下我的说法: 关键要讲出输入网址后涉及的每一个网络协议的工作原理和作用: 涉及到的网络协议: HTTP/HTTPS协议->DNS协议->TCP协议->IP协议->ARP协议 面试参考回答: 第一次访问(本地没有缓存时): 一般我们在浏览器地址栏输入的是一个域名。 浏览器会先解析 URL、解析出域名、资源路径、端口等信息、然后构造 HTTP 请求报文。浏览器新开一个网络线程发起HTTP请求(应用层) 接着进行域名解析、将域名解析为 IP 地址 浏览器会先检查本地缓存(包括浏览器 DNS 缓存、操作系统缓存等)是否已解析过该域名 如果没有、则向本地 DNS 服务器请求解析; 本地服务器查不到会向更上层的 DNS 服务器(根域名服务器->顶级域名服务器->权威域名服务器询问)递归查询 最终返回该域名对应的 IP 地址。(应用层DNS协议)DNS 协议的作用: 将域名转换为 IP 地址。 由于 HTTP 是基于 TCP 传输的、所以在发送 HTTP 请求前、需要进行三次握手、在客户端发送第一次握手的时候、( 浏览器向服务器发送一个SYN(同步)报文、其中包含客户端的初始序列号。TCP头部设置SYN标志位、并指定客户端端口 同时填上目标端口和源端口的信息。源端口是浏览器随机生成的、目标端口要看是 HTTP 还是 HTTPS、如果是 HTTP 默认目标端口是 80、如果是 HTTPS 默认是 443。(传输层) 然后到网络层:涉及到(IP协议) 会将TCP报文封装成IP数据包、添加IP头部,包含源IP地址(浏览器)和目标IP地址(服务器)。IP 协议的作用: 提供无连接的、不可靠的数据包传输服务。 然后到数据链路层、会通过 ARP 协议、获取目标的路由器的 MAC 地址、然后会加上 MAC 头、填上目标 MAC 地址和源 MAC 地址。 然后到物理层之后、直接把数据包、转发给路由器、路由器再通过下一跳、最终找到目标服务器、然后目标服务器收到客户的 SYN 报文后,会响应第二次握手。 当双方都完成三次握手后、如果是 HTTP 协议、客户端就会将 HTTP 请求就会发送给目标服务器。如果是 HTTPS 协议、客户端还要和服务端进行 TLS 四次握手之后、客户端才会将 HTTP 报文发送给目标服务器。 目标服务器收到 HTTP 请求消息后、就返回 HTTP 响应消息、浏览器会对响应消息进行解析渲染、呈现给用户
点赞 评论 收藏
分享
评论
26
62
分享

创作者周榜

更多
牛客网
牛客企业服务