• go语言面试(第一轮)请你说说 TCP 和 UDP 的区别


    题目评价:面试官今天一上来问的第一个问题。这是一个计算机网络的题目,这道题目比较简单(如果不会说明基础比较差,大概率会被毙掉)。因此我总结了一下面试的答题要点和解题思路。

    解题思路:

    要点1: TCP 提供面向连接的可靠传输,UDP 提供面向无连接的不可靠传输。(TCP协议和 UDP 协议都是传输层协议,都是为应用层程序服务,都具有复用(不同的应用层协议可以共用 UDP 协议和 TCP 协议)和分用(将数据报解析之后分发给不同的应用层程序)的功能)。

    要点2:描述TCP和UDP各自的优点和缺点。如表1.(加分)

    要点3:TCP在要求数据准确、对速度没有硬性要求的场景有很好的表现。而 UDP 在很多实时性要求高的场景有很好的表现。(由第一、二点引出的特性引出第三点应用场景)。应用场景如表2.(加分)

    表1

    TCPUDP
    优点可靠、稳定,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。,没有TCP各种机制,少了很多首部信息和重复确认的过程,节省了大量的网络资源。
    缺点慢,效率低,占用系统资源高,在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接。在要求数据准确、对速度没有硬性要求的场景有很好的表现,比如在FTP(文件传输)、HTTP/HTTPS(超文本传输),不可靠不稳定,只管数据的发送不管过程和结果,网络不好的时候很容易造成数据丢失。又因为网络不好的时候不会影响到主机数据报的发送速率,这对很多实时的应用程序很重要,因为像语音通话、视频会议等要求源主机要以恒定的速率发送数据报,允许网络不好的时候丢失一些数据,但不允许太大的延迟

    表2

    TCPUDP
    特性是TCP/IP体系中非常复杂的一个协议,面向连接(需要三次握手四次挥手)、单播(只能端对端的连接)、可靠交付(有大量的机制保护TCP连接数据的可靠性)、全双工通讯(允许双方同时发送信息,也是四次挥手的原由)、面向字节流(不保留数据报边界的情况下以字节流的方式进行传输,这也是长连接的由来。)、头部开销大(最少20字节)面向无连接(不需要三次握手和四次挥手)、尽最大努力交付、面向报文(每次收发都是一整个报文段)、没有拥塞控制不可靠(只管发不管过程和结果)、支持一对一、一对多、多对一和多对多的通信方式、首部开销很小(8字节)
    应用场景FTP(文件传输)、HTTP/HTTPS(超文本传输)语音通话、视频会议等要求源主机要以恒定的速率发送数据报,允许网络不好的时候丢失一些数据,但不允许太大的延迟

     提醒:面试不可能把所有的题目都答上来(很优秀的人除外),因此在面试的时候希望尽可能多的回答上面试官的题目。

  • 相关阅读:
    MyEclipse2019配置TomCat8.0
    前端面试题---事件循环机制和异步编程
    深入剖析 Linux Cgroups 子系统:资源精细管理
    Centos - SSH 服务搭建
    json的简单使用
    MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)(五)
    信息学竞赛初中初赛模拟卷-有答案
    分组背包问题
    .Net添加了引用,仍然提示找不到命名空间
    为何电脑要设置网络掩码?
  • 原文地址:https://blog.csdn.net/MLittlehands/article/details/126871207