Python网络编程面试重点:TCP, UDP, 三次握手与四次挥手

需积分: 9 0 下载量 162 浏览量 更新于2024-08-05 收藏 73KB DOCX 举报
"Python-第二阶段面试题涵盖了网络编程的相关概念,包括OSI七层模型、TCP/IP的三次握手和四次挥手过程、TCP与UDP的区别、IO触发模式以及TCP和UDP连接的创建流程。" 在Python编程中,了解网络通信的基础知识是至关重要的,特别是在面试中。这里我们详细讨论一下这些知识点: 1. **OSI七层模型** 是一种通信协议的分层模型,用于标准化网络通信的过程。每层都有其特定的功能: - 应用层:为用户提供服务,如HTTP、FTP等。 - 表示层:负责数据的编码、解码和加密解密。 - 会话层:管理不同应用程序间的通信,例如建立、维护和结束会话。 - 传输层:主要协议有TCP和UDP,负责数据传输的可靠性。 - 网络层:IP协议在此层工作,处理数据包的路由和转发。 - 链路层:负责相邻节点间的数据传输,如以太网协议。 - 物理层:定义了传输数据的物理介质和接口。 2. **三次握手和四次挥手** 是TCP连接建立和断开的过程: - 三次握手确保双方都能正常发送和接收数据,避免“死连接”。 - 四次挥手确保所有数据都被接收,防止因一方突然断开导致数据丢失。 3. **TCP与UDP的区别**: - TCP是面向连接的,需要预先建立连接,UDP是无连接的。 - TCP消耗更多系统资源,UDP资源消耗较少。 - TCP提供流式数据,保证数据顺序和完整性,UDP则是数据报模式,不保证顺序或完整性。 - UDP适合实时性要求高的应用,如视频通话,TCP则适合需要高可靠性的应用,如文件传输。 4. **水平触发与边缘触发**: - 水平触发(Level Triggered):当文件描述符可读/写时,系统会持续通知,直到IO操作完成。 - 边缘触发(Edge Triggered):仅在文件描述符状态改变时通知,需尽快处理所有IO事件。 5. **TCP连接创建流程**: - 服务器:创建套接字,绑定端口,开始监听,接受连接请求,使用新套接字进行数据收发,最后关闭套接字。 - 客户端:创建套接字,发起连接请求,进行数据收发,然后关闭套接字。 6. **UDP连接创建流程**: - 服务器:创建套接字,绑定端口,接收/发送数据,最后关闭套接字。 - 客户端:创建套接字,发送数据,接收响应,然后关闭套接字。 在Python中,可以使用socket库实现这些网络操作。对于面试来说,理解这些基础概念并能解释其工作原理是必不可少的。