一、HTTP长连接和短连接的区别?
长连接:在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个长连接。
短连接:当双方需要数据交互的时候,就建立一个TCP连接,本次交互完之后就断开这个连接。
Socket心跳包机制:
像心跳一样,每隔固定时间向服务器发送一个包,以此来告诉服务器,这个客户端还活着。为了保持长连接,一般都是很小的包(节约流量)或者只有包头的空包。
心跳检测步骤:
1.客户端每隔一段时间间隔就发送一个探测包给服务器;
2.客户端发包时启动一个超时定时器;
3.服务端接收到探测包后会回应一个包;
4.如果客户端收到服务器的应答包,则说明服务器正常,删除超时定时器;如果没有收到则服务器异常。
二、网关的作用?
网关是一种网络设备,可以连接两个不同的网络,并在它们之间传输数据。它的作用包括转换协议、实现安全控制、提供负载均衡等。网关常用于连接局域网与互联网、连接不同类型的网络、连接公共网络和私有网络等。
三、对称加密和非对称加密?
对称加密和非对称加密是两种常见的加密方式:
-
对称加密使用同一个密钥(也叫秘钥)用于加密和解密数据。发送方和接收方需要在通信前共享相同的密钥。常见的对称加密算法有AES、DES等。优点是加解密速度快,但是存在密钥安全传输问题。
-
非对称加密使用一对密钥(公钥和私钥)进行加密和解密。公钥可以公开,任何人都可以用它来加密数据;而私钥则只能由接收方持有,用于解密数据。常见的非对称加密算法有RSA、DSA等。优点是不需要共享密钥,更安全,但是加解密速度较慢
四、DNS 服务器有哪些?
1、本地 DNS 服务器。每个 ISP(互联网服务提供商)都有一个自己的本地 DNS 服务器。当主机发出 DNS 请求时,该请求被发往本地 DNS 服务器,它起着代理的作用,并将该请求转发到 DNS 层次结构中。严格说来,不属于 DNS 层级结构
2、权威 DNS 服务器。在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的 DNS 记录,这些记录将这些主机的名字映射为 IP 地址。
3、顶级域 DNS 服务器(TLD 服务器)。顶级域是指域名的后缀,如com
、org
、net
和edu
等。国家也有自己的顶级域,如uk
、fr
和ca
。TLD 服务器提供了权威 DNS 服务器的 IP 地址。
4、根 DNS 服务器。根 DNS 服务器提供 TLD 服务器的 IP 地址。目前世界上只有 13 组根服务器,我国境内目前仍没有根服务器。
五、TCP与UDP的区别?
1、TCP是面向连接的,每次传输前都要先三次握手建立连接,传输结束后通过四次挥手断开连接;而UDP是无连接的,因此UDP的传输效率比TCP高
2、TCP是保证可靠传输的,他通过确认、拥塞控制、重传等机制来保证数据无差错、不丢失、不重复且按序到达;而UDP是不可靠传输
3、TCP是有状态的,而UDP是无状态的,因此TCP首部开销(20字节)比UDP大(8字节)
4、TCP只支持点对点通信,而UDP支持一对多、多对多通信
5、UDP一般用于即时通信比如qq聊天,直播等;而TCP用于文件传输或者邮件发送等
六、建立在TCP和UDP之上的协议
运行于 TCP 协议之上的协议:
- HTTP 协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的。
- HTTPS 协议:更安全的超文本传输协议(HTTPS,Hypertext Transfer Protocol Secure),身披 SSL 外衣的 HTTP 协议
- FTP 协议:文件传输协议 FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。注意 ⚠️:FTP 是一种不安全的协议,因为它在传输过程中不会对数据进行加密。建议在传输敏感数据时使用更安全的协议,如 SFTP。
- SMTP 协议:简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)的缩写,是一种用于发送电子邮件的协议。注意 ⚠️:SMTP 协议只负责邮件的发送,而不是接收。要从邮件服务器接收邮件,需要使用 POP3 或 IMAP 协议。
- POP3/IMAP 协议:两者都是负责邮件接收的协议。IMAP 协议是比 POP3 更新的协议,它在功能和性能上都更加强大。IMAP 支持邮件搜索、标记、分类、归档等高级功能,而且可以在多个设备之间同步邮件状态。几乎所有现代电子邮件客户端和服务器都支持 IMAP。
- Telnet 协议:用于通过一个终端登陆到其他服务器。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用 Telnet,而是使用一种称为 SSH 的非常安全的网络传输协议的主要原因。
- SSH 协议 : SSH( Secure Shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 建立在可靠的传输协议 TCP 之上。
- ......
运行于 UDP 协议之上的协议:
- DHCP 协议:动态主机配置协议,动态配置 IP 地址
- DNS:域名系统(DNS,Domain Name System)将人类可读的域名 (例如,www.baidu.com) 转换为机器可读的 IP 地址 (例如,220.181.38.148)。 我们可以将其理解为专为互联网设计的电话薄。实际上 DNS 同时支持 UDP 和 TCP 协议
属于网络层的协议,主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。
八、NAT
地址转换协议
NAT主要用于在不同网络之间转换 IP 地址。
它允许将私有 IP 地址(如在局域网中使用的 IP 地址)映射为公有 IP 地址(在互联网中使用的 IP 地址)或者反向映射,从而实现局域网内的多个设备通过单一公有 IP 地址访问互联网。
九、ARP
地址解析协议(Address Resolution Protocol),它解决的是网络层IP地址和链路层MAC地址之间的转换问题。
每个网络设备都自己维护了一个 ARP 表,ARP 表记录了某些其他网络设备的 IP 地址-MAC 地址映射关系,该映射关系以 <IP, MAC, TTL>
三元组的形式存储。其中,TTL 为该映射关系的生存周期,典型值为 20 分钟,超过该时间,该条目将被丢弃。
ARP 的工作原理将分两种场景讨论:
- 同一局域网内的 MAC 寻址(广播问询,单播响应);
- 从一个局域网到另一个局域网中的网络设备的寻址。
1、同一局域网内的 MAC 寻址
第一步:主机A查自己的ARP地址表,如果没有主机 B 的 IP 地址对应的映射条目则构造查询分组,并进行广播
第二步:每一个设备都会收到该分组,并检查查询分组的接收 IP 地址是否为自己的 IP 地址,如果是,说明查询分组已经到达了主机 B,如果不是则丢弃
第三步:主机 B 收到了查询分组之后,接着构造一个 ARP 响应分组,发送给主机 A。
第四步:主机 A 收到主机 B 的响应分组,提取出该分组中的 IP 地址和 MAC 地址后,构造映射信息,加入到自己的 ARP 表中。
2、不同局域网内的MAC寻址
发送主机 A 和接收主机 B 不在同一个子网中,两台主机所在的子网由一台路由器联通。路由器作为互联设备,具有多个接口,每个接口同样也应该具备不重复的 IP 地址和 MAC 地址。因此,在讨论 ARP 表时,路由器的多个接口都各自维护一个 ARP 表,而非一个路由器只维护一个 ARP 表。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具