计算机网络 — 知识地图
下面是发送信息的整个流程,整个计算机网络也是层层引用的,可以从应用层开始,看看信息是如何发送的
🔗 一条请求的旅程
先看 HTTP万维网 知道怎么发数据
发送内容看 HTTP报文, HTTP状态码,加密 HTTP 看 HTTPS
还有顺应时代发展,为了提高效率对HTTP追加协议
知道发什么了, 下一步是把 URL 转化成 IP, 就需要用 DNS 把域名获得 IP 地址, 之后就可以传输了
应用层传输途径还分 与HTTP协作的web服务器(代理、隧道、网关、缓存)
应用层把数据准备好了,交给套接字,传输层接手。
传输层要解决一个问题:这份数据怎么送到对面机器上对应的进程?
先看 套接字,这是应用层和传输层的交接口,数据从这里往下走,靠端口号找到目标进程。
传输层有两条路可以走:
快但不保证到 → 看 UDP协议,DNS 查询、视频流都走这条路
要保证到 → 看 TCP,HTTP 走这条路,TCP 负责连接的建立与断开、数据不丢、流量和拥塞控制,代价是比 UDP 重
传输层把数据交给网络层,网络层要解决:这个数据包怎么从你的手机,穿越千里,送到朋友的手机?
1. 获得网络身份(寻址与分配)
先要有 IP 地址,看 IP地址与子网划分 知道地址怎么分配和划分
连上 WiFi 路由器自动分配 IP 的过程看 DHCP协议
2. 局域网内的准备(公私网转换与底层寻路)
你拿到的通常只是个”内网 IP”,数据要上公网,必须在路由器网关进行”身份替换”,这就是 NAT与内网穿透
有了 IP,还要知道对方的 MAC 地址才能在局域网里发帧,这靠 ARP与ICMP 的 ARP 协议解决
3. 跨越互联网的旅途(路由接力与移动网络)
出了局域网之后,数据包怎么一跳一跳找到目标,看 全球寻路与路由协议,里面的 OSPF、BGP 等路由协议说明了广域网是如何选路的
如果走的是手机流量,数据经过 4G 基站接力,基站是手机的唯一物理入口,看 移动网络与基站,换基站时 IP 不断的机制看 移动IP
不是所有数据都是一对一发的,直播、IPTV 是一对多,看 IP多播与广播
4. 质量监控与编程实战
数据包走丢了怎么排查、ping 背后是什么,看 ARP与ICMP 的 ICMP 部分
ARM 和 x86 字节序不一样,网络传输要转换,看 字节序与网络编程基础
想看数据包实际长什么样,用 Wireshark 抓,看 网络安全与抓包工具
核心章节(按 OSI / TCP-IP 模型)
🔴应用层
| 题目 | 难度 | 相关公司 |
|---|---|---|
| 在浏览器中输入网址后,整个过程发生了什么? | 中等 | 蔚来 |
| FTP和SFTP的区别?在文件传输中的使用? | 简单 | 华为 |
| HTTP和HTTPS的区别?TLS握手过程? | 简单 | 小米 |
| MQTT、CoAP、HTTP三种协议的区别和适用场景 | 简单 | 小米 |
| 什么是DNS?DNS解析的过程? | 中等 | 华为 |
| 什么是TFTP协议?在嵌入式设备固件烧写中的应用? | 中等 | - |
| JSON和XML在嵌入式通信中的选择 | 中等 | 小米 |
| 什么是Protobuf?在嵌入式系统中的优势? | 中等 | 字节跳动 |
| 什么是RESTful API?在嵌入式Web服务中的应用? | 中等 | 涂鸦智能 |
| 什么是WebRTC?在嵌入式音视频通信中的应用? | 中等 | 大华 |
| 什么是SSL/TLS?在嵌入式设备中如何实现加密通信? | 中等 | 华为 |
| mbedTLS在嵌入式系统中的使用方法 | 中等 | 小米 |
| 什么是OTA(Over-The-Air)?网络安全如何保证? | 中等 | 涂鸦智能 |
| 嵌入式Web服务器(如Mongoose、libmicrohttpd)的选择 | 中等 | 海康威视 |
| 如何实现一个简单的HTTP服务器? | 中等 | 海康威视 |
| 嵌入式系统中的NTP时间同步协议 | 中等 | 海康威视 |
| 什么是PTP(IEEE 1588)精确时间协议? | 中等 | 华为 |
| OSI七层网络模型各层的功能 | 中等 | 经纬恒润 |
| 网络模型的层级、功能和对应OSI层分别是什么?TCP和UDP的区别有哪些? | 中等 | OPPO |
🔴传输层
| 题目 | 难度 | 相关公司 |
|---|---|---|
| TCP三次握手和四次挥手的过程是什么?为什么握手三次挥手四次? | 中等 | 蔚来 |
| TCP的三次握手和四次挥手过程 | 中等 | 华为 |
| TCP和UDP的区别?各自的优缺点? | 简单 | 经纬恒润 |
| TCP和UDP各自会出现粘包和拆包吗?为什么? | 中等 | 蔚来 |
| TCP粘包问题的原因和解决方法 | 中等 | CVTE |
| TCP的TIME_WAIT状态的作用和影响 | 简单 | 字节跳动 |
| 什么是TCP的RST报文?触发条件有哪些? | 简单 | 字节跳动 |
| 什么是半连接队列和全连接队列?SYN Flood攻击原理? | 中等 | 字节跳动 |
| 什么是TCP Keepalive?在嵌入式长连接中的应用? | 中等 | 海康威视 |
| 什么是TCP的滑动窗口机制?流量控制如何实现? | 中等 | 字节跳动 |
| TCP的拥塞控制算法有哪些?慢启动和拥塞避免的原理? | 中等 | 华为 |
| 什么是Nagle算法?什么情况下需要禁用? | 中等 | 腾讯 |
| 什么是长连接和短连接?各自的适用场景? | 中等 | 海康威视 |
| socket通信的基本流程 | 中等 | 经纬恒润 |
| 什么是Unix域套接字?与TCP Socket的区别? | 简单 | 腾讯 |
| 什么是套接字选项?SO_REUSEADDR和SO_REUSEPORT的作用? | 简单 | 字节跳动 |
| epoll、select、poll的区别和性能比较 | 简单 | 智元机器人 |
| 什么是心跳包?在嵌入式网络通信中如何设计? | 中等 | 涂鸦智能 |
| 什么是断线重连机制?如何实现? | 中等 | 涂鸦智能 |
| 嵌入式系统中轻量级TCP/IP协议栈lwIP的特点 | 中等 | 小米 |
| 什么是uIP协议栈?与lwIP的比较? | 中等 | 格力 |
🔴网络层
| 题目 | 难度 | 相关公司 |
|---|---|---|
| IP地址的分类和子网掩码的计算 | 中等 | 华为 |
| 什么是IPv6?与IPv4的主要区别? | 简单 | 华为 |
| DHCP的工作流程(DORA过程) | 中等 | 海康威视 |
| 什么是多播(Multicast)?在嵌入式系统中的应用? | 中等 | 海康威视 |
| 什么是组播和广播?各自的使用场景? | 中等 | - |
| 什么是网络字节序?如何进行主机字节序和网络字节序的转换? | 中等 | 华为 |
| 跨平台通信时如何处理字节序问题? | 中等 | 大疆 |
| 嵌入式设备的网络安全威胁和防护措施 | 中等 | 海康威视 |
| 什么是防火墙?iptables的基本使用? | 中等 | 新华三 |
| 网络抓包工具Wireshark和tcpdump的使用方法 | 中等 | - |
| 网络请求处理慢,可以从哪些地方排查? | 中等 | 智元机器人 |
🔴数据链路层
奇偶校验码:1位校验位,只能检测奇数个错误,不能纠错
CRC循环冗余校验:生成多项式 + 模2除法,检错能力强,以太网常用CRC-32
海明码:插入多个校验位,能定位并纠正1位错误
滑动窗口:可靠传输机制
组帧//字符计数,字符填充,零比特填充,
信道划分介质访问控制//时分复用(TDM),频分复用(FDM),波分复用(WDM),码分复用(CDM)
随机访问控制// 纯ALOHA协议,时隙ALOHA,坚持CSMA,非坚持,P非坚持,令牌
以太网//,简单介绍局域网,4种传输介质,IEE802.3,MAC地址,MAC帧格式,CSMA/CD,IEEE802.11WIFI,CSMA/CA,以太网交换机
广域网//PPP点对点
🔴物理层
基础概念//码元是什么,WIFI码元8bit,奈奎斯特,香农
编码与调制//二进制数据,归零编码,非归零,曼彻斯特,差分曼彻斯特,幅移键控,频移键控,相移键控,正交幅度
传输介质//双绞线,同轴电缆,光纤,无线电,红外微波激光