Python——通信协议的面试

本文深入解析了TCP/IP协议栈中的两个关键传输层协议——TCP与UDP。通过对比这两种协议的特点和应用场景,帮助读者理解它们之间的主要区别,包括连接性、可靠性、数据排序、资源消耗及流量控制等方面。

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

IP:网络层协议;

HTTP:应用层协议;

SOCKET:TCP/IP网络的API

TCP/IP代表传输控制协议/网际协议,指的是一系列协议

TCP和UDP使用IP协议从一个网络传送数据包到另外一个网络。把IP想成一个高速公路,它允许其它协议在上面行驶并找到其他的电脑出口。TCP和UDP是高速公路的‘卡车’,它们携带的货物像是HTTP,文件传输协议FTP这样的协议。


TCP和UDP的区别是什么?

1.TCP的协议是有连接的,有连接的意思是开始传输数据之前TCP的客户端和服务端需要进行三次握手建立链接,会话结束之后也要结束链接,UDP是无法连接的

2.TCP协议保证数据包按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证能到达,只是努力交付,即便是按序发送,也不保证按序到达。

3.TCP所需要的资源比较多,TCP首部需要20个字节,UDP首部字段需要8个。

4.TCP有流量控制,UDP没有流量控制。

5.TCP是一对一的链接,UDP可以一对一,多对多,一对多

### 常见的通信协议面试题目及答案 #### HTTP 协议的工作原理是什么? HTTP (HyperText Transfer Protocol) 是一种用于分布式、协作式和超媒体信息系统的信息系统应用层请求/响应式的协议。HTTP 使用客户端-服务器模型,当浏览器作为客户端发送请求到服务器端时,服务器会返回相应的HTML文件给客户端显示。HTTP默认使用80端口[^1]。 ```python import http.client conn = http.client.HTTPConnection("example.com", 80) conn.request("GET", "/") response = conn.getresponse() print(response.status, response.reason) data = response.read() print(data.decode()) ``` #### TCP 和 UDP 的区别在哪里? TCP(Transmission Control Protocol)是一种面向连接的、可靠的字节流服务传输层协议。而UDP(User Datagram Protocol)则是无连接的数据报文服务。两者的主要区别如下: - **可靠性**:TCP 提供可靠的服务,通过确认机制来保证数据包按序到达目的地;UDP 不提供任何形式的消息重传或排序功能。 - **速度**:由于TCP有流量控制、拥塞控制等功能,因此相对慢一些;相比之下,UDP更快因为其简单的设计减少了额外开销。 - **应用场景**:对于实时性要求较高的场景如视频会议通常采用UDP;而对于需要确保数据完整性的场合比如网页浏览,则更适合用TCP[^2]。 #### DNS 解析过程是如何工作的? DNS(Domain Name System),即域名解析系统,它能够把人们容易记忆理解的名字转换成机器可以识别处理的形式——IP地址。具体流程如下: 1. 客户端发起查询请求至本地缓存或者指定DNS服务器; 2. 如果该DNS服务器无法直接给出应答,则继续向上级权威DNS询问直至根域名称服务器获取最终结果; 3. 将得到的结果反馈回最初发出请求的一方完成整个解析操作. #### SSL/TLS 握手的过程是怎样的? SSL(Secure Sockets Layer)/TLS(Transport Layer Security)握手机制是为了在网络环境中建立安全通道所必需的一个重要环节。主要分为以下几个阶段: 1. Client Hello: 客户端向服务端发送支持加密算法列表以及随机数; 2. Server Hello: 服务端从中挑选出双方都认可的一种加密方式,并且回复自己的证书还有另一个随机数值; 3. Key Exchange & Finished Messages: 双方基于之前交换过的参数计算出会话密钥并验证对方身份合法性之后就可以开始正常通讯了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值