Home Android 面试题 - 网络篇
Post
Cancel

Android 面试题 - 网络篇

1. TCP 三次握手

  • 第一次握手(SYN):客户端向服务器发送一个带有 SYN(同步)标志的 TCP 报文段。这表示客户端请求建立连接,并发送自己的初始序列号(Sequence Number)。

  • 第二次握手(SYN-ACK):服务器接收到客户端的请求后,会发送一个带有 SYN 和 ACK(确认)标志的 TCP 报文段作为响应。该报文段中的 ACK 字段表示服务器已收到客户端的请求,而 SYN 字段表示服务器也请求建立连接,并发送自己的初始序列号。

  • 第三次握手(ACK):客户端接收到服务器的响应后,会发送一个带有 ACK 标志的 TCP 报文段给服务器。这个报文段是对服务器的 SYN-ACK 的确认,同时也表示客户端可以开始发送数据了。

通过三次握手,客户端和服务器就成功建立了 TCP 连接,并且双方都确认了对方的请求和响应。此后,客户端和服务器之间可以可靠地传输数据。

三次握手的目的是确保双方都具备发送和接收数据的能力,并同步初始序列号,以建立可靠的通信通道。握手过程中的 ACK 和 SYN 标志位的设置,保证了双方对连接请求和确认的明确表达,避免了可能的连接错误和重复连接的问题。有面试官会问到为什么是三次握手而不是两次握手就是这个原因,为了确保双向通信的建立。

This post is licensed under CC BY 4.0 by the author.

Kotlin

Android 面试题 - 架构篇

Comments powered by Disqus.