iOS面试题答案整理-网络协议

Posted by Buddy on April 22, 2024

1、网络协议基础概念

网络分层?OSI 七层模型,五层模型,TCP/IP模型


计算机连接方式有哪几种?什么是公网IP,私网IP?


什么是Mac地址,相关命令有哪些?


IP地址?网络ID,主机ID?IP地址分类?子网,超网?


网络分类?ISP?NAT?数字信号,模拟信号?信道?


域名?DNS?代理服务器?CDN?HTTPDNS?网络爬虫


WebSocket与HTTP有和区别?WebService是什么?


REST规定了哪些约束?


Ipv6和Ipv4有什么区别?


什么是流媒体技术?有哪些?RTP,RTCP,RTSP,RTMP,HLS(基于HTTP的流媒体网络传输协议,苹果公司出品)


即时通讯协议有哪些,什么区别?XMPP,MQTT


邮件相关协议有哪些?发SMTP,收POP、IMAP


2、物理层和数据链路层

物理层做哪些事情?数字信号,模拟信号区别?信道有哪几种?


数据链路层做了哪些事情?封装成帧、透明传输、差错校验


数据链路层什么协议?CSMA/CD协议,PPP协议


Ethernet V2 标准帧格式?


3、网络层

网络层做了什么?网络层数据包由什么组成?


网络层首部包含哪些信息?


4、传输层

传输层有哪些协议?


TCP,UDP有什么区别?连接性,可靠性,传输速率,资源消耗,首部占用空间,应用场景


TCP首部包含哪些信息?源/目的端口,序号,确认号,数据偏移,保留,标志位,窗口,检验和,紧急指针,选项,填充


标志位有哪些,分别有什么作用?URG,ACK,PSH,RST,SYN,FIN


UDP首部包含哪些信息?源/目的端口,UDP长度,检验和


TCP拥塞控制,可靠传输,流量控制分别是什么?


流量控制:停止等待ARQ协议,连续ARQ协议 + 滑动窗口协议,SACK


流量控制:通过确认报文中窗口字段来控制发送方的发送速率 发送方的发送窗口大小不能超过接收方给出窗口大小


拥塞控制:慢开始,拥塞避免,快速重传,快速恢复


TCP如何建立链接,断开链接?为什么三次握手,四次挥手?为什么要有TIME-WAIT时间?


5、应用层

应用层有哪些协议?


CDN,DNS,DHCP协议?


HTTP请求报文格式?响应报文格式?


HTTP请求方法有哪几种?get,post,delete,head,options,put,patch,trace,connect


请求头字段有哪些?


响应头字段有哪些?


HTTP状态码有哪些?


缓存相关头部字段?form表单提交方式?


6、网络安全

网络中面临哪几种安全威胁?


网络层:ARP,Dos,DDos


传输层:SYN,LAND


应用层:HTTP挟持


什么是ARP欺骗?如何防护?


什么是Dos攻击,DDoS攻击?如何防御?


什么是SYN洪水攻击?怎么防护


什么是LAND攻击?怎么防护


对称加密和非对称加密有什么区别?分别又哪些加密算法


如何防止数据被篡改?MD5,数字签名


公钥加密和私钥加密的应用有什么区别?


7、HTTP发展历程,HTTPS

HTTP2相比1.1版本做了哪些优化?二进制传输,多路复用,设置优先级,头部压缩,服务器推送


HTTP2的存在的问题?队头阻塞,握手延迟


HTTP3做了哪些改进,还存在什么问题?TCP->UDP,QUIC链接迁移,操作系统内核CPU 负载


HTTP和HTTPS的关系与区别?SSL/TLS


HTTPS建立连接的过程?TLS握手过程


get和post的区别


什么是中间人攻击,怎么避免?


8、网络协议常见问题

DNS 域名解析过程


TCP建立连接三次握手?为什么要三次握手,两次是否可以?三次握手可以携带数据吗?


初始序列号(ISN)是什么,是固定的么?


半连接队列?


四次挥手的过程,及状态转换?为什么建立连接握手三次,关闭连接时需要是四次呢?


为什么TIME_WAIT 状态需要经过 2MSL 才能返回到 CLOSE 状态?