0

    测试人面试 常被问到的计算机网络题,高薪回答模板来了

    2023.06.06 | admin | 135次围观

    表示层: 数据的表示、安全、压缩的格式;

    会话层: 建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话

    传输层:定义传输数据的协议端口号,以及流控和差错校验。协议有:TCP UDP 协议。

    网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IP(IPV4 IPV6)

    数据链路层: 建立逻辑连接、进行硬件地址寻址功能。将比特组合成字节进而组合成帧,用 MAC 地址访问介质,错误发现但不能纠正。

    物理层: 建立、维护、断开物理连接。

    Q2. TCP 协议的三次握手过程?

    A

    TCP 协议要建立连接的时候,需要经历三次握手的过程:

    第一次握手: 是客户端向服务器发起的,用来申请建立连接的,这个报文中的 SYN 标志位标记为 1,所以我们也叫作 SYN 包;

    第二次握手:是服务器回复客户端的服务器内部错误的状态码是,用来确认并接受连接请求的,这个报文中的 SYN 位和 ACK 位都标记为 1,所以叫做 SYN-ACK 报文;

    第三次握手:仍然是客户端发给服务器的,用来确认服务器的回复消息,这个报文中的 ACK 标志位标记为 1,所以我们也叫作 ACK 包。

    这就是 TCP 协议的三次握手过程。

    Q3. 有了解 TCP 握手是握几次吗?为什么要握三次手?

    A

    3 次。

    客户端发送请求建立连接的数据包可能会滞留在网络中,等到后续这个连接断开之后再次到达服务器,那么服务器会发送消息告诉客户端可以发送消息,但是客户端不会理会服务器也不会发送消息,服务器端处于等待状态,会造成资源浪费

    Q4. TCP 协议的 4 次挥手?

    A

    TCP 协议完成了数据发送之后,就会断开连接,此时就需要经历四次挥手的过程:

    第一次挥手:是客户端向服务器发起的,用来申请断开连接的服务器内部错误的状态码是,这个报文中的 FIN 标志位标记为 1,所以我们也叫作 FIN 包;

    第二次挥手:是服务器回复客户端的,用来确认客户端的上一个断开连接请求的,所以是一个 ACK 报文;

    第三次挥手:仍然是服务器发给客户端的,用来告知客户端服务器的数据发送完毕了,需要断开连接;这个报文中的 FIN 标志位标记为 1,所以也是一个 FIN 包。

    第四次挥手:是客户端回复服务器的,确认服务器的上一个断开连接请求,所以也是一个 ACK 报文;

    这就是 TCP 协议的四次挥手过程。

    Q5. 为什么握手需要三次,挥手却需要四次呢?

    A

    三次握手是 TCP 协议建立连接的过程,建立连接,我只需要确认一下你在我也在就好了啊,三次握手够了;

    但是四次挥手是 TCP 协议是为了断开连接的,所以需要确保我既结束发送数据,也结束接收数据;开始客户端先结束发送并告知服务器,服务器确认后就结束接收了;这两次挥手完成后,客户端还在接收数据哦,服务器也还在发送;所以需要服务器也发送一次 FIN 包,告知我也结束数据发送了,客户端确认后,才双方都关闭发送和接收数据通道,所以必须要四次~

    Q6. tcp 和 udp 的区别?

    A

    TCP 协议和 UDP 协议都是传输层的两个协议:它们的区别主要有如下 3 个方面:

    第一:TCP 是面向连接,就像打电话要先拨号建立连接一样,而 UDP 是无连接的,即发送数据之前不需要建立连接。

    第二:TCP 可以提供可靠的服务,能保证数据传输无差错,不丢失,不重复,且按序到达;而 UDP 协议只是尽最大努力交付,即不保证可靠交付。

    第三:因为 TCP 以上两个特点,所以对应传输效率相对较低,而 UDP 效率高,所以一些注重速度而不在乎的丢包的场景,会选择用 UDP 协议,比如 IP 电话,流媒体等。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论