网络传输相关 面试题+答案

本文介绍了网络通信中的关键概念,包括网络模型的七层结构,HTTP中的GET和POST请求的区别,如数据传输方式、大小、安全性等方面。此外,还详细阐述了TCP与UDP协议的差异,TCP的三次握手和四次挥手过程,以及TCP如何确保数据传输的可靠性,如校验和、序列号、确认应答等机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.传输的七层网络模型有什么

应用层(HTTP、FTP)
会话层
表示层
运输层(TCP,UDP)
网路层(IP)
链路层
物理层

2.Get和Post区别

1.Get用于一般请求,相当于向服务器请求资源。Post用于表单提交,向服务器提交资源。
2.Get是不安全的,因为请求参数会拼接在URL后面。Post是放在请求体中,对用户不可见。
3.Get请求URL长度有限制。Post请求体没有长度限制。
4.Get请求会被浏览器缓存。Post不会,除非手动设置。
5.请求方式不同,Get请求会把header和data一起发出去。Post先发header再data,产生两个TCP数据包。

12/25更新

Http协议定义了很多的方法,其中最常见的就是GET和POST。这两种方法有很多重要的区别:
1.数据传输方式:GET请求数据是附加在URL上的,以参数的形式出现。POST请求的数据则是放置在HTTP请求的请求体中。这意味着GET请求的数据可以直接在浏览器地址栏中看到,而POST请求的数据则不会。
2.数据大小:由于GET请求的数据是依附在URL上,因此其数据大小会受到URL长度限制,一般不会超过2KB。而POST请求的数据则没有这种限制。这意味着GET请求适合数据简单的查询参数,而POST请求适合传输大量或复杂的数据。
3.数据类型:GET请求只允许ASCII字符,因此无法用传来送来的二进制数据或者很大的ASCII数据。POST请求则没有这种限制。这意味着GET请求不能用于上传文件或者图片等二进制数据,而POST可以。
4.安全性:在某种程度上POST比GET相对安全,因为GET请求中数据会在URL中显示出来,而POST请求中数据则不会。但是,无论GET还是POST,如果没有使用HTTPS,数据都是明文传输,都不是真正的安全,这意味着GET请求可能会暴露敏感信息给第三方,而POST请求则相对隐私一点。
5.可见性:GET请求数据在URL是可见的,而POST请求的数据则不会显示在URL中,这与安全性和用户体验和美观性。
6.幂等性:GET方法是幂等的,意味着无论进行多少次操作,结果都是相同的。而POST不是幂等的,因为每次操作都可能产生不同的结果。这意味着GET请求可以重复执行,而不会改变资源状态。而POST请求可能会导致资源状态发生改变或引起副作用。
7.缓存:GET请求结果会默认被浏览器缓存,除非明确指明不缓存。而POST请求结果不会被浏览器缓存。这意味着GET请求可以提高响应速度和效率,而POST请求每次都需要向服务器发送请求并且等待响应。
8.历史/书签: 对于GET请求,URL会被浏览器记录在历史记录中。POST不会。
9.服务器处理:对于GET请求,服务器会将GET请求和 数据一起接收。对于POST请求,服务器会先接收请求头,然后是数据。这意味着GET请求更加简单快速,而POST请求更加复杂耗时。

3.TCP和UDP的区别

1.UDP是无连接的,TCP是面向连接的。
2.UDP传输效率高,可靠性低。TCP传输效率低,可靠性高。

4.简述一下三次握手

1.第一次握手,客户端向服务器端发送SYN包,并进入等待确认状态
2.第二次握手,服务端收到SYN包,并向客户端发送ACK包和自己的SYN包,即SYN+ACK包,进入等待确认状态。
3.第三次握手,客户端收到SYN和ACK包,向服务器发送ACK确认包,客户端和服务端进入TCP连接成功状态。完成三次握手。

5.为什么连接要三次握手,断开连接要四次握手

关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。

6.TCP如何确保传输可靠性

1.校验和:由发送方计算,接收方校验。为了发现TCP首部在发送过程中有没有改变,有接收方就丢弃,等待重发。
2.序列号和确认应答:
序列号:Seq,TCP传输时为每个字节的数据都进行了编号,这就是序列号。
确认应答:Ack,TCP传输过程中,每次接收方接收到数据之后都会对传输方确认应答。也就是发送ACK报文,ACK报文 中包含了确认号,也就确认序列号ACK,告诉发送方接收到了哪些数据,从下次从哪里发送。
3.超时重传
发送方发出消息后会等待接收方返回ACK报文,确认消息是否已经接收,如果发送方迟迟等不到ACK消息,会触发重发机制,再发一条。接收方这边呢,如果接收到重复的消息,会根据消息的序列号来潘墩消息是否已经接收过了,接收重复消息,也会返回ACK报文。
4.连接管理
三次握手和四次挥手的过程。
5.流量控制-滑动窗口控制
6.拥塞控制

7.黏包和粘包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值