Java学习----习题总结

2023-11-08

今日习题总结如下:

TCP/IP分层协议栈

TCP/IP协议栈参考模型分为五个层次:

应用层、传输层、网络层、链路层和物理层。

① 应用层:是网络应用程序及其应用层协议存留的层次。该层包括了所有与网络相关的高层协议,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程终端协议(Telent)、简单邮件传送协议(SMTP)、因特网中继聊天(IRC)等。

② 传输层:使源端主机和目标端主机上的对等实体可以进行会话。该层有两种服务质量不同的协议:传输控制协议(TCP)和用户数据报协议(UDP)。

③ 网络层:通过路径选择把分组发往目标网络或主机,进行网络拥塞控制以及差错控制,是整个TCP/IP协议栈的核心。

④ 链路层:负责网络层和物理层之间的通信,将网络层接收到的数据分割成特定的可被物理层传输的帧,并让物理层进行实际的数据传送。

⑤ 物理层:将帧中的一个个比特从一个节点移动到下一个节点。该层的协议仍与链路相关,并进一步与链路的实际传输媒体相关。

TCP的三握四挥

TCP三次握手

三次握手是TCP用来确保连接可靠建立的方式:

    第一次握手: A给B发短信说:“B,你现在有空吗?”
    第二次握手: B此时收到了A的信息,然后对A说: “ 我有空,你呢?有空吗? ”
    第三次握手: A此时收到了B的确认信息,然后说:“我也有空,那我跟你说个事。”

在三次握手之后,A和B都能确定这么一件事: 双方的通信可以流畅的进行。 这样,双方就可以开始进行正常的对话了。

TCP四次挥手

四次挥手是TCP用来确保连接可靠关闭的方式:

    第一次挥手: A给B发短信说:“B,我要准备吃饭了?”

    第二次挥手: B此时收到了A的信息,然后先对A说: “ 我知道了。”

    第三次挥手: B对A说到: “ 我也要准备吃饭了。”然后放下了手机,

    第四次挥手: A此时收到了B的确认信息,然后想B发一个包说:“好的,我知道了。”这时才放下 手机去吃饭,

在四次挥手之后,A和B都能确定这么一件事: 双方的通信可以正常关闭。 这样,双方就可以确定对方已经完全知晓自己确认要关闭连接。

1、三次握手:

    Client:请求连接;
    Server:同意并请求连接;
    Client:同意。

2、四次挥手:

    Client:请求关闭;
    Server:同意;
    【Server:…(可能在继续发未发完的数据/也可能没有)】
    Server:请求关闭;
    Client:同意。

TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;

TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。

TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。
TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。

当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。

 客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

 服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2 ∗ ∗ ∗ ∗∗ * ∗∗∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

 服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

TCP断开连接为什么是4挥,能不能是3挥

因为断开需要两边都断!!!

    由于 TCP 的半关闭(half-close)特性,TCP 提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

    任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接

    通俗的来说,两次握手就可以释放一端到另一端的 TCP 连接,完全释放连接一共需要四次握手。

http1.0和1.1的区别

(1)连接方面的区别,http1.1 默认使用持久连接,而 http1.0 默认使用非持久连接。http1.1 通过使用持久连接来使多个http 请求复用同一个 TCP 连接,以此来避免使用非持久连接时每次需要建立连接的时延。

    (2)资源请求方面的区别,在 http1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,http1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

    (3)缓存方面的区别,在 http1.0 中主要使用 header 里的 If-Modified-Since,Expires
    来做为缓存判断的标准,http1.1则引入了更多的缓存控制策略例如 Etag、If-Unmodified-Since、If-Match、If-None-Match 等更多可供选择的缓存头来控制缓存策略。

    (4)http1.1 中还新增了 host 字段,用来指定服务器的域名。http1.0 中认为每台服务器都绑定一个唯一的 IP
    地址,因此,请求消息中的 URL 并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机,并且它们共享一个IP地址。因此有了 host 字段,就可以将请求发往同一台服务器上的不同网站。

    (5)http1.1 相对于 http1.0 还新增了很多方法,如 PUT、HEAD、OPTIONS 等。

TCP和UDP的区别

TCP面向连接,通过三次握手建立连接,四次挥手接除连接;UDP是无连接的,即发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。
TCP是可靠的通信方式。通过TCP连接传送的数据,TCP通过超时重传、 数据校验等方式来确保数据无差错,不丢失,不重复,且按序到达;而UDP由于无需连接的原因,将会以最大速度进行
传输,但不保证可靠交付,也就是会出现丢失、重复等等问题。
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,由于连接的问题,当网络出现波动时,连接可能出现响应问题;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不
会使源主机的发送速率降低。
每一条TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。
TCP需要建立连接,首部开销20字节相比8个字节的UDP显得比较大。
TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。

DNS服务

DNS(Domain Name System,缩写为DNS)即域名系统,域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS域名系统的主要组成部分是解析器和域名服务器,服务器有转发服务器和主服务器两种。在同一个网络中,所有主机的IP地址及其对应的域名都被保存在域名服务器中,一个IP地址能对应很多个域名,一个域名则只能对应一个相应的IP地址。因为一个服务器对应一个IP地址,在一台只有一个IP地址的服务器上可以有多个网站,而不同的网站域名是不同的,所以可以有多个域名。

DNS是一种可以将域名和IP地址相互做映射的层次结构的分布式数据库系统,它主要包括了域名空间(domain name space)和资源记录、域名服务器(name server)、解析器(resolver);
DNS系统采用递归查询请求的方式来相应用户的查询,其一般过程如下:

1)客户端首先向首选域名服务器查询;

2)首选域名服务器检查本地资源记录,如果存在则作权威回答,如果不存在,则检查本地缓存,如果有记录则直接返回结果。若本地资源记录和缓存记录都不存在,则向根域名服务器查询;

3)根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询;

4)顶级权威域名服务器返回次级域的权威域名服务器地址,首选域名服务器如此迭代查询,直到得到对查询域名的权威回答,保存在本地缓存中并返回给客户端,完成此次查询;

查询方式:

迭代查询:客户端从本地DNS服务器发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。
递归查询:客户端和本地DNS服务器的查询就属于递归查询,客户端发出查询请求后处于等待状态,本地DNS以客户端的身份询问下一个DNS服务器,直到本地DNS服务器返回确定回复或者否定回复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习----习题总结 的相关文章

  • 1.常用单词学习

    1 1 听力练习 第一课 Av264771740 P1 Av736460000 P1 哔哩哔哩 bilibili 有推荐的吗 这个和这个都很推荐 这个多少钱 请给我这个 全部 这些一共多少钱 卫生间在哪呢 一度 願 麻烦再来一次 英語話 会
  • 在职状态下继续学习的心得体会

    本来平时记录的都是一些技术点的学习和使用 今天打算记录一下学习方法 当然不一定适合所有人 因人而异 仅供参考 学习这件事 对于IT行业来说 真的是活到老学到老 技术的更新迭代速度非常快 而且总是有那么一些公司特别的卷 没办法 改变不了外因
  • 网络安全现状:揭秘白帽黑客的真实收入

    前言 作为一个网络安全行业五年打工仔 今天就来看看黑客的收入和方向怎么样 一个黑客年薪是多少呢 外界普遍认为黑客是高收入群体 那么你想过黑客是怎么获得收入的吗 黑客分为白帽黑客和黑帽黑客 处于黑白两道的黑客会的技术都有些相似 但是却是对立的
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

    前言 先来自我介绍 老家农村 家里好不容易把我送到大城市读书 大学非985 211 但在我们老家 能出一个本科大学生也是非常不容易的 因为农村信息的相对闭塞 我对大学专业一无所知 加上分数并非前茅 最后被调剂一个我并不喜欢的专业 这里就不透
  • 【OpenCV学习笔记02】- 图像入门

    内容 这里介绍了图像处理的入门操作 你将学习如何读取图像 如何显示图像以及如何将其保存回去 你将学习以下功能 cv imread cv imshow cv imwrite 简单使用OpenCV 读取图像 使用 cv imread 函数读取图
  • The Planets:Venus

    靶场下载 The Planets Venus VulnHub 信息收集 arp scan l Interface eth0 type EN10MB MAC 00 0c 29 43 7c b1 IPv4 192 168 1 60 Starti
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • 小白也能学会的创建Git仓库实操

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 【计算机毕业设计】精品课程在线学习系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统精品课程学习信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • 手把手教你使用HarmonyOS本地模拟器

    我们通过下面的动图来回顾下手机本地模拟器的使用效果 本期 我们将为大家介绍HarmonyOS本地模拟器的版本演进 并手把手教大家使用HarmonyOS本地模拟器 一 本地模拟器的版本演进 2021年12月31日 经过一个版本的迭代优化 随D

随机推荐

  • Opencv(C++)学习系列---Sobel索贝尔算子边缘检测

    目录 1 算法简介 2 算子参数介绍 3 完整代码 1 算法简介 Sobel算子是一种用于边缘检测的线性滤波器 如果把图像看做是一个二维函数 那么Sobel算子就是图像在垂直和水平方向上变化的速度 即梯度 Sobel算子在水平和垂直方向上做
  • java 替换指定位置的字符_java Sting 如何替换指定位置的 字符?

    展开全部 include include include 此处空一行 using namespace std int main string str 123 421657 abcd 456789 此处空一行 cout lt lt str l
  • spring-mvc 用注解实现spring-mvc的基本开发

    用注解实现spring mvc的基本开发 maven的配置
  • Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0

    本人简介 男 年龄 18 作者 那就叫我亮亮叭 专栏 元宇宙 部分资料参考文献 成生辉教授的 元宇宙 概念 技术及生态 和百度相关资料 0 0 写在前面 元宇宙 在2021年成为时髦的概念 元宇宙到底是什么 元宇宙是否是互联网技术的下一次革
  • Unity 摄像机自适应

    脚本挂在摄像机下 using System Collections using System Collections Generic using UnityEngine 摄像机显示结果一致 拉伸 public class CameraAda
  • MySql 数据库逻辑架构

    与其他数据库相比 MySql 数据库有自己独特的地方 它的架构可以在不同的场景中应用并发挥良好的作用 主要体现在存储引擎的架构上 插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离 这种架构的最大优点是可以根据业务和实际
  • nRF52832 — 外部中断BSP(Board Support Package)

    原文链接 http blog csdn net a369000753 article details 51312839 转载文章 若有不妥 通知后我会立即删除 首先来分析下主要的代码 cpp view plain copy brief Fu
  • 网络基础-路由器工作原理

    路由器工作原理 一 路由概述 1 路由 从源主机到目标主机的转发过程 二 路由器的工作原理 1 根据路由表转发数据 2 作用 三 路由表的形成 1 路由表 2 路由表形成 3 静态路由 4 实验过程 四 源目地址变化 1 主机A如何与主机B
  • android双栈ipv6优先级,ME60双栈场景无线业务安卓手机无法获取IPV6地址

    ME60双栈场景下 安卓手机获取IPV4地址正常 IPV6地址获取不到 PC笔记本IPV4 IPV6电脑正常 ME60版本 V800R011C10SPC100 配置脚本 dhcpv6 duid 123123 ipv6 prefix preg
  • Android 使用easeui 3.0 集成环信即时通讯 我踩过的坑

    0 关于注冊账号就不用说了 1 创建应用 获取appkey 0 创建应用 1 填写信息 2 获取appkey 2 集成 0 首先新建一个project 1 这里主要介绍使用easeui来集成环信的即时通讯功能 须要下载sdk 2 把ease
  • 期货价格的技术分析及原理

    一 基本分析与技术分析比较 一 技术分析及其特点 技术分析基于市场交易行为本身 通过分析技术数据来对期货价格走势做出预测 技术数据的表现形式主要是各种图形和指标 其实质内容主要是价格和数量 1 技术分析以三项基本假设为前提 1 包容假设 技
  • DCDC常见问题之输出带载问题

    DCDC常见问题之输出带载问题 DCDC在目前的电子产品中使用越来越常见 但是出来的问题也越来越多 下面我们将介绍DCDC输出常见的问题 该问题是一个系列 今天我们介绍的是DCDC设计时 空载下一切正常 但是带载时 输出电压出现波动等各种问
  • 【非常重要】discuz修改默认首页【自定义手机跳转页面】设置为门户页portal.php(解决设置后手机端portal跳转至forum)

    参考文章 https blog csdn net weixin 38787928 article details 87915519 注意 访问手机端发现进入门户页 portal php 后自动跳转至论坛 forum php 时 请打开 so
  • layui选项卡切换及右键的动态操作(新增、切换、删除)

    先来看个效果图 文章底部有gitee地址 要实现的效果 选项卡的新增以及切换 选项卡刷新 选项卡各种删除 删除其他 删除右侧所有 删除所有 OK 直接上代码 一些引入文件就不写了 这里只列出主要的代码 有需要的话可以去Gitee自行下载 布
  • 我开了个游戏,为什么老是被人攻击呀,怎么才能防止这个情况

    很多游戏从业者都会遇到被恶意攻击的情况 那么为什么网络上会有这种情况出现呢 一种是同行的恶意竞争 当你们开着差不多类型的游戏时 那么同行觉得你的人气比较旺 就会想办法攻击你的游戏 这样你的游戏服务器陷入宕机的话玩家就有可能流失 毕竟对玩家而
  • QT 数字转字符串自动补0或者空格,arg()的用法

    十六进制 前面自动补0 QString str QString 1 arg outChar 0xFF 2 16 QLatin1Char 0 int a 0001 十进制 前面自动补0 QString str QString 1 arg a
  • 【双指针】---反转链表

    题目 提供单向链表的头节点head 请反转链表 并返回反转后的链表 分析 同速指针 链表上两个指针 一个先出发 另一个后出发并以相同的速度跟随 通过临时指针让双指针同步前行 思路 源码 package org example pointer
  • 【UE4】蓝图结构体入门及案例

    结构体 结构体是什么 UE4中存在许多不同的变量类型 浮点 布尔 整数 字符串 等等 我们赋予变量意义 用于处理程序的运行 在需要很多意义相同的数据时 我们会应用数组的概念来储存一系列相同类型的数据 但是对于数组中的元素 其的类型是固定不变
  • CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现

    文章目录 CVE 2023 3836 大华智慧园区综合管理平台任意文件上传漏洞复现 0x01 前言 0x02 漏洞描述 0x03 影响范围 0x04 漏洞环境 0x05 漏洞复现 1 访问漏洞环境 2 构造POC 3 复现 CVE 2023
  • Java学习----习题总结

    今日习题总结如下 TCP IP分层协议栈 TCP IP协议栈参考模型分为五个层次 应用层 传输层 网络层 链路层和物理层 应用层 是网络应用程序及其应用层协议存留的层次 该层包括了所有与网络相关的高层协议 如文件传输协议 FTP 超文本传输