• TCP/IP 相关知识点与面试题集


    • 第一部分:TCP/IP相关知识点
    • 第二部分:常见面试题
      • TCP协议和UDP协议的区别是什么
        • TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。而UDP是无连接的
        • TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到。
        • TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节。
        • TCP有流量控制和拥塞控制,UDP没有,网络拥堵不会影响发送端的发送速率
        • TCP是一对一的连接,而UDP则可以支持一对一,多对多,一对多的通信。
        • TCP面向的是字节流的服务,UDP面向的是报文的服务。
        • TCP介绍和UDP介绍
      • 请详细介绍一下TCP协议建立连接和终止连接的过程?
        • 助于理解的一段话
        • 两幅图(来源):
          • 建立连接:三次握手
          • image
          • 关闭连接:四次挥手
          • image
      • 三次握手建立连接时,发送方再次发送确认的必要性?
          • 主要是为了防止已失效的连接请求报文段突然又传到了B,因而产生错误。假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络结点长时间滞留了,一直延迟到连接释放以后的某个时间才到达B,本来这是一个早已失效的报文段。但B收到此失效的连接请求报文段后,就误认为是A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了,这样一直等待A发来数据,B的许多资源就这样白白浪费了。
      • 四次挥手释放连接时,等待2MSL的意义?
          • 第一,为了保证A发送的最有一个ACK报文段能够到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN和ACK报文段的确认。B会超时重传这个FIN和ACK报文段,而A就能在2MSL时间内收到这个重传的ACK+FIN报文段。接着A重传一次确认。
          • 第二,就是防止上面提到的已失效的连接请求报文段出现在本连接中,A在发送完最有一个ACK报文段后,再经过2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。
      • 常见的应用中有哪些是应用TCP协议的,哪些又是应用UDP协议的,为什么它们被如此设计?
        • 以下应用一般或必须用udp实现?
          • 多播的信息一定要用udp实现,因为tcp只支持一对一通信。
          • 如果一个应用场景中大多是简短的信息,适合用udp实现,因为udp是基于报文段的,它直接对上层应用的数据封装成报文段,然后丢在网络中,如果信息量太大,会在链路层中被分片,影响传输效率。
          • 如果一个应用场景重性能甚于重完整性和安全性,那么适合于udp,比如多媒体应用,缺一两帧不影响用户体验,但是需要流媒体到达的速度快,因此比较适合用udp
          • 如果要求快速响应,那么udp听起来比较合适
          • 如果又要利用udp的快速响应优点,又想可靠传输,那么只能考上层应用自己制定规则了。
          • 常见的使用udp的例子:ICQ,QQ的聊天模块。
        • 以qq为例的一个说明(转载自知乎
          • 登陆采用TCP协议和HTTP协议,你和好友之间发送消息,主要采用UDP协议,内网传文件采用了P2P技术。总来的说:
            1.登陆过程,客户端client 采用TCP协议向服务器server发送信息,HTTP协议下载信息。登陆之后,会有一个TCP连接来保持在线状态。
            2.和好友发消息,客户端client采用UDP协议,但是需要通过服务器转发。腾讯为了确保传输消息的可靠,采用上层协议来保证可靠传输。如果消息发送失败,客户端会提示消息发送失败,并可重新发送。
            3.如果是在内网里面的两个客户端传文件,QQ采用的是P2P技术,不需要服务器中转。

            image

    • 第三部分:相关协议

    参考1:常见的TCP/IP问题

  • 相关阅读:
    通过静态广播监听网络变化,在通过回调通知
    支付宝九宫格
    toolBar
    QQ发送位置(高德地图)
    聊天消息 左右item
    Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
    判断软键盘是否弹出 并且隐藏
    Solve Longest Path Problem in linear time
    Why longest path problem doesn't have optimal substructure?
    [leetcode] Reorder List
  • 原文地址:https://www.cnblogs.com/obama/p/3292335.html
Copyright © 2020-2023  润新知