【java八股文】之计算机网络系列篇

1、TCP/IP和UDP模型

TCP/IP分层(4层):应用层,传输层,网络层,数据链路层

网络的七层架构 (7层):应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层

TCP/IP是面向连接的协议,发送数据前要先建立好连接,TCP提供了可靠的服务,也就是说通过TCP连接传输的数据是不会丢失,没有重复,并且按照顺序达到的。

UDP是无连接的协议,发送数据前是不需要建立连接的,没有可靠的协议。所以传输的过程中可以以任意的路径进行传输,并且传输的过程中是否能达到和到达的时间都是没有保障的。

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

  • 首先浏览器会进行DNS查询,查询步骤是浏览器DNS缓存、操作系统DNS缓存、读取本地host文件、本地配置的DNS 服务器查询得到IP地址。
  • 浏览器向IP服务器发送了三次握手连接
  • 连接建立起来后,浏览器向服务器发送HTTP请求
  • 后面就是SpringMVC的过程
  • 浏览器渲染视图


3、TCP进行三次握手

第一次握手:Client将SYN置1,随机产生一个初始序列号seq发送给Server,进入SYN_SENT状态;
第二次握手:Server收到Client的SYN=1之后,知道客户端请求建立连接,将自己的SYN置1,ACK置1,产生一个acknowledge number=sequence number+1,并随机产生一个自己的初始序列号,发送给客户端;进入SYN_RCVD状态;
第三次握手:客户端检查acknowledge number是否为序列号+1,ACK是否为1,检查正确之后将自己的ACK置为1,产生一个acknowledge number=服务器发的序列号+1,发送给服务器;进入ESTABLISHED状态;服务器检查ACK为1和acknowledge number为序列号+1之后,也进入ESTABLISHED状态;完成三次握手,连接建立。

4、采用两次握手行吗?

不可以,如果采用两次握手的话,那么只要服务端确认就建立了连接。如果client发送了一个请求过来,延迟了一个小时,一个小时候服务端接受到消息确认,他们建立了连接,但是这个时候client已经关闭了。但是服务端不知道。就会造成服务端一直发送数据,等待客户端的回消息,白白浪费许多资源。所以必须需要第三次握手的客户端确认。

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

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

6、TCP的四次挥手

第一次挥手:Client将FIN置为1,发送一个序列号seq给Server;进入FIN_WAIT_1状态;

第二次挥手:Server收到FIN之后,发送一个ACK=1,acknowledge number=收到的序列号+1;进入CLOSE_WAIT状态。此时客户端已经没有要发送的数据了,但仍可以接受服务器发来的数据。

第三次挥手:Server将FIN置1,发送一个序列号给Client;进入LAST_ACK状态;

第四次挥手:Client收到服务器的FIN后,进入TIME_WAIT状态;接着将ACK置1,发送一个
acknowledge number=序列号+1给服务器;服务器收到后,确认acknowledge number后,变为CLOSED状态,不再向客户端发送数据。客户端等待2*MSL(报文段最长寿命)时间后,也进入CLOSED状态。完成四次挥手。

7、http和https的区别?

其实HTTPS就是从HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护
区别:

  • https需要拿到ca证书
  • 端口不一样,http是80,https443
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式(http的连接很简单,是无状态的;HTTPS 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。)


8、cookie与session区别

  • cookie数据存放在客户端上,安全性较差,session数据放在服务器上,安全性相对更高
  • 单个cookie保存的数据不能超过4K,session无此限制
  • session一定时间内保存在服务器上,当访问增多,占用服务器性能,考虑到服务器性能方面,应当使用cookie。

什么是cookie: cookie是由Web服务器保存在用户浏览器上的文件(key-value格式),可以包含用户相关的信息。客户端向服务器发起请求,就提取浏览器中的用户信息由http发送给服务器
什么是session: session 是浏览器和服务器会话过程中,服务器会分配的一块储存空间给session。
服务器默认为客户浏览器的cookie中设置 sessionid,这个sessionid就和cookie对应,浏览器在向服务器请求过程中传输的cookie 包含 sessionid ,服务器根据传输cookie 中的 sessionid 获取出会话中存储的信息,然后确定会话的身份信息。

9、TCP如何保证可靠性的?

1、校验和(数据准确性)

2、序列号和确认应答(数据确认达到和有序)

3、超时重传(防止数据丢失)

  •  数据在传输过程中由于网络原因等直接全体丢包,接收方根本没有接收到。
  •  接收方接收到了响应的数据,但是发送的ACK报文响应却由于网络原因丢包了。

TCP在解决这个问题的时候引入了一个新的机制,叫做超时重传机制。简单理解就是发送方在发送完数据后等待一个时间,时间到达没有接收到ACK报文,那么对刚才发送的数据进行重新发送。如果是刚才第一个原因,接收方收到二次重发的数据后,便进行ACK应答。如果是第二个原因,接收方发现接收的数据已存在(判断存在的根据就是序列号,所以上面说序列号还有去除重复数据的作用),那么直接丢弃,仍旧发送ACK应答。

4、连接管理

​ 连接管理就是三次握手与四次挥手的过程,保证可靠的连接,是保证可靠性的前提。

消息手动确认消费

RabbitMQ 持久化 消息持久化(发布确认方式) + 队列持久化(直接设置参数)

5、流量控制

6、拥塞控制
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【健康小贴士】关节炎是不是冻出来的?

大家冬天肯定被父母唠叨过: 「天气这么冷,裤子穿这么短,小心得关节炎!」 ❌这种说法其实是不对的或者并不全面,答案来了👀

快快销ShopMatrix 分销商城多端uniapp可编译5端 - 佣金倍数提现

本文来自应用中心-9999款应用在线选购 "佣金倍数提现"这个概念在不同的上下文中可能有不同的含义,但通常它涉及到基于用户赚取的佣金来设定提现条件。这是一种常见的机制,尤其是在那些提供佣金或回扣的平台上,如联盟营销、金融交易…

数字前端/FPGA设计——握手与反压问题

声明:本文来自0431大小回 前言:在芯片设计或者FPGA设计过程中,流水设计是经常用到的,但是考虑数据安全性,需要与前后级模块进行握手通信,这时候就需要对流水数据进行反压处理,本文将具体介绍握手…

开源内网穿透工具FRP配置SSH和网站访问,构建本地私有云NAS,非常详细的配置细节,复刻即可成功

简介: FRP 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。名称其实就是使用了 Fast Reverse Proxy 的首字母缩写。 需求: 有…

基于英特尔傲腾持久内存的下一代高性能计算存储系统DAOS

本文内容来自 Intel极限存储架构和开发首席工程师 梁震 在2021CCF全国高性能计算学术年会(CCF HPC China 2021)上的演讲资料,供大家参考。 目录 - 分布式异步对象存储(DAOS)的系统架构 - DAOS系统栈结构 - DAOS 的部署方式 - DAOS 存储服…

WebGL在家居设计领域中的应用

WebGL(Web Graphics Library)是一种用于在Web浏览器中进行3D图形渲染的JavaScript API。在家居设计方面,WebGL可以提供一些强大的应用,使用户能够交互式地浏览和体验设计方案。以下是一些家居设计领域中WebGL的应用,希…

蓝桥杯:随意组合

题目描述: 算法思路: 主要是将其中一个数组进行全排列,16中排列顺序,再与 另外一个数组进行匹配求和。在这里就要用到next_permutation()函数,具体用法就是直接用数组a[],进行排序next_permutation(a&…

芯品荟|电梯外呼面板屏驱市场调研报告

PART ONE 产品简介 - Introduction - 1.电梯外呼面板介绍 电梯外呼面板,用于显示电梯当前位置、运行状态和楼层信息,以便乘客在等待电梯时了解电梯的运行情况。 电梯外呼面板,按显示屏的种类,分为3类,分别是LED屏、L…

处理HTTP请求中的表单数据

处理HTTP请求中的表单数据是Web开发中常见的任务。在Go语言中,可以使用net/http包来解析HTTP请求中的表单数据。 首先,确保你已经创建了一个HTTP服务器,并且能够接收和处理POST请求。然后,你可以使用r.ParseForm()函数来解析请求…

Android项目架构怎么做

项目架构指南 本指南包含一些最佳做法和推荐架构,有助于构建强大而优质的应用。 注意: 本页假定您对 Android 框架有基本的了解。 移动应用用户体验 典型的 Android 应用包含多个应用组件,包括 Activity、Fragment、Service、内容提供程序…

自然语言处理实战项目25-T5模型和BERT模型的应用场景以及对比研究、问题解答

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目25-T5模型和BERT模型的应用场景以及对比研究、问题解答。T5模型和BERT模型是两种常用的自然语言处理模型。T5是一种序列到序列模型,可以处理各种NLP任务,而BERT主要用于预训练语言表示。T5使用了类似于BERT的预训…

融云 CEO 董晗入选「2023 福布斯中国 · 出海全球化人物 TOP30」

近日,福布斯中国发布“出海全球化 30&30”评选结果,融云 CEO 董晗入选“2023 福布斯中国 出海全球化人物 TOP30”。移步【融云全球互联网通信云】了解更多 在全球市场新秩序的构建中,中国品牌的影响力和作用日益凸显。针对中国出海全球…

操作系统课程设计:常用页面置换算法(OPT、FIFO、LRU)的实现及缺页率的计算(C语言)

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder) 目录 一、效果图二、代码(带注释)三、说明 一、效果图 二、代码(带…

git中的语法和术语含义

目录 第一章、git常用术语1.1)文件状态1.2)git常用术语的含义 第二章、git文件状态解析2.1)从git init开始:Untracked(未跟踪)2.2)git add fileName后:Staged(已暂存&…

超强文档搜索引擎AnyTXT Searcher本地搭建

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况,异地办公或者不在公司,想找…

探索GpuMall智算云平台的AI云计算:SSH连接GPU云主机进行深度学习

#GpuMall# #GpuMall智算云# #算力租赁# #ai# 在人工智能和机器学习的领域中,获取强大的计算资源已经成为推进项目进展的关键。随着AI研究的深入,需求对GPU加速的计算能力也在不断提升。GPU云主机、GPU云服务器、GPU闲置、GPU变现、GPU收益、AI云、算力…

Copley高性能工业伺服驱动器制造者,为客户提供运动控制方案

在当今高度自动化的工业领域中,驱动器作为核心部件,其性能和稳定性对整个系统的运行至关重要。北京北成新控伺服技术有限公司深谙此道,成为Copley高性能工业伺服驱动器重要合作伙伴,以满足市场对于高精度、高动态性能的运动控制解…

入门实战丨Python小游戏经典案例

文章目录 写在前面判断与循环小游戏猜数游戏龙的世界 写在后面 写在前面 本期内容:两个个简单的Python小游戏入门案例。 实验需求:python 实验目标:掌握基本的判断与循环语句。 判断与循环 判断与循环是编程中非常重要的两个概念&#x…

Java零基础教学文档servlet(3)

【AJax】 1.传统开发模式的不足 传统开发模式基于浏览器数据传输功能,页面填写数据/展示数据。浏览器通过访问一个URL地址,将页面的数据提交给服务器。服务器将需要展示的数据返回给浏览器,浏览器再进行数据解析,将数据呈现在用户面前。这种…

【复习】人工智能 第7章 专家系统与机器学习

专家系统就是让机器人当某个领域的专家,但这章专家系统不咋考,主要靠书上没有的机器学习。 一、专家系统的基本组成 二、专家系统与传统程序的比较 (1)编程思想: 传统程序 数据结构 算法 专家系统 知识 推理 &…