传输层考试常见题型有哪些?
学网络技术,绕不开传输层。不管是考计算机等级证书,还是准备考研、面试,传输层都是重点内容。很多人复习时一头雾水,其实只要抓住常考题型,就能事半功倍。
选择题:考概念辨析
比如问你TCP和UDP的区别,哪个是面向连接的,哪个支持广播。这类题喜欢在“可靠性”“流量控制”“拥塞控制”这些关键词上做文章。记住一点:TCP像打电话,要先建立连接;UDP像发短信,发了就不管了。生活中视频通话卡顿但不断线,多是用了TCP;而直播偶尔丢帧却不延迟,往往是UDP在起作用。
填空题:记关键字段
常考TCP报文头的结构。比如首部长度字段占多少位?确认号的作用是什么?窗口大小用来干啥?这些数字容易混。可以联想:窗口就像快递站的取件口,一次能拿多少包裹,取决于口有多大。报文头里的“窗口”字段就是告诉对方:“我现在能收这么多数据”。
判断题:抠细节陷阱
题目可能说“UDP提供可靠传输”,这明显错。但也会出得更隐蔽,比如“TCP三次握手过程中,第三次可以携带数据”。这个对吗?对!第三次握手时,客户端确实可以顺便把数据一起发过去。就像两人见面,第三步“你好”说完,顺手就把资料递过去了。
简答题:讲清机制原理
比如解释TCP如何实现可靠传输。得分点通常是:确认应答、超时重传、序号机制、流量控制。不需要背原文,用自己的话说清楚就行。比如“发一个包,对方回个ACK,没收到就再发一遍,就像发微信消息,对面不回‘收到’,你就忍不住再发一次”。
计算题:算最大吞吐量或RTT
给一段网络环境,让你算理论上每秒最多传多少数据。这时候要用到公式:吞吐量 ≈ 窗口大小 / RTT(往返时间)。单位别搞错,注意KB和Kb的换算。举个例子,家里宽带100Mbps,但实际下载才10MB/s,很可能不是运营商问题,而是TCP窗口太小或者网络延迟高导致的。
编程题:模拟简单通信
有些考试会要求写一段Socket代码,实现客户端和服务端的基本通信。常见的是用Python或C语言。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 8080))
s.listen(1)
conn, addr = s.accept()
data = conn.recv(1024)
print('收到:', data.decode())
conn.send(b'Hello from server')
conn.close()这种题不考多难的逻辑,关键是记熟创建套接字、绑定、监听、接收这几个步骤。就像做饭,流程对了,味道不会差太多。
应用分析题:结合实际场景
比如问“在线游戏该用TCP还是UDP?”不能只答“用UDP”,还得说明原因:延迟敏感,允许少量丢包。再比如视频会议软件,早期用TCP,后来改用UDP加自定义重传机制,就是为了平衡流畅性和清晰度。这就像坐地铁,宁可偶尔跳一帧画面,也不愿整个画面卡住等缓冲。