计算机网络——常考的面试题

news2024/9/29 13:17:27

 

什么是TCP/IP?

TCP建立连接为什么要三次握手?断开连接为什么要四次挥手?

SSL/TSL握手过程?

1、网络分层模型

OSI:全称叫Open System Interconnection (开放式系统互联),是国际标准化组织ISO制定的理论模型

TCP/IP四层模型:基于OSI建立的实际实现的模型

TCP/IP协议各层:

应用层:我们平时常用的TCP/IP的应用层协议就是HTTP协议 

传输层:TCP、UDP协议都是TCP/IP传输层协议,传输层顾名思义,就是用来进行数据传输的,用来收发数据。

网络层:IP协议属于网络层。网络层的作用是用来寻址,比如我们要跟一台服务器建立连接,那么我们如何知道这个服务器的地址?这个就是网络层的功能。我们每台电脑都有一个IP,这个IP就是用来标记你主机的地址的,服务器只要知道了你的IP,就可以和你的主机建立连接,从而进行通信。

网络接口层:这一层其实是一套理论,在软件中不太可能会接触到它。它是用来定义一些硬件设备的标准的。

面试问题:TCP三次握手与四次挥手?

TCP的握手与挥手是建立连接和断开连接的时候需要经过的一个过程。

第一次握手:客户端与服务端建立连接,由客户端向服务端发送一次数据,这是第一次握手。

第二次握手:服务端收到客户端的数据后,发给客户端响应数据,这是第二次握手。

第三次握手:客户端收到服务端的响应数据后,再响应给服务端一次数据,这是第三次握手。

HR提问:为什么TCP建立连接需要三次握手呢? 

 

三次握手是为了保证客户端与服务端双方的数据收发能力都没有任何问题。具体说:

第一次握手,是客户端向服务端发数据,如果服务端接收到了客户端发来的数据,那么就说明,服务端确定了客户端的发送能力没问题。

第二次握手,是服务端响应给客户端数据,如果客户端接收到了服务端的响应数据,说明客户端确定了服务端的接收和发送能力都没问题。

现在,经过两次握手,我们确定了客户端的发送能力没问题,服务端的发送和接受能力没问题,但是我们还是不知道客户端的接收能力是否OK,因为服务端并不知道客户端是否收到了他发过去的响应数据。所以,还要进行第三次握手。

第三次握手:客户端向服务端发送响应数据,如果服务端接收到了这个响应数据,那么就确定了客户端的接收能力没有问题。

HR继续问:TCP为什么握手要三次,而挥手要四次呢?

目的是为了让服务端在客户端想主动断开之后还能够给客户端发送一些数据。具体说:

第一次挥手 (FIN),客户端要断开连接,首先要发给服务端一个finish的包,这个finish的包代表客户端不会再给服务端写数据了。

第二次挥手 (ACK),服务端收到了这个finish包后,就知道客户端想要和它断开连接了,但是服务端可能还有一些数据要发给客户端,所以服务端先发送给客户端一个包,告诉客户端我知道了,但是我还有些数据要发给你,所以你先等一等。

第三次挥手 (FIN ACK),是服务器把该发给客户端的数据都发完了,然后发给客户端一个包,告诉它,我这边数据发完了,你现在可以断开了。

第四次挥手 (ACK),客户端收到了第三次挥手的数据,正式通知服务端准备断开了。

其实,四次挥手和三次握手很相似,实际上就是把第二次握手的数据分成了两次来发送。

HTTP协议:

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

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

相关文章

【软件测试】面试老约不到?软件测试简历项目经验怎么写?论项目经验的重要性......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 随着就业竞争越来越…

(五)共享模型之管程【wait notify 】

一、wait notify 1. 小故事 - 为什么需要 wait 2. 原理之 wait / notify (1)Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态。 (2)BLOCKED 和WAITING 的线程都处于阻塞状…

[附源码]计算机毕业设计springboot线上社区管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

全力护航!广西移动圆满完成区运会通信保障任务

11月23日晚,广西壮族自治区第十五届运动会在贵港市体育中心闭幕。作为区域主导通信运营商,广西移动贵港分公司充分发挥5G网络技术优势,与贵港市政府、区运会组委会紧密合作,全力以赴为运动会提供了先进、高效的通信服务保障。 广西…

PAT (甲级) 2022年秋季考试 c++ 满分题解

PAT (甲级) 2022年秋季考试 c 满分题解 7-1 Balloon Popping 分数 20 原题 算法标签 模拟 枚举 思路 枚举数组元素, 判断每个元素覆盖气球数, 记录最多可覆盖气球数及最多可覆盖气球数开始下标, 则最小开始值为最后可覆盖气球位置减高度H 代码 #…

matlab如何滤除低频尖峰脉冲

有时,数据会出现不必要的瞬态或尖峰。可以用中值过滤消除它们。 最近我们被客户要求撰写关于信号滤除脉冲数据的研究报告,包括一些图形和统计输出。 在存在60 Hz电源线噪声的情况下,考虑模拟仪器输入端的开环电压。采样率为1 kHz。 fs …

基于Python pygame简易版斗兽棋小游戏源代码

基于Python pygame简易版斗兽棋小游戏源代码 游戏规则如下: 胜利条件: 1.吃掉对方全部棋子 2.走入对方兽穴(不可进入自己洞穴) 吃法: 1.象>狮>虎>豹>狼>狗>猫>鼠>象 2.同类棋子先行者吃掉对方 3.老鼠可以进河,老鼠在河里时,岸上的动物不能捕食他…

Jmeter常用函数用法详解

Jmeter函数官网帮助手册:https://jmeter.apache.org/usermanual/functions.html#__BeanShell 1.__intSum:计算两个或多个整数值的和 参数是否必传第一个int值是第二个int值是第n个int值否变量名否 eg: ${__intSum(1,2)} //return 123 ${__intSum(1,2,3)} //return …

(8)点云数据处理学习——ICP registration(迭代最近点)

1、主要参考 (1)官方介绍地址 ICP registration — Open3D 0.16.0 documentation 2、介绍 2.1 原理 (1)关于ICP registration 本教程演示ICP(迭代最近点)配准算法。多年来,它一直是研究和工业中几何配准的支柱。输…

股票接口怎么解析股票历史数据?

最近有很多投资者在研究股票接口怎么解析股票历史数据,然后执行自动交易等方面对开发股票数据接口的深入思考。其实在小编看来,这就需要先获取股票的每日数据,那么就会使用Python来解析股票历史数据,下面小编就简要介绍使用Python…

Java8-Stream流详细教程

前言 1、什么是Stream 前面我们讲了Lambda表达式与Optional类,下面我们将会使用这两个新特性,特别是Lambda。 Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列 集合讲的是数据,Stream讲的是计算! 注…

Java 守护线程

✨✨hello,愿意点进来的小伙伴们,你们好呐! 🐻🐻系列专栏:【JavaEE初阶】 🐲🐲本篇内容:详解守护线程 🐯🐯作者简介:一名现大二的三非编程小白&am…

什么是云计算?什么是边缘计算?为什么需要云边协同?

一、云计算的发展有哪些弊端? **云计算(cloud computing)**是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序…

Android 启动流程梳理

前言 什么是Android启动流程呢?其实指的就是我们Android系统从按下电源到显示界面的整个过程。 当我们把手机充好电,按下电源,手机会弹出相应启动界面,在等了一段时间之后,会弹出我们熟悉的主界面,这其实就…

开源数据备份工具 Duplicati

使用 Duplicati 腾讯云 COS,完美备份我的服务器数据。 文件备份需求 我有两台腾讯云的服务器,一台部署了博客,一台部署了一些个人项目,虽说云服务器很稳定,基本不会发生丢失数据的问题,但我个人之前经历过…

ThreeJs学习

1 基本使用 //1、创建场景 const scene new THREE.Scene() //2、创建网格模型 const geometry new THREE.BoxGeometry(100,100,100) const matrial new THREE.MeshLambertMaterial({color: #0000ff }) const mesh new THREE.Mesh(geometry,matrial) scene.add(mesh) //3、…

Redis之String类型和Hash类型的介绍和案例应用

一. String类型基础 1.类型介绍 典型的Key-Value集合,如果要存实体,需要序列化成字符串,获取的时候需要反序列化一下。 2. 指令Api说明 ​ 编辑3.常用Api说明 (1).StringSet:写入数据,如果数据已经存在,则覆盖;可以一次性存入1…

B2B电子商务策略[在2022年发展您的业务]

常规的电子商务商店向消费者(B2C 或企业对消费者)销售产品。B2B(企业对企业)电子商务不同于常规电子商务,因为 B2B电子商务的商业模式是让一家企业在线向另一家公司销售产品。 您可能会想:如何向企业销售比…

Windows OpenGL 图像色调

目录 一.OpenGL 图像色调调节 1.原始图片2.效果演示 二.OpenGL 图像色调调节源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL…

Ubuntu 20.04 server永久关闭swap

方法一 编辑/etc/fstab ,sudo vim /etc/fstab,找到如下行 找到/dev/disk/by-uuid/28b306c5-92e4-4180-966d-cdedfbce3a4d /boot ext4 defaults 0 1 修改为如下图,并(/swap.img none swap sw 0 0) 将如下行注释&#…