-
5-09端口的作用是什么?为什么端口号要划分为三种?
-
5-14一个UDP用户数据报的首部的十六进制表示是:06320045001CE217。试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是从服务器发送给客户?使用UDP的这个服务器程序是什么?5-38设TCP的ssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第1轮次到第15轮次传输的各拥塞窗口大小。你能说明拥塞窗口每一次变化的原因吗?
-
5-59TCP连接使用1000字节的窗口值,而上一次的确认号是22001。现在收到了一个报文段,确认了字节22401。试用图来说明在这之前与之后的窗口情况。
5-09 端口的作用与划分原因
- 作用:端口号用于标识同一台主机上的不同进程,使主机能同时运行多个网络服务。
- 端口号划分为三种的原因:
- 0–1023(知名端口):分配给常见服务(如HTTP的80,FTP的21)。
- 1024–49151(注册端口):为用户进程或应用注册使用。
- 49152–65535(动态/私有端口):临时端口,操作系统分配给客户端进程。
5-14 UDP首部解析
首部十六进制:0632 0045 001C E217
-
拆分:
- 源端口:
0632→ 十进制 1586 - 目的端口:
0045→ 十进制 69 - 总长度:
001C→ 十进制 28字节 - 校验和:
E217(略)
- 源端口:
-
数据部分长度 = 总长度 - UDP首部长度(8字节) = 28 - 8 = 20字节
-
结论:
- 客户端→服务器(通常客户端用高端口,服务器用低端口;69 是 TFTP 服务器端口)
- 服务器程序:TFTP
5-38 TCP 拥塞控制窗口变化
- 初始:
ssthresh = 8 - 第1轮开始慢开始,每次加倍,直到达到ssthresh
- 超时后 cwnd = 1,ssthresh = cwnd / 2 = 6(从12降为6)
| 轮次 | 拥塞窗口(cwnd) | 原因 |
|---|---|---|
| 1 | 1 | 慢开始 |
| 2 | 2 | 慢开始 |
| 3 | 4 | 慢开始 |
| 4 | 8 | 到达ssthresh |
| 5 | 12 | 拥塞,超时 |
| 6 | 1 | 超时,重设cwnd |
| 7 | 2 | 慢开始 |
| 8 | 4 | 慢开始 |
| 9 | 6 | 达ssthresh,转拥塞避免 |
| 10 | 7 | 拥塞避免(+1) |
| 11 | 8 | 拥塞避免(+1) |
| 12 | 9 | 拥塞避免(+1) |
| 13 | 10 | 拥塞避免(+1) |
| 14 | 11 | 拥塞避免(+1) |
| 15 | 12 | 拥塞避免(+1) |
5-59 TCP窗口图解(窗口值1000,确认号从22001变为22401)
-
前状态:
- 已确认:22000字节及以前
- 窗口范围:22001 到 23000(1000字节)
-
收到确认号22401表示:
- 收到了22001到22400的所有数据
- 新窗口范围:22401 到 23400
✅ 变化前(窗口开始于 22001):
复制
编辑
[🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦][🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥] (共1000字节)
22000 ↑确认号=22001 ↑窗口末尾=23000
已确认:0~22000
发送未确认:22001~23000
窗口范围:22001~23000
✅ 变化后(确认号更新为 22401,窗口向前滑动):
复制
编辑
[🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦][🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥]
22400 ↑确认号=22401 ↑窗口末尾=23400
已确认:0~22400
发送未确认:22401~23400
窗口范围整体前移了 400 字节
本文作者为wzzyhg,转载请注明。