目录

前言

1.先看一天面试的经验:

2.什么是网络编程

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

4.网络协议是什么

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

6.计算机网络体系结构

TCP/IP参考模型

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

1 TCP / UDP

1.1 什么是TCP/IP和UDP

1.2 TCP与UDP区别:

1.3 TCP和UDP的应用场景:

1.4 形容一下TCP和UDP

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

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

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

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

1.6 TCP的三次握手

1.6.1 什么是TCP的三次握手

1.6.2 三次握手的具体细节

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

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

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

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

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

1.6.8 初始序列号是什么?

1.7 TCP的四次挥手

1.7.1 什么是TCP的四次挥手

1.7.2 四次挥手的具体细节

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

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

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

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

2 Socket

2.1 什么是Socket

2.2 socket属于网络的那个层面

2.3 Socket通讯的过程

2.4 TCP协议Socket代码示例:

2.5 UDP协议Socket代码示例:

2.6 Socket的常用类

3. HTTP

3.1什么是Http协议?

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

3.3 什么是http的请求体?

3.4 http的响应报文有哪些?

3.5 http和https的区别?

3.6 HTTPS工作原理

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

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

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

3.10 GET方法与POST方法的区别

3.11 http版本的对比

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

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

最后


前言

网络通讯在系统交互中是必不可少的一部分,无论是职场面试还是工作中都是绕不过去的,本节我们来谈谈 Java 网络编程中的一些知识和网络编程面试题。

小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】

完整版Java面试题地址:2021最新面试题合集集锦。

序号 专题 内容 链接地址
1 中间件 【金三银四】Java中间件面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/114002362
2 微服务 【金三银四】Java微服务面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/113923549
3 并发编程 【金三银四】Java并发编程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/113895576
4  Java基础 【金三银四】Java基础知识面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115146056
5 Spring Boot 【金三银四】Spring Boot面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115186811
6  Redis 【金三银四】Redis面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115188010
7  Spring MVC 【金三银四】Spring MVC面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115220638
8 Spring Cloud 【金三银四】Spring Cloud面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115220987
9 MySQL优化 【金三银四】MySQL优化面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115254620
10 JVM 【金三银四】JVM性能调优面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115283079
11 Linux 【金三银四】Linux面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115283583
12 Mybatis 【金三银四】Mybatis面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115285732
13 网络编程 【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115464896
14 设计模式 【金三银四】设计模式面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115466449
15 大数据 金三银四】大数据面试题100道(2021最新版) https://blog.csdn.net/SQY0809/article/details/115484939
16 Tomcat 【金三银四】Tomcat面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115486648
17 多线程 【金三银四】多线程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115487212
18 Nginx 【金三银四】Nginx_BIO_NIO_AIO面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115488446
19 memcache 【金三银四】memcache面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115494213
20 java异常 【金三银四】java异常面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115530401
21 Java虚拟机 【金三银四】Java虚拟机面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115532365
22 Java集合 【金三银四】Java集合面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115599284
23 Git常用命令 【金三银四】Git常用命令(2021最新版) https://blog.csdn.net/SQY0809/article/details/115602390
24 Elasticsearch 【金三银四】Elasticsearch面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115604293
25 Dubbo 【金三银四】Dubbo面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115605560

1.先看一天面试的经验:

2.什么是网络编程

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

4.网络协议是什么

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

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

  • 简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。
  • 灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。
  • 易于实现和维护。
  • 促进标准化工作。分开后,每层功能可以相对简单地被描述

6.计算机网络体系结构

TCP/IP参考模型

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

  • 1. 应用层 应用层最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,TELNET等。
  • 2. 传输层 建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
  • 3. 网络层 本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
  • 4. 数据链路层 通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的 硬件 和软件加到物理线路,这样就构成了数据链路,

1 TCP / UDP

1.1 什么是TCP/IP和UDP

1.2 TCP与UDP区别:

1.3 TCP和UDP的应用场景:

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

1.4 形容一下TCP和UDP

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

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

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

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

1.6 TCP的三次握手

1.6.1 什么是TCP的三次握手

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

1.6.2 三次握手的具体细节

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

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

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

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

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

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 四次挥手的具体细节

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

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

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

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

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

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

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属于网络的那个层面

2.3 Socket通讯的过程

2.4 TCP协议Socket代码示例:

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

1. 服务端:

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

2.5 UDP协议Socket代码示例:

2.6 Socket的常用类

3. HTTP

3.1什么是Http协议?

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

  • Socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;
  • Socket适用场景:网络游戏,银行持续交互,直播,在线视屏等。
  • http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断开等待下次连接
  • http适用场景:公司OA服务,互联网服务,电商,办公,网站等等等等

3.3 什么是http的请求体?

3.4 http的响应报文有哪些?

3.5 http和https的区别?

3.6 HTTPS工作原理

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

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

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

3.10 GET方法与POST方法的区别

3.11 http版本的对比

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

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

面试题答案解析完整文档:【网络编程面试题【附答案集锦】】

最后

篇幅有限,其他内容就不在这里一一展示了,整理不易,欢迎大家一起交流,喜欢小编分享的文章记得关注我点赞哟,感谢支持!

【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版)相关推荐

  1. 金三银四的面试黄金季节,Android面试题来了!

    金三银四的跳槽季节,你准摆好了吗? 首先我们分享一个Android知识图谱. 下面是一些面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期,使用场景,如何启动) java基础 – ...

  2. 金三银四,50道必备的Python面试题(建议收藏)

    在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言.在数据科学和机器学习等领域中,被广泛使用. 正值"金三银四"招聘季,小F给大家整理了 ...

  3. 金三银四 “狂飙” 季,一波综合面试题来了

    进入金三银四,很多小伙伴都有跳槽的打算,今天小编准备了一套测试相关的综合面试题,内容涵盖:测试基础.Linux命令.MySQL.自动化.性能的常见题目,希望能帮到大家. 测试基础 1.没有需求文档,如 ...

  4. 即将到来的金三银四,这10道springboot常见面试题你需要了解下

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring ...

  5. 金三银四华为软件测试一面,12个面试题复盘

    篇幅较长,请大家耐心看完,建议收藏慢慢看,另外文末给大家准备了面试资料(面试题加学习资料等),需要自取! 1.你认为做好测试计划工作的关键是什么? 参考答案: 软件测试计划就是在软件测试工作正式实施之 ...

  6. 过五关斩六将,一举拿下首张“金三银四”跳槽季的面试offer!熬夜成熊猫眼“筛选”出的面试真题

    人往高处走水往低处流,十二月已来,"金三银四"招聘季还会远吗? 转眼2021年招聘季就要来了,没点真本事真技术,没点面试经验,不了解点职场套路,如何过五关斩六将?如何打败面试官?如 ...

  7. “金三银四” “阿里” 我去定了,谁也拦不住我,这份《Android面试宝典》说的

    前言: 面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好 ...

  8. 金三银四阿里我去定了,谁也拦不住我,这份《Android面试宝典》说的

    前言: 面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好 ...

  9. 【金三银四】Java中间件面试题(2021最新版)

    目录 前言 Zookeeper 1. ZooKeeper 是什么? 2. ZooKeeper 提供了什么? 3.Zookeeper 文件系统 4. ZAB 协议? 5. 四种类型的数据节点 Znode ...

  10. 【建议收藏】2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android高级篇上)...

    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~. A awesome android expert interview questions a ...

最新文章

  1. 不信你看!这次Python和AI真的玩儿大了!!
  2. 从源码分析DEARGUI之动态特效
  3. ecshop订单打印页显示商品缩略图和序号
  4. NVIDIA DIGITS 5.1-dev学习笔记之安装过程记录:Windows10 x64位系统 、 MicroSoft Caffe Master、CUDA 8.0 、Python 2.7
  5. php mongo 游标超时,游标在MongoDb游标上超时错误
  6. 根据窗口名称查找关键字弹性域用到的表,列等信息
  7. java enum 变量_java枚举使用详解
  8. 【洛谷P1966】火柴排队
  9. 配置Oracle Instant Client环境
  10. c++矩阵连乘的动态规划算法并输出_你在Java中用过动态规划吗?
  11. GPU是如何工作的?
  12. 计算机高速接口与嵌入式设计与实现,基于嵌入式双结构通信系统高速接口的设计与实现...
  13. R中数据结构与数据的输入
  14. 使用JMeter录制脚本并调试
  15. Win10 OPNET14.5+VS2010 安装教程
  16. AT91SAM9260不能与sam-ba连接的解决方法
  17. 计算机网络为何使用分组交换,而不是电路交换
  18. 马云研判当前经济形势,超震撼
  19. c语言程序设计 滴水视频,编程达人滴水中级班视频教程
  20. java笔记--多敲代码四

热门文章

  1. (14.1)Zotero常用功能:插件、导入题录、参考文献
  2. 程序员有哪些含金量高的证书可以考?
  3. 打印1000张大概多少钱,打印费多少钱一张
  4. oracle断电ora-01033,ora-00600,
  5. SQL语句的增删改查(详细)
  6. 转速环PI参数整定详解(三)——转速环开环传函特性及其整定策略(有最终推导结果公式)
  7. unity控制相机移动
  8. Android设备:外接扫码枪与系统软键盘问题
  9. 阿里巴巴图表库 Bizcharts 正式开源
  10. 中小企业网络推广方案