计算机网络常见题目

2023-11-05

题目地址: https://www.nowcoder.com/exam/interview

TCP和UDP的区别

回答要有条理,记起来好记
是什么:
TCP是传输控制协议,UDP是用户数据报协议,它们都是属于传输层的协议,为应用层提供服务,而且他们都具有复用也就是可以用于不同的应用层协议,分用功能,也就是可以解析不同数据报给应用层,但TCP是基于字节流的,只支持点对点的单播通信,是全双工通讯,UDP是基于报文的,支持,一对一,一对多,多对多等多种通信模式。
他们最主要的区别就是TCP是面向连接的,所以它比较可靠,而UDP是尽最大努力交付,面向无连接的,不保证可靠性,这样也就导致了,TCP需要大量操作去保证连接可靠性,如建立连接的三次握手,保证成功的与目标服务器建立连接,而这些操作也使得TCP传输的速度较慢,所以它一般用于必须保证连接同时对速度和及时性要求不是很高的领域,与之相反,UDP则很小,头部长度只有8,没有拥塞控制,所以它只管发,不需要操心收的问题,传输起来也比较快,同时导致它丢包率比较高,一般用于实时性比较高的领域,比如音视频等,允许适当的丢帧,但对实时性要求很高,他们各有优点,使用TCP主要有HTTP/https超文本传输协议、ftp文件传输协议等,其他的一般都用UDP协议。

三次握手和四次挥手

三次握手是为了建立正确稳定的连接,由客户端发起连接请求,tcp头部控制位SYN=1,表示这是一个连接请求,随机生成一个序号seq = x,请求发送后,客户端切换为SYN_SENT状态,服务器是侦听状态,侦听到这个请求后,先校验是不是发给自己的,如果是,就返回一个确认,确认号ACK = seq + 1,表示自己的接受位置,随机生成一个序号seq = y,发送后服务器变为SYN_REC状态,客户端接收到服务器返回的信息确认无误后,返回一个确认ACK = y +1,表示自己接收到了服务器的返回信息,客户端切换为CONNECTED状态,服务器接收到后,连接正式建立。
三次握手简单说就是,双发都要确认自己以及对方的收发功能,第一次接收方知道自己可以成功接受,发送方可以成功发送,第二次发送方知道自己发送成功,接收方可以成功接受,接收方有发送能力,最后一次接收方知道发送发有接受能力,自己发送能力没问题,所以可靠连接可以建立。

四次挥手也类似,控制位变成FIN=1,表示这是一个断开连接的请求,双方都可以发起断开连接的请求,这里以客户端发起请求为例,FIN = 1,seq = x;发送后客户端切换为fin_wait1状态,服务器接受后,返回确认ACK = x +1,seq = y,表示自己接收到了客户端的请求,客户端可以断开,发送后服务器切换为close_wait状态,客户端接收后,确认自己可以断开,切换为FIN_WAIT2状态,半连接状态,表示自己只能收,不能发,等一会后,服务器传完了自己的所有信息,就向客户端发一条断开请求,FIN=1,ACK = x+1,seq = z,还是close_wait状态,客户端接收到之后,返回一个确认信息,FIN =1,ACK = z + 1,进入TIME_wait状态,服务器接收到后,关闭发送接收功能,客户端等待2MSL时间后,断开连接。
为什么是四次挥手,不能让服务器传信息同时返回确认吗?TCP是有超时重传机制的,这个时间一般比较短,如果等服务器把自己的传完了,估计客户端得重发很多个
为什么等待2MSL时间,因为客户端不确定是否服务端收到了自己的确认,如果服务端没收到,会再次重传,如果客户端已经关闭,就找不到客户端了,MSL,Maximum Segment Lifetime,最大报文段生存时间。即任何TCP报文在网络中存在的最大时长,如果超过这个时间,这个TCP报文就会被丢弃。
2MSL,即两个最大报文段生存时间。
TIME_WAIT状态为什么是2MSL的时长?因为客户端不知道服务端是否能收到ACK应答数据包,服务端如果没有收到ACK,会进行重传FIN,考虑最坏的一种情况:第四次挥手的ACK包的最大生存时长(MSL)+服务端重传的FIN包的最大生存时长(MSL)=2MSL

浏览器从输入 URL 开始到页面显示内容,中间发生了什么?

这里浏览器相当于客户端,URL是统一资源定位符,他的里面包含域名,首先浏览器通过对URL的分析,提取出数据资源机制+域名+文件目录,知道了目标服务器和文件名,浏览器开始生成HTTP协议,域名可以通过DNS解析器获得IP地址,然后浏览器与该IP地址对应服务器建立连接,通过HTTP协议来访问服务器,第一行是方法+http版本,之后跟着内容,服务器收到后根据方法和文件位置,进行操作后,返回相应的响应,浏览器接收到服务器的响应后,通过渲染等前端技术,将信息显示在浏览器上。

请你说说 HTTP 状态码及其含义

1xx:成功连接
2xx:
3xx:
4xx:出现错误,404 没有找到,但不一定是没有找到,可能是不想让你看 403 服务器成功接收了你的请求,但出于某种原因拒绝了你的请求
5xx:

请你说说 GET 和 POST 的区别

https://www.nowcoder.com/exam/interview/detail?questionClassifyId=0&questionId=2412513&questionJobId=161&type=1
这个就是get请求,看看它的特征,首先是明文传输,从URL就能找到它的一些参数和信息,?前面是URL,后面是传输数据,用&隔开
作用和参数都不同,GET是获取数据,POST是提交数据

请你说说 HTTP 和 HTTPS 的区别

HTTPS比较安全,但它相比HTTP要建立两次TCP连接,速度会慢一点

请你说说 TCP 如何实现可靠传输

1.三次握手机制建立可靠连接
2.校验和,通过校验首尾和判断是否成功传输
3.拥塞控制,保证传输的顺利进行
4.

请你说说 TIME_WT

第四次挥手后,挥手方会进入TIME_WAIT状态,不直接关闭的原因是它不知道对方是否能成功接收自己的关闭确认,如果没有收到,对方会重传,如果这时候我们关闭了,就会导致对方一直重传,所以我们得等一会确认没有重传信息,才能放心关闭。
为什么是2MSL呢,这个是ACK包的最大报文生存时间,一个来回就是两倍,如果这个时间还没有收到重传信息,应该就是收到确认信息了,可以关闭了

请你说说拥塞控制机制

防止网络中要处理的数据超过网络的处理能力导致网络效率降低
常见的:,慢开始、拥塞管理,快重传,快
慢开始是通常刚开始发送报文段时先把拥塞窗口cwnd设置为一个最大报文段MSS的值,每收到一对新的报文段确认后,把拥塞窗口的数值再加一个MSS
拥塞管理是经过一个设置好的时间,才会增大发送窗口

请你说说 TCP/IP 五层模型

应用、运输、网络、数据链路、物理

说说 TCP 粘包

请你说说滑动窗口

请你说说 OSI 七层模型

请你说说 TCP 和 UDP 的使用场景

请你说说 DNS 解析过程以及 DNS 劫持

解析是发送给DNS服务器,从根目录到子目录依次检测,是否存在该域名对应的ip地址
DNS劫持,就是给你的域名返回一个事先设计好的IP地址,这样你向这个地址传输的个人信息就会被劫持者所得到

你说说 TCP 的流量控制

匹配发送方和接收方的速度,一般是降低发送方的发送速度来实现的,常见的操作有滑动窗口,给发送方和接收方一个缓冲,

请你说说ARP协议,协议是怎么实现的,是怎么找到MAC地址的

arp协议是ip地址转换成mac地址的一种协议

CLOSE_WT

请你说说对称加密和非对称加密

请你说说 HTTPS

请你说说TCP超时重传机制,时间是多少

动态调整的,根据反馈取加权平均

UDP 怎么样可以实现可靠的传输?

依靠应用层

请你说说 HTTP1.x 和 HTTP2.0 的区别是什么?

后者用2进制,前者用文本

HTTPS加密解密过程

公钥私钥

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

计算机网络常见题目 的相关文章

随机推荐

  • 关于libc.so.6误删除紧急恢复的方案

    编者在一次实际生产下不小心将 libc so 6 变成了libc so 6 bak 当时没有发觉有什么不妥 但是在后面的时候 发现很多命令都无法使用 为了以后方便解决 所以将解决的方法记录 root用户下产生的libc so 6问题解决方法
  • ES6中Fetch的封装及使用,炒鸡简单~

    1 封装 http js class Ajax get url return new Promise resolve reject gt fetch url then res gt res json then data gt resolve
  • StyleCop 代码审查(VS插件)

    代码审查 StyleCop 介绍 下载 使用 自定义规则 源码 StyleCop简介 StyleCop是代码规范检查工具 Code Review 工具 它不仅仅检查代码格式 而是编码规范 包括命名和注释等 StyleCop可以帮助你更容易地
  • 【Matlab学习笔记】【数学形态学】数字图像处理(MATLAB版)冈萨雷斯第九章学习笔记

    1 形态学源于生物学 最初用于处理动植物的形状和结构 用于提取区域的形状 边界 骨骼或凸壳 形态学图像处理主要用于图像预处理和后处理 包括形态学滤波 细化和裁剪等 2 图像的形态学处理 由二值图像开始 逐步扩展到灰度图像 彩色图像 由简单到
  • 深入浅出SQL(3)-在Mac OS X上安装MySQL

    如何在Mac OS X上安装MySQL 下载安装包 打开官方下载地址 https dev mysql com downloads 选择合适版本的安装包 新建Oracle MySQL账户 email H10 登陆后下载安装包 安装 安装过程中
  • openGL GLSL GLSL.Refract & Reflect & Diffraction 反射、折射、衍射Fresnel Effect

    一 Refract Reflect Snell定律描述了光线从一个介质传播到另外一个介质时 入射角 折射角以及介质折射率的关系 通过snell定律 可以根据入射光的方向向量求取折射光的方向向量 Fresnel定律完善了光的衍射理论 当光线到
  • C++中GB2312字符串和UTF-8之间的转换

    在编程过程中需要对字符串进行不同的转换 特别是Gb2312和Utf 8直接的转换 在几个开源的魔兽私服中 很多都是老外开发的 而暴雪为了能 够兼容世界上的各个字符集也使用了UTF 8 在中国使用VS VS2005以上版本 开发基本都是使用G
  • MyBatis 配置多数据源

  • 解决FTP client 上传文件失败

    遇到的问题 在测试环境可以正常上传pdf 到了预发布环境虽然登陆成功了 但是上传的文件都是0KB 后来发现原来是运维添加了安全策略 需要在代码里添加以下方法 FTPClient enterLocalPassiveMode 调用FTPClie
  • 更换数据集

    以yolov5 deepsort的行人检测项目说一下怎么更换数据集 最终目标是要生成四个文件夹 一开始只有两个文件夹 1 标注文件 在终端输入lableme即可打开 尝试一下多分类 又是人 又是女人 如果win的lable导出的文件是xml
  • 安装SAPTrex

    1 下载安装包2 安装过程3 启动Admin工具C usr sap T02 TRX02TREXAdmin bat4 保存后 SM59会有一个新的T连接生成5 进去tcode SRMO 转载于 https blog 51cto com jen
  • android adb install apk的安装流程

    目录 一 PackageManagerService启动流程 二 apk adb安装流程 一 简介 1 Android上应用安装可以分为以下几种方式 通过adb命令安装 adb 命令包括adb push install 用户下载的Apk 通
  • 后端代码审计——PHP函数及PHP危险函数

    文章目录 PHP函数 1 自定义函数 1 1 函数语言结构 1 2 函数传参 1 3 函数调用 1 3 1 函数调用过程 1 4 变量范围 1 4 1 局部变量 1 4 2 全局变量 1 5 参数传递 1 5 1 按值传参 1 5 2 默认
  • 【程序员的财富自由之路】停更说明...

    停更原因 一个月前我发表了 程序员的财富自由之路 开篇序这篇文章 承蒙CSDN博客编辑的厚爱 将该专栏推荐到了专栏首页显示 因此带来了很多网友的关注 写那篇文章的时候 我信心满满 但惭愧的是 一个多月过去了 我仍然没有更新过专栏文章 让很多
  • 央行数字货币开始崛起:DC/EP正在领跑全球

    2020年8月24日 国际清算银行 以下简称BIS 发表题为 央行数字货币崛起 驱动因素 方法和技术 的工作报告 报告认为 央行数字货币 以下简称CBDC 将极大改变人类未来的支付以及生活方式 在全球诸多经济体中 中国人民银行的数字货币DC
  • golang exec 标准错误输出有 error 但是 err 是 nil

    golang 的 exec 模块 有可能标准错误输出会有类似 ERROR Incorrect date and time argument 2021 11 16 13 52 10 0000 UTC 但是 err 确是 nil package
  • \r \n 和strcat 笔记

    r 回车 ASCII码13 r gt return n 换行 ASCII码10 n gt newline 在Windows中 r 回车 回到当前行的行首 而不会换到下一行 n 换行 换到当前位置的下一行 而不会回到行首 描述 C 库函数 c
  • 详解如何使用AWS完善架构框架改造云上架构

    对于大部分项目来说 上云后的重构才刚开始 因为很多企业在上云之初 只是简单的把从前在物理服务器上的业务放到云上 并没有针对云环境做优化 没有充分到利用云服务的优势 上云之后 你需要重构业务架构 以提升企业的IT能力 比如通过架构优化让你的业
  • python爬虫学习(十二)xpath解析爬取58二手房

    xpath解析 最常用且便捷高效的解析方式 通用性 1 实例化一个etree的对象 且需要将被解析的页面源码数据加载到该对象中 2 调用etree对象中的xpath方法结合这xpath表示式实现标签的定位和内容的捕获 环境的安装 1 pip
  • 计算机网络常见题目

    题目地址 https www nowcoder com exam interview TCP和UDP的区别 回答要有条理 记起来好记 是什么 TCP是传输控制协议 UDP是用户数据报协议 它们都是属于传输层的协议 为应用层提供服务 而且他们