探索软件无线电的原理与实践第二版
{
"introduction": [
"深入了解软件无线电的精髓,本节通过一个生动的例子,展示如何使用我们编写的SOCK程序生成和观察UDP数据包。"
],
"example_code": [
"bsdi % sock -v -u -i -n4 svr4 discard connected on 140.252.13.35.1108 to 140.252.13.34.9",
"bsdi % sock -v -u -i -n4 -w0 svr4 discard connected on 140.252.13.35.1110 to 140.252.13.34.9"
],
"output_analysis": [
"首次执行程序时,我们开启详细的日志(- v)以观察临时端口号。指定UDP(- u)而非默认的TCP协议,并使用源模式(-i)发送数据而不是标准输入输出。-n 4选项指示生成四份默认长度为1024字节的数据包,目标主机为SVR4。丢弃服务在1.12节中有描述。每次写操作默认输出长度为1024字节。",
"第二次运行程序时指定-w 0,即发送长度为0的UDP数据包。TCP DUMP的输出结果如图11-6所示。"
],
"network_behavior": [
"图11-6展示了向一个方向发送UDP数据包的TCP DUMP输出。显示了四份1024字节的数据包后是四份长度为0的数据包,间隔几毫秒(输入第二个命令花了4.1秒)。",
"在发送第一份数据报之前,发送端和接收端之间没有任何通信;在第17章中,我们将看到TCP协议在发送数据的第一个字节前必须与另一端建立连接。另外,当接收到数据时,接收端没有确认信号。在这个例子中,发送端并不知道另一端是否已经收到了这些数据包。",
"最后,值得注意的是每次运行程序时源端的UDP端口号都不同。第一次是1108,然后是1100。在1.9节我们已经提到,客户程序使用临时端口号一般在1024到5000之间。"
]
}