number headings: auto, first-level 2, max 6, 1.1
2 八股简答题和思考题
2.1 比较TCP和UDP
- 经纬恒润 嵌入式
- CVTE 嵌入式
- 阳光电源 嵌入式
TCP(传输控制协议)和UDP(用户数据报协议)是两种常见的传输层协议,它们在网络通信中有着不同的特点和用途:
- 连接性:
- TCP是面向连接的协议,它在通信之前需要建立连接,然后进行数据传输,最后释放连接。这种连接方式提供了可靠的数据传输,确保数据的完整性和顺序性。
- UDP是无连接的协议,通信双方之间不需要建立连接,直接发送数据包。UDP在发送数据时不会验证是否到达目的地,也不会保证数据包的顺序,因此速度较快,但可靠性较低。
- 数据可靠性:
- TCP保证数据的可靠性,通过序号、确认和重传机制确保数据包的顺序和完整性。如果数据包丢失或损坏,TCP会自动重传,直到数据被正确接收。
- UDP不保证数据的可靠性,发送数据后不会进行确认或重传。如果数据包丢失或损坏,应用程序需要自行处理丢失的数据或重传数据的需求。
- 适用场景:
- TCP适用于要求可靠数据传输和顺序传输的应用,如HTTP、SMTP、FTP等。其适用于那些需要确保数据准确无误到达目的地的应用场景。
- UDP适用于实时性要求较高的应用,如音频流、视频流、在线游戏等。由于UDP速度快、延迟低,因此对实时性要求高的应用更为适合,即使丢失部分数据也不会影响整体的用户体验。
- 头部开销:
- TCP的头部开销较大,约占据了数据包的20字节,用于存储序号、确认号、窗口大小等控制信息。
- UDP的头部开销较小,只有8字节,包含了源端口、目的端口、长度和校验和等信息,因此UDP在传输时的开销更小。
综上所述,TCP和UDP在网络通信中各有优劣,选择合适的协议取决于应用的需求和场景。
2.2 网络协议的三个核心要素是什么
- 从协议、服务和接口的角度:
- 协议(Protocol): 指定了通信双方之间的规则和约定,包括数据的格式、传输方式、错误处理等。
- 服务(Service): 指定了网络为用户提供的功能和特性,例如数据传输、安全性、可靠性等。
- 接口(Interface): 定义了网络协议的交互界面,包括数据交换的方法、参数传递的规则等。
- 从语法、语义和时序的角度:
- 语法(Syntax): 指定了数据的结构和格式,决定了数据如何被组织、封装和传输。
- 语义(Semantics): 定义了数据的含义和操作的行为,规定了数据包中的字段表示什么以及如何解释这些字段。
- 时序(Timing): 确定了数据包在发送和接收之间的顺序和时机,包括数据包的发送频率、确认接收数据包的时间、重传丢失数据包的策略等。
2.3 讲一下七层网络结构
- 七层网络协议是ISO组织提出的网络模型,其拥有应用层、表示层、会话层、传输层、网络层、数据链路层、物理层共计7层,典型协议如下:
- 应用层,例如
FTP Server
等应用。
- 表示层,例如
JPEG Encoder
、 ASCII
等负责数据编码解码、加密解密、压缩恢复技术。
- 会话层,例如
HTTP
、 socks
等协议。
- 传输层,例如
TCP
、 UDP
等协议,主要为上层协议提供服务。
- 网络层,主要是
IP
协议。
- 数据链路层,有
PPP
、 PPPoE
、 IEEE 802.11
等协议,主要用于宽带拨号、无线wifi等。
- 物理层,主要规定了物理传输介质的一些物理或电气参数,如
RJ45
网络接口。
- 但是由于其规定的略为复杂,该协议理论成功事实失败,现主要使用
TCP/IP
协议。
2.4 讲一下四层网络结构
- 四层网络结构即
TCP/IP
协议所规定的网络结构,相较于七层网络模型,其将应用层、表示层、会话层精简合并为应用层,数据链路层和物理层精简合并为网络接口层。
- 其各层的主要协议栈有:
- 应用层:
http
、 ftp
、 DNS
等。
- 传输层:
TCP
、 UDP
等。
- 网络层:主要使用
IP
协议。
- 网络接口层:
Eth
、 IEEE 802.11
等
- TCP/IP是当前应用最广泛的网络模型协议,而ISO七层模型在教学和理论研究中更为常用。
2.5 讲一下五层网络结构
五层网络协议也是TCP/IP协议的一种,其将四层的TCP/IP协议中的网络接口层拆回数据链路层和物理层两层,以方便进行单独研究。

2.6 讲一下比特率和波特率的区别
- 波特率是指每秒传输码元的速率,比特率是指每秒传输的二进制位的速率。
- 在大多数情况下,一个码元正好可以传输一个二进制位,而在一些物理层链路中,一个波特可以依靠划分更为细致的电平等级从而传输多个二进制位,因此波特率和比特率不再是一一对应的关系。
- 例如我们把电平划分为高电平两个电平等级时,一个波特就可以传输一个二进制位;当我们把电平划分为4个电平等级时,一个波特就可以传输2个二进制位,此时也称为四进制码元。因此当我们划分为N进制码元时,一个波特就可以传输个二进制位。
2.7 什么是码元?什么是码元长度?
- 码元指使用一个固定时长的信号波形能传输的数字信号的信息量。
- 而码元长度就是这个固定时长的长度。
2.8 什么是网络时延
- 网络时延是指一个数据报、分组、比特流从网络一段传递到网络另外一段所需要的时间,也叫延迟或迟延。
- 时延可以根据成因不同划分为以下四个部分:
- 发送时延(传输时延):从发送分组的第一个bit算起,直到最后一个bit发送完毕所需的时间发送时延数据长度信道带宽
- 传播时延:电磁波在链路上传播所需要的时间传播时延信道长度电磁波在信道上的传播速度
- 排队时延:等待输入、输出链路可用的时间
- 处理时延:转发设备(如路由器)检错,处理的时间
2.9 [TODO]什么是有连接服务,什么是无连接服务
2.10 [TODO]点对点和端到端工作在哪层?工作机制是什么
2.11 TCP/IP网络协议的核心是什么,如何引出 "over everything" 和 "everything over"
2.15 讲一讲集线器、交换机、路由器分别工作在哪一层?作用?
2.16 讲一讲路由器的组成
- 现在的路由器本质是一台小型的专用计算机,其和普通计算机一样,也拥有CPU、RAM、ROM,运行着路由专用操作系统,此类系统大多基于Linux系统,常用的有OpenWrt、思科IOS(Internetwork Operating System)、LEDE等。