面试官问到TCP/IP怎么回答才过关

众所周知,关于TCP/IP,互网网兴起时,就已经跟互联网人的生活息息相关, 那么做为一名前端开发者来讲,对于TCP/IP的知识,是否须要深度理解,做者能够毫无疑问的告诉你,有关TCP/IP的知识,你真的须要知道并深刻了解。前端

对于一位前端开发者来讲,更是有必要了解,如今各大名厂,面试必问,那接下来,咱们就来看看,TCP/IP的哪些知识咱们须要掌握并该知道要怎么回答。面试

问题总结:服务器

面试官:关于tcp/ip你知道哪些?并发

小S:你说具体一些吗?tcp

面试官: osi七层模型与TCP/IP五层模型3d

小S:一张图,就足够说明它们cdn

面试官:说说TCP/IP的三次握手与四次挥手吧

小S:如下是三次握手的描述blog

  • 为了方便描述咱们将主动发起请求的172.16.50.72:65076 主机称为客户端,将返回数据的主机172.16.17.94:8080称为服务器。
  • 第一次握手: 创建链接。客户端发送链接请求,发送SYN报文,将seq设置为0。而后,客户端进入SYN_SEND状态,等待服务器的确认。
  • 第二次握手: 服务器收到客户端的SYN报文段。须要对这个SYN报文段进行确认,发送ACK报文,将ack设置为1。同时,本身还要发送SYN请求信息,将seq为0。服务器端将上述全部信息一并发送给客户端,此时服务器进入SYN_RECV状态。
  • 第三次握手: 客户端收到服务器的ACK和SYN报文后,进行确认,而后将ack设置为1,seq设置为1,向服务器发送ACK报文段,这个报文段发送完毕之后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

小S:四次挥手是这样的:ip

  • 第一次挥手:客户端向服务器发送一个FIN报文段,将设置seq为160和ack为112,;此时,客户端进入 FIN_WAIT_1状态,这表示客户端没有数据要发送服务器了,请求关闭链接;
  • 第二次挥手:服务器收到了客户端发送的FIN报文段,向客户端回一个ACK报文段,ack设置为1,seq设置为112;服务器进入了CLOSE_WAIT状态,客户端收到服务器返回的ACK报文后,进入FIN_WAIT_2状态;
  • 第三次挥手:服务器会观察本身是否还有数据没有发送给客户端,若是有,先把数据发送给客户端,再发送FIN报文;若是没有,那么服务器直接发送FIN报文给客户端。请求关闭链接,同时服务器进入LAST_ACK状态;
  • 第四次挥手:客户端收到服务器发送的FIN报文段,向服务器发送ACK报文段,将seq设置为161,将ack设置为113,而后客户端进入TIME_WAIT状态;服务器收到客户端的ACK报文段之后,就关闭链接;此时,客户端等待2MSL后依然没有收到回复,则证实Server端已正常关闭,客户端也能够关闭链接了。

面试官:接下来再说说,TCP与UDP的区别吧开发

小S:.....

  • 一、TCP面向链接(如打电话要先拨号创建链接);UDP是无链接的,即发送数据以前不须要创建链接
  • 二、TCP提供可靠的服务。也就是说,经过TCP链接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
  • 三、TCP面向字节流,其实是TCP把数据当作一连串无结构的字节流;UDP是面向报文的

例,TCP链接就像是打电话,二者之间必须有一条不间断的通路,数据不到达对方,对方就一直在等待,除非对方直接挂断电话。先说的话先到,后说的后到,有顺序。

  • 四、每一条TCP链接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通讯
  • 五、TCP首部开销20字节;UDP的首部开销小,只有8个字节
  • 六、TCP的逻辑通讯信道是全双工的可靠信道,UDP则是不可靠信道

结语

不要小看这几个问题,虽然是百度一搜,答案千篇一概,可是请问问本身,是否是都可以表述清楚,而且让别人也理解呢,因此,想要过关的小伙伴,加油吧,相信你已经知道该怎回答了。

相关文章
相关标签/搜索