温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

发布时间:2021-10-13 09:14:11 来源:亿速云 阅读:173 作者:iii 栏目:编程语言

这篇文章主要介绍“2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些”,在日常操作中,相信很多人在2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.先看一天面试的经验

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2.什么是网络编程

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.网络编程中两个主要的问题

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

4.网络协议是什么

在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。

5.为什么要对网络协议分层

  • 简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。

  • 灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。

  • 易于实现和维护。

  • 促进标准化工作。分开后,每层功能可以相对简单地被描述

6.计算机网络体系结构

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

TCP/IP参考模型

TCP/IP四层协议(数据链路层、网络层、传输层、应用层)

  • 应用层 应用层最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,TELNET等。

  • 传输层 建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。

  • 网络层 本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。

  • 数据链路层 通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的 硬件 和软件加到物理线路,这样就构成了数据链路,

1 TCP / UDP

1.1 什么是TCP/IP和UDP

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.2 TCP与UDP区别:

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.3 TCP和UDP的应用场景:

对某些实时性要求比较高的情况使用UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失的情况

1.4 形容一下TCP和UDP

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.5 运行在TCP 或UDP的应用层协议分析。

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.5.1 什么是ARP协议 (Address Resolution Protocol)?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.5.2 什么是NAT (Network Address Translation, 网络地址转换)?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.5.3 从输入址到获得页面的过程?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.6 TCP的三次握手

1.6.1 什么是TCP的三次握手

在网络数据传输中,传输层协议TCP是要建立连接的可靠传输,TCP建立连接的过程,我们称为三次握手。

1.6.2 三次握手的具体细节

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.6.3 用现实理解三次握手的具体细节

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.6.4 建立连接可以两次握手吗?为什么?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.6.5 可以采用四次握手吗?为什么?

这个肯定可以。三次握手都可以保证连接成功了,何况是四次,但是会降低传输的效率。

1.6.6 第三次握手中,如果客户端的ACK未送达服务器,会怎样?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.6.7 如果已经建立了连接,但客户端出现了故障怎么办?

服务器每收到一次客户端的请求后都会重新复位一个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

1.6.8 初始序列号是什么?

TCP连接的一方A,随机选择一个32位的序列号(Sequence Number)作为发送数据的初始序列号(Initial Sequence Number,ISN),比如为1000,以该序列号为原点,对要传送的数据进行编号:1001、1002...三次握手时,把这个初始序列号传送给另一方B,以便在传输数据时,B可以确认什么样的数据编号是合法的;同时在进行数据传输时,A还可以确认B收到的每一个字节,如果A收到了B的确认编号(acknowledge number)是2001,就说明编号为1001-2000的数据已经被B成功接受。

1.7 TCP的四次挥手

1.7.1 什么是TCP的四次挥手

在网络数据传输中,传输层协议断开连接的过程我们称为四次挥手

1.7.2 四次挥手的具体细节

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.7.3 用现实理解三次握手的具体细节TCP的四次挥手

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

1.7.4 为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什么)?

因为服务器收到客户端断开连接的请求时,可能还有一些数据没有发完,这时先回复ACK,表示接收到了断开连接的请求。等到数据发完之后再发FIN,断开服务器到客户端的数据传送。

1.7.5 如果第二次挥手时服务器的ACK没有送达客户端,会怎样?

客户端没有收到ACK确认,会重新发送FIN请求。

1.7.6 客户端TIME_WAIT状态的意义是什么?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2 Socket

2.1 什么是Socket

  • 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

  • 但是,Socket所支持的协议种类也不光TCP/IP、UDP,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。

  • socket连接就是所谓的长连接,客户端和服务器需要互相连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉的,但是有时候网络波动还是有可能的

  • Socket偏向于底层。一般很少直接使用Socket来编程,框架底层使用Socket比较多,

2.2 socket属于网络的那个层面

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2.3 Socket通讯的过程

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2.4 TCP协议Socket代码示例:

先运行服务端,在运行客户端 ,

  1. 服务端:

package com.test.io; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream;

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2.5 UDP协议Socket代码示例:

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2.6 Socket的常用类

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3. HTTP

3.1什么是Http协议?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.2 Socket和http的区别和应用场景

  • Socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;

  • Socket适用场景:网络游戏,银行持续交互,直播,在线视屏等。

  • http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断开等待下次连接

  • http适用场景:公司OA服务,互联网服务,电商,办公,网站等等等等

3.3 什么是http的请求体?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.4 http的响应报文有哪些?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.5 http和https的区别?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.6 HTTPS工作原理

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.7 一次完整的HTTP请求所经历几个步骤?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.8 常用HTTP状态码是怎么分类的,有哪些常见的状态码?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.9 Http协议中有那些请求方式

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.10 GET方法与POST方法的区别

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.11 http版本的对比

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.12 什么是对称加密与非对称加密

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

3.13 cookie和session对于HTTP有什么用?

2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些

到此,关于“2021最新版TCP,UDP,Socket,Http的网络编程面试题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI