计算机网络常见题目

题目地址: 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加密解密过程

公钥私钥

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值