第16章 BOOTP:引导程序协议

16.3 一个例子

让我们看一个用 B O O T P引导一个X终端的例子。图 1 6 - 3显示了t c p d u m p的输出结果(例中客户名为p r o t e u s,服务器名为m e r c u r y。这个t c p d u m p的输出是在不同的网络上获得的,这个应用程序是其他例子中一直使用的)。

在第1行中,我们看到客户请求来自 0 . 0 . 0 . 0 . 6 8,发送目的站是 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5 . 6 7。该客户已经填写的字段是秒数和自身的以太网地址。我们看到客户通常将秒数设置为 1 0 0。

t c p d u m p没有显示跳数和事务标识,因为它们均为 0 (事务标识为 0表示该客户忽略这个字段,因为如果打算对返回响应进行验证,它将把这个字段设置为一个随机数值 )。 第2行是服务器返回的应答。由服务器填写的字段是该客户的 I P地址(t c p d u m p显示为名字p r o t e u s)、服务器的 I P地址(显示为名字 m e r c u r y)、网关的 I P地址(显示为名字m e r c u r y)和引导文件名。

在收到B O O T P应答后,该客户立即发送一个A R P请求来了解网络中其他主机是否有I P地址。跟在w h o - h a s后的名字p r o t e u s对应目的I P地址(图4 - 3),发送者的I P地址被设置为0 . 0 . 0 . 0。它在0 . 5秒后再发一个相同的A R P请求,之后再过0 . 5秒又发一个。在第3个A R P请求(第5行)中,它将发送者的I P地址改变为它自己的I P地址。这是一个没有意义的A R P请求(见4 . 7节)。 第6行显示该客户在等待另一个 0 . 5秒后,广播另一个B O O T P请求。这个请求与第1行的唯一不同是此时客户将它的I P地址写入I P首部中。它收到来自同一个服务器的相同应答(第7行)。

该客户在等待 2秒后,又广播一个 B O O T P请求(第8行),同样收到来自同一服务器的相同应答。

该客户等待2秒后,向它的服务器 m e r c u r y发送一个A R P请求(第1 0行)。收到这个A R P应答后,它立即发送一个 T F T P读请求,请求读取它的引导文件(第 1 2行)。文件传送过程包括2 4 6 4个T F T P数据分组和确认,传送的数据量为 5 1 2×2463 + 224 = 1 261 280字节。这将操作系统调入X终端。我们已在图1 6 - 3中删除了大多数T F T P行。

当和图1 5 - 2比较T F T P的数据交换过程时,要注意的是这儿的客户在整个传输过程中使用T F T P的知名端口(6 9)。既然通信双方中的一方使用了端口 6 9,t c p d u m p就知道这些分组是T F T P报文,因此它能用T F T P协议来解释每个分组。这就是为什么图 1 6 - 3能指明哪些包含有数据,哪些包含有确认,以及每个分组的块编号。在图 1 5 - 2中我们并不能获得这些额外的信息,因为通信双方均没有使用 T F T P的知名端口进行数据传送。由于 TFTP 服务器作为一个多用户系统,且使用T F T P的知名端口,因此通常T F T P客户不能使用那个端口。但这里的系统处于正被引导的过程中,无法提供一个 T F T P服务器,因此允许该客户在传输期间使用 T F T P的知名端口。这也暗示在m e r c u r y上的T F T P服务器并不关心客户的端口号是什么—它只将数据传送到客户的端口上,而不管发生了什么。

从图1 6 - 3可以看出在9秒内共传送了1 261 280字节。数据速率大约为140 000 bps。这比大多数以F T P文件传送形式访问一个以太网要慢,但对于一个简单的停止等待协议如 T F T P来说已经很好了。

X终端系统引导后,还需使用 T F T P传送终端的字体文件、某些 D N S名字服务器查询,然后进行X协议的初始化。图 1 6 - 3中的所有步骤大概需要 1 5秒钟,其余的步骤需要 6秒钟,这样无盘X终端系统引导的总时间是2 1秒。

速读原著-TCP/IP(BOOTP示例)相关推荐

  1. 速读原著-TCP/IP(BOOTP 的分组格式)

    第16章 BOOTP:引导程序协议 16.2 BOOTP 的分组格式 BOOTP 请求和应答均被封装在U D P数据报中,如图1 6 - 1所示. 图1 6 - 2显示了长度为3 0 0字节的B O ...

  2. 速读原著-TCP/IP(UDP首部)

    第11章 UDP:用户数据报协议 11.2 UDP首部 U D P首部的各字段如图11 - 2所示. 端口号表示发送进程和接收进程.在图 1 - 8中,我们画出了 T C P和U D P用目的端口号来 ...

  3. 速读原著-TCP/IP(tcpdump的输出)

    A.4 tcpdump的输出 t c p d u m p的输出是"原始的".在本书中包含它的输出时,我们对它进行了修改以便阅读.首先,它总是输出它正在监听的网络接口的名字.我们把这 ...

  4. TCP/IP 通信示例

    TCP/IP 通信示例 Global String ReadData_P_All$, ReadData_P$(10), data$ ' Global Preserve Double x Global ...

  5. 一文读懂 TCP/IP 网络模型

    本文是网络转载原文链接: https://www.toutiao.com/i6819659519954518541/? 简介 互联网是怎么构成的,又是怎么运作的?什么面试官老喜欢问 TCP/IP 网络 ...

  6. tcp硬件校验和rxtx开启是啥意思_一文读懂 TCP/IP 网络模型

    前言 互联网是怎么构成的,又是怎么运作的?什么面试官老喜欢问 TCP/IP 网络?为什么远隔万里的计算机可以互相通信?计算机网络作为 IT 行业的基石,是工程师永远绕不开的话题. 网络的分层体系结构 ...

  7. 一文读懂TCP/IP四层模型

    4.应用层:和程序相关的一层 3.传输层:负责数据从发送端到接收端 3.1 端口号分类 知名端口号:0-1023 ftp:21 SSH:22 Telnet:23 DNS:53 http:80 HTTP ...

  8. 读懂TCP IP四层模型与OSI七层模型

    目录 一.OSI七层模型 二.TCP/IP四层模型 三.OSI模型的七层解读 3.1 OSI七层模型小结 3.2 TCP/IP模型与OSI模型的对应关系 四.常见的网络相关协议 五.TCP和UDP协议 ...

  9. 速读原著-Android应用开发入门教程(Android中建立工程)

    2.4 Android中建立工程 2.4.1. 建立工程 Android 的 SDK 环境安装完成后,就可以在 SDK 中建立工程并进行调试了. 建立 Android 工程步骤如下: 选择" ...

最新文章

  1. 聊聊flink的StateTtlConfig
  2. mybatis缓存机制
  3. 卡尔曼滤波的原理说明
  4. 物联网平台存量设备如何一键迁移企业版实例
  5. ArcGis融合小多边形到相邻多边形
  6. 程序win10_win10该文件没有与之关联的程序来执行操作
  7. 腾讯:中小企业数字化转型路径报告|附PDF下载
  8. StreamWriter、StreamReader 写读文件的两种方法
  9. Python 头像动漫化,快来生成女朋友的动漫头像
  10. 【OpenCV入门指南】第六篇 轮廓检测 下
  11. 5.深入分布式缓存:从原理到实践 --- 从Memcached开始了解集中式缓存
  12. 魏俊妮《支持业务发展为核心的HR六大模块体系构建》课程大纲
  13. 五一,我们来欣赏一篇宋词
  14. 四川夏季避暑好去处,十大清凉景点大推荐哦~
  15. 常用手机尺寸以及分辨率
  16. 多项式算法7:多项式除法
  17. uniapp实现倒计时
  18. 获取、设置响应头、设置缓冲区
  19. 10月3日 c语言 输入4*5矩阵
  20. 不权威的国产CPU发展历程

热门文章

  1. vue $delete 的使用
  2. 计算机毕业设计springboot+vue基本安卓/微信小程序的驾校考试预约系统 uniapp
  3. SQL server 模拟数据进行select基本查询
  4. 一款很有意思的Mac应用:Little Snitch
  5. 二维图像处理到三维点云处理
  6. canvas中save和restore的理解和使用
  7. 微信小程序input输入框关键字自动联想及关键字高亮
  8. 数据库有哪些常见的对象?
  9. 中国高纯硝酸银市场调研与投资战略报告(2022版)
  10. 用自家的网络搭建属于自己的服务器