《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
1、一个物理层的网络,例如以太网,可以同时被多个不同的网络层所使用。例如网络中的一些主机使用TCP/IP协议,其他主机使用其他的网络协议。
2、设备驱动软件从不关心IP数据报中的目的IP地址。这也是为什么要有ARP的原因。既然局域网中能够采用广播的方式传递数据,那为什么不把每个包都进行广播,然后让目的主机核对IP地址呢?原因就在于物理层首先需要核对数据帧中的目的物理地址是否与自己的地址相匹配,如果不匹配就可能被丢弃了,网络层都没有机会进行IP地址的匹配。而且每个包都使用广播的方式,让每台主机都到网络层才进行匹配,开销太大,显然设计是不合理的。
3、点对点链路不需要使用ARP,在链路配置时,需要告诉主机内核链路两端的IP地址,至于以太网之类的物理地址是不需要的。
4、当一台主机遇到针对自己的ARP请求时,它仅仅只是将自己的物理地址填充到ARP请求中的目的地址字段,然后分别将ARP请求中的两个源地址和两个目的地址互换,接着改变op字段,将ARP的类型由请求变为应答,最后发送回源主机。
5、以太网数据帧的大小最小为60个字节(不包含尾部4个字节),对于帧类型为ARP的以太网数据帧而言,以太网的报头占据了14个字节,ARP的相关信息占据了28个字节,所以仍然需要对数据帧进行相应的填充,以满足要求。
6、当系统收到一个ARP请求时,在发送一个ARP应答的同时,也会将该请求ARP的IP地址和物理地址保持在ARP缓存中。
7、ARP缓存中的数据不是永久保存的,一般的实现都是超过二十分钟未被使用,则该条记录废弃,同时如果该记录在有效期内又被使用了,则重新开始二十分钟的计时。
8、Proxy ARP:当一台主机,想要把数据发送到与之相连的路由器另一端的一台主机时,它其实得到的ARP应答其实是该路由器发出来的。因此,数据先是由源主机到达路由器,然后再路由器到达目的主机,在数据的整个传递过程中,目的IP地址是不变的,目的物理地址却一直在变。整条数据的传递路径上,除了源主机和目的主机外,其余的路由器都起到了代理作用。两台主机其实并不知道对方的物理地址,这也就是Proxy ARP的作用。
9、Gratuitous ARP:这一类ARP请求的特点就是,请求中的目的IP地址其实就是它自身的IP地址。为什么要这么做呢?原因有两个:一、在启动初期,确认网络中是否有主机的IP地址与自身重复,如果该ARP请求收到了回复,则说明IP地址有重复。二、让网络中的其他主机更新它们的ARP缓存,因为很有可能发送Gratuitous ARP的主机已经更换了网卡,物理地址已经变了,那么原本网络中其他主机内的ARP缓存的相关条目已经错误了,因此有必要通知它们进行更新。通常很多备份服务器在替换出问题的服务器时,会基于理由二发送Gratuitous ARP,以保证在IP地址不变的情况下,让其他客户机程序仍然能够与自己进行通信。
《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP的更多相关文章
- TCP/IP详解 卷一(第十四章 DNS:域名系统)
域名系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 从应用角度上看,对DNS的访问时通过 ...
- 【TCP/IP详解 卷一:协议】第二章:链路层
2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...
- 【TCP/IP详解 卷一:协议】第一章概论 学习笔记
第一章 概述 游览了一下,本章主要是简介OSI模型的低层(1-4层).介绍了TCP/IP协议族的相关知识. TCP/IP的分层 Application <--> TCP / UDP < ...
- 《TCP/IP详解》读书笔记
本书以UNIX为背景,紧贴实际介绍了数据链层.网络层.运输层 一.整体概念 1.各层协议的关系,只讨论四层 各层常见的协议: 网络层协议:IP协议.ICMP协议.ARP协议.RARP协议. ...
- TCP/IP详解 卷一学习笔记(转载)
https://blog.csdn.net/cpcpcp123/article/details/51259498
- TCP/IP详解 卷一(第十二章 广播和多播)
广播和多播仅应用于UDP. 广播指的是一个主机向网上的所有其他主机发送帧,而 多播仅发送给属于多播组的多个主机. 为了弄清广播和多播,需要了解主机对由信道传送过来帧的过滤过程 1.首先,网卡查看由信道 ...
- TCP/IP详解 卷一(第十九章 TCP的交互数据流)
TCP需要同时处理两类数据:块数据.交互数据. 本章将以Rlogin应用为例观察交互数据的传输过程. 交互式输入 首先观察在一个Rlogin连接上键入一个交互命令时所产生的数据流(每键入一个交互按键都 ...
- 『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详解——卷一:协议』读书笔记——02
2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...
随机推荐
- 回文串---Hotaru's problem
HDU 5371 Description Hotaru Ichijou recently is addicated to math problems. Now she is playing wit ...
- Eclipse环境下使用Maven注意事项
在最新版本的Eclipse Java EE IDE for Web Developers中已经包含Maven 2 在File,New中可以看到Maven Project,新建, 按照步骤一路下来,要求 ...
- 从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议
稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.cla ...
- jQuery eislideshow 图片轮播
在线实例 基础演示 自动播放 使用方法 <div id="ei-slider" class="ei-slider"> <ul class=&q ...
- js一些小题(二)
******************************************************************* 一个全局下的函数: function test() { aler ...
- js 中{},[]中括号,大括号
1. { } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如: var LangShen = {"Name":"Langshen",& ...
- artTemplate 介绍
artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现. 编 ...
- echarts 地图图
效果如下图: 1.下载echarts对应包: http://echarts.baidu.com/ 2.前端页面: <!DOCTYPE html> <html xmlns=" ...
- thinkPHP学习笔记(2)
1.调试模式 设置调试模式部分代码如下: <?php define('APP_DEBUG',TRUE); // 开启调试模式 常量定义代码 require '/ThinkPHP框架所在目录/Th ...
- iOS 准确计算某个时间点距现在的时间差的代码 如"几分钟,几小时,几秒之前" ,
利用时间戳来进行计算 ,需要给它一个时间: NSString *countTime = [self intervalSinceNow:@"2015-10-29 17:00:00" ...