『TCP/IP详解——卷一:协议』读书笔记——12
2013-08-24 14:22:46
- 4.5 ARP举例
首先要介绍一些tcpdump这个强大的Linux命令,它不但可以分析封包的流向,连封包的内容也可以监听,如果数据段没有加过密我们就可以做一些很好玩的事情了。具体的使用方法请大家man tcpdump。
sudo tcpdump -i wlan0 -nn
这个命令的使用要拥有root权限,上边的命令可以监听wlan0接口。
- 4.5.1 一般的例子
telnet svr4 discard
作者在ARP告诉缓存为空的前提下,使用了telnet命令与一个无效的服务器链接,下图为经过简单修改后的tcpdump输出(为了方便大家阅读,把时间间隔等做了优化)

| 第一行 | 源端主机(bsdi)的硬件地址是0:0:c0:6f:2d:40。目的端主机的硬件地址是ff:ff:ff:ff:ff:ff,这是一个以太网广播地址。电缆上的每个以太网接口都要接受这个数据帧并对它进行处理。上半行有源主机和目的主机的硬件地址,arp是帧类型字段0x0806翻译的结果,说明此数据帧是一个ARP请求或应答。arp后面的60表示以太网数据帧长度。由于ARP请求的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头),因此,每一帧都必须加入填充字符以达到以太网的最小长度要求:60字节。(回顾图1-7下面给出来了)一般4字节的以太网尾部不包含在60字节之中。下半行arp who-has表示作为ARP请求的这个数据帧中,目的IP地址是svr4的地址,发送端的IP地址是bsdi的地址。tcpdump打印出主机名对应的默认IP地址。这句话很好翻译——“谁是svr4就告诉bsdi” |
| 第二行 | 我们经过0.0022s之后成功的收到了ARP应答。我们发现ARP应答的目的地址是bsdi,证明他比较机智,不用再广播一次问“谁是发给我ARP请的人呀,把你物理地址告诉我呗”。下半句也很好理解——“svr4在0:0:c0:c2:9b:26” |
| 第三行 | 这一行是第一个请求建立链接的TCP段。它的目的硬件地址是目的主机(svr4)。我们将在第18章讨论这个段的细节内容 |
在tcpdump命令输出中,我们没有看到svr4在发出第一段TCP报文(第4行)之前发出的ARP请求。这是因为可能在svr4的ARP高速缓冲中已经有bsdi的表项。一般情况下,当系统收到ARP请求或发送ARP应答时,都要把请求端的硬件地址和IP地址存入ARP高速缓存。

- 4.5.2 对不存在主机的ARP请求
我们用telnet命令连接一个主机不存在的IP地址140.252.13.36,用tcpdump抓包后显示如下:

令人感兴趣的是看到多次进行ARP请求:第一次请求发生后5.5秒进行第2次请求,在24秒之后又进行第3次请求(在21章我们将看到TCP的超时和重发算法的细节)。事实上,大多数的BSD实现把完成TCP连接请求的时间限制设置为75秒。我们没有看到任何TCP报文段,因为只有ARP应答返回时,硬件地址到这时才可能知道,TCP报文才可以被发送。
- 4.5.3 ARP高速缓存超时设置
超时设置的意思是,ARP高速缓存中的地址保存时间(每次在访问表项时重设超时值)。对于完整表项超时值为20分钟,不完整表项为3分钟(上个例子中的不可链接的地址),一旦不完整表项被成功连接,则刷新超时值为20分钟。我们可以通过ARP命令来设置这些超时值。
『TCP/IP详解——卷一:协议』读书笔记——12的更多相关文章
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 『TCP/IP详解——卷一:协议』读书笔记——18
2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
- 『TCP/IP详解——卷一:协议』读书笔记——13
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...
- 『TCP/IP详解——卷一:协议』读书笔记——11
2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...
- 『TCP/IP详解——卷一:协议』读书笔记——07
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...
- 『TCP/IP详解——卷一:协议』读书笔记——06
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...
- 『TCP/IP详解——卷一:协议』读书笔记——05
2013-08-19 22:35:57 2.6 PPP:点对点协议 PPP点对点协议修改了SLIP协议中的所有缺陷: 1. 在串联链路上封装IP数据报的方法.PPP即支持数据为8位&无奇偶检验 ...
- 『TCP/IP详解——卷一:协议』读书笔记——04
2013-08-18 16:31:17 第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接受IP数据报 为ARP模块发送ARP请求和接受ARP应答 为RARP发送RARP请求和接 ...
随机推荐
- ajax实现jsonp跨域接口
HTML页面代码: <script type="text/javascript"> function UrlSearch(){ var name,value; var ...
- 关于CMFCPropertyGridFontProperty的赋值问题
CMFCPropertyGridFontProperty是派生于CMFCPropertyGridProperty类的用于字体设置的类.它可以设置字体的名称.大小.粗细等各项参数.但是类并不提供用于初始 ...
- UNICODE 7.0定义的表情符
td.graph { font-size:24px; } UNICODE 7.0定义了78个表情符,从0x1F600到0x1F64F(其中0x1F643和0x1F644没有定义).下表中列出了这些表情 ...
- 【BZOJ1208】宠物收养所(平衡树,splay)
题意:见题面 思路:因为每个时刻要么全是人要么全是宠物,所以可以一棵splay解决 维护单点插入,单点删除,求前驱,求后继即可 ..,..]of longint; num,fa:..]of longi ...
- dojo创建tree
今天介绍dojo目录树的效果,效果如下图: HTML代码如下: <body class="claro"> <div id="rootlessTree&q ...
- myeclipse10的激活
myeclipse 提醒了我好几天要激活,今天操作了下,出现的问题分享一下. 在激活工具里面没有找到cracker.jar,按照指导双击run.bat,但是打开之后闪一下就自动关闭了,不得其解.然后搜 ...
- 3.使用git提交项目到开源中国(gitosc)
1.提交地址 使用的是开源中国git仓库 git.oschina.net 在windos环境下使用msysgit. 2.初始化化 username.email初始化 git config --glob ...
- Xcode Custom Shortcut
edit file "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources" add < ...
- python函数动态参数详解
Python的动态参数: 1,参数前一个"*":在函数中会把传的参数转成一个元组. def func (*args): print(args) func(123,1,2,'a') ...
- 去除inline-block之间的间距
a标签的父容器添加: font-size: 0; -webkit-text-size-adjust:none;