日志分类:协议基础

什么是免费ARP

2010年05月17号 16:10  |  分类:协议基础

 

免费ARP包是标准ARP请求包的特例,目的MAC地址仍是二层广播地址FFFF-FFFF-FFFF,源MAC地址是发送ARP请求主机的MAC地址,然而,源IP和目的IP都是发送主机的IP。这就是免费ARP包和标准ARP请求包的区别。

如果大家,看到一个ARP请求包的目的MAC是一个单播地址,那么就要引起警觉了!当然,不排除一些二层安全技术使用这种不标准的ARP请求包用于维护网关上的映射表,谁叫ARP机制没认证机制,想怎么做都行。

免费ARP包一般产生于系统引导时,网络模块用于确定当前使用的IP地址,同段内是否还有其他人在使用。当主机发送一个免费ARP包后,未收到应答,说明IP无冲突,反之则报错。

免费ARP还有另外一个作用,如果发送免费ARP请求的主机更换了网卡,这个包正好用于修改其他主机MAC缓冲池中的映射关系。通过这个功能,足可看出ARP机制的脆弱性。《TCP/IP详解 卷1:协议》第45页23行有这么一句话:“主机接收到任何ARP请求都要完成这个操作”,唉,这就是ARP攻击泛滥的根本原因。不知何时才能得到纠正,全世界统一升级二层ARP协议是个难题!再次郁闷!

以下是免费ARP的抓包结果图:

免费ARP抓包截图

简单网络,智能边缘

2009年11月7号 22:11  |  分类:协议基础

 

传统的邮政服务可以被看作是一个简单网络的例子。其工作过程使我们都很熟悉:把信
放在信封里,写出最终收信人地址,然后投进本地的邮筒里。之后我们这些终端用户,可以
简单地相信“邮政网络”能在某个合理的时间内(通常是几天)把信送到目的地。我们承认
有时信可能会丢失。由于我们了解邮政服务的局限性,我们要采用自己的端到端策略来确保
传输的成功(例如几天后给收信人打个电话,或每隔几天邮寄原信件的拷贝,直到接收人回
复他已经收到邮件)。网络本身既不看信封中的内容来决定该做什么,也不会对信封中的内容
做任何修改。所有额外的服务(例如,若信件发往国外时信件内容的翻译、给信加上安全措
施或转发信件的多份拷贝)都是由在各自一端的人(也就是智能边缘)来完成的。
从终端用户的观点来看,尽力而为的IP网络就像是一个很简单的、功能齐全的实体,其
首要的任务就是把数据分组从一点传到另一点。终端用户通常是运行在一个与IP网络相连的
终端点上的应用程序;这些终端点都采用数字IP地址来标识。当前的Internet是基于IPv4的;
在其协议中采用32位(4个字节)的值来表示终端点的IP地址。习惯上我们用点分整数的形式
来记录这些地址,即用句点分隔的4个十进制数字分别代表了构成IP地址的每个字节。例如32
位二进制地址10000000010100001100010100000011用点分整数的形式可记为
128.80.197.3。从理论上说,最多可有232个唯一的IPv4地址,但是下面你会看到实际可以使用的地址数目要比这少的多。

终端有时被通称为主机,尽管并不完全准确。因为一个主机(一台PC机、工作站或任何
能与IP网络相连的物理实体)实际上可能支持多个IP终端(即多穴主机,其每个终端点是由
一个与主机相连的唯一的网络接口来代表的)。分配给特定终端的IPv4地址取决于它在什么地
方与IP网络相连。因此,IPv4地址同时表征了标志和位置。如果应用系统从一个主机移到另
一个主机上,或者主机改变了与IP网络的连接点,那么用于标识应用系统的IP地址也必须改
变。

一般的应用系统既不用了解也不需要关心IP网络的内部情况,应用系统所需要知道到的
仅仅是与其进行分组交换的其它终端的IP地址。(图1-1表示一个终端向另一个终端发送分组,
发送端所要了解的就是目标端的地址—w.x.y.z)。分组的内容是任何可以用数字化表示的信
息—图像、文本、声音、影片等—其内容只受应用系统复杂度的限制。IP网络本身并不关
心每个终端上应用系统发送的信息内容的具体含义。采用简单网络/智能边缘的方式,所有重
要的过程都发生在网络的终端上,而不是发生在网络的中间,这种方法也就是所说的端到端
的模型。

注:IP地址与完全限定域名(FullyQualifiedDomainNames,FQDN,即类似
www.lucent.com或whitehouse.gov这种让人易读的地址格式)有着密切的关系。尽管这
种文字化的地址有时也被认为是IP地址,但实际上它们不是。如果一个用户的应用系
统采用FQDN,一个被称为域名系统(DNS)的系统就会将这个地址解析为相应的IP地
址,而这个操作对应用的用户是透明的。应用系统是用解析出的数字IP地址与其它主
机建立分组通信。

今天的Internet

2009年11月5号 23:06  |  分类:协议基础

 

在着手研究I n t e r n e t的服务质量( Q o S)之前,我们首先来回顾一下现今的互连网协议
(即I P协议)网络的发展状况以及推动其进一步发展的应用需求。这一章涵盖了尽力而为
(Best Eff o r t)的I P技术的基础,以及如何影响其自身的发展道路。本章还阐述了现有的I P技
术在面临下一代应用(例如I n t e r n e t电话、IP虚拟专用网( Virtuoll PriVate Netwark, VPN)以
及多媒体We b发布等)需求时存在的局限。
注如果你已经了解IP网络的基本知识,例如IP寻址、子网、前缀、最短通路寻路、路
由器和路由协议的作用、以及为什么现今的I n t e r n e t只提供尽力而为的服务,那么你可
以跳过这一章。我们在这一章中的主要目的是对一系列背景知识的回顾,以便于开始
讨论下一代的新技术,而这种新技术要求把Q o S加到I n t e r n e t中去。因为现在的I n t e r n e t
是基于IP协议版本4(IPv4)的,我们还是需要对其进行一下回顾。
“网络应该尽可能地简单”是I P网络互连最基本的原则之一,即网络只需要为相对“左右
缩2智能化”的边缘设备之间的通信提供最小的功能集。它代表一种与传统电信网络完全不同
的设计观点。通常电信网的设计是为了配合极端简化的终端用户设备(如用户的电话机),而
尽量提高网络智能化程度。
I n t e r n e t的发展受益于微电子系统在处理能力和精密程度方面令人惊异的快速发展,特别
是嵌入式计算机和日益普及的的个人电脑( P C)的发展。1 9 8 0年以后,这些设备的发展已经
使简单网络/智能边缘(simple network / smart edge)的设计模型成为可能;事实上,它也的
确为成千上万的工程师和网络爱好者提供了开发I n t e r n e t应用(智能服务)的工具。而与之相
对,电信业通常受到政府或大公司的严格控制,因此电信智能网络服务的进展受到他们所控
制的专业工程试验室在这方面取得进展的限制。作为智能化终端的P C平台的快速发展无疑成
为2 0世纪9 0年代I n t e r n e t成功的一个重要原因(尽管所有传统电信行业也在努力开发和介绍它
们自己的数字网络服务)。
简单的I P网络所要求的最小功能是其连接性—即如果存在任何可能的通路,数据分组就
可以在一段合理的时间内从源端传送到目的端。对合理时间所定义的范围可以从毫秒级到秒
级,最终也许不能保证任何发送的分组都能到达其目的地。但是,我们通常都假定智能化的
边缘设备及其所支持的应用程序能够对这种情况进行某种处理。这个原理就是,而且现在仍
然是尽力而为网络的定义。
即使是一个简单的网络,也会要求有某种程度的内部智能,以便能在源端和任何要到达
的目的端之间找到合适的通路,这也就是I P路由协议完成的功能。尽管我们会很兴奋地认为
I P的选路功能能够动态地适应由战争或自然界灾难引发的网络故障,但现今的I P路由协议通
常只能处理可预见的变化(由重新配置引起)和对大规模系统造成影响的不可预见故障。
然而,人们还是强烈希望I P网络能扩展其最小功能集的功能,不仅仅是提供简单的连接
功能。需要实时信息传送和交互的终端用户程序通常要求网络能保证快速的和可预测的响应
时间。商业I P网络的客户希望得到可靠的带宽保证。这些新应用都需要一个以传输及时性和
可预测性为其首要特征的网络。

链路层-串行线路吞吐量计算

2009年04月27号 02:03  |  分类:协议基础

如果线路速率是9600b/s,而一个字节有8bit,加上一个起始比特和一个停止比特,那么线路的速率就是960B/s(字节/秒)。以这个速率传输一个1024字节的分组需要1066ms。如果用SLIP链接运行一个交互式应用程序,同时还运行另一个应用程序如FTP发送或接收1024字节的数据,那么一般来说就必须等待一半的时间(533ms)才能把交互式应用程序的分组数据发送出去。

假定交互分组数据可以在其他“大块”分组数据发送之前被发送出去。大多数的SLIP实现确实提供这类服务排队方法,把交互数据放在大块的数据前面。交互通信一般有Telnet、Rlogin以及FTP的控制部分(用户的命令,而不是数据)。这种服务排队方法是不完善的。它不能影响已经进入下游(如串行驱动程序)队列的非交互数据。同时,新型的调制解调器具有很大的缓冲区,因此非交互数据可能已经进入该缓冲区了。

对于交互应用来说,等待533ms是不能接受的。关于人的有关研究表明,交互响应时间超过100~200ms就被认为是不好的[Jacobson1990a]。这是发送一份交互报文出去后,直到接收到响应信息(通常是出现一个回显字符)为止的往返时间。

把SLIP的MTU缩短到256就意味着链路传输一帧最长需要266ms,它的一半是133ms(这是一般需要等待的时间)。这样情况会好一些,但仍然不完美。我们选择它的原因(与64或128相比)是因为大块数据提供良好的线路利用率(如大文件传输)。假设CSLIP的报文首部是5个字节,数据帧总长为261个字节,256个字节的数据使线路的利用率为98.1%,帧头占了1.9%,这样的利用率是很不错的。如果把MTU降到256以下,那么将降低传输大块数据的最大吞吐量。

在上一讲的MTU值中,点对点链路的MTU是296个字节。假设数据为256字节,TCP和IP首部占40个字节。由于MTU是IP向链路层查询的结果,因此该值必须包括通常的TCP和IP首部。这样就会导致IP如何进行分片的决策。IP对于CSLIP的压缩情况一无所知。我们对平均等待时间的计算(传输最大数据帧所需时间的一半)只适用于SLIP链路(或PPP链路)在交互通信和大块数据传输这两种情况下。当只有交互通信时,如果线路速率是9600b/s,那么任何方向上的1字节数据(假设有5个字节的压缩帧头)往返一次都大约需要12.5ms。它比前面提到的100~200ms要小得多。需要注意的是,由于帧头从40个字节压缩到5个字节,使得1字节数据往返时间从85ms减到12.5ms。

不幸的是,当使用新型的纠错和压缩调制解调器时,这样的计算就更难了。这些调制解调器所采用的压缩方法使得在线路上传输的字节数大大减少,但纠错机制又会增加传输的时间。不过,这些计算是我们进行合理决策的入口点。

文章来源于>>TCP/IP协议分析博客   转载请注明:Toad的博客

链路层-路径MTU

2009年04月24号 22:20  |  分类:协议基础

当在同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。重要的不是两台主机所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU。它被称作路径MTU。

两台主机之间的路径MTU不一定是个常数。它取决于当时所选择的路由。而选路不一定是对称的(从A到B的路由可能与从B到A的路由不同),因此路径MTU在两个方向上不一定是一致的。

RFC1191[MogulandDeering1990]描述了路径MTU的发现机制,即在任何时候确定路径MTU的方法。我们在介绍了ICMP和IP分片方法以后再来看它是如何操作的。以后,我们将看到ICMP的不可到达错误就采用这种发现方法。还会看到,traceroute程序也是用这个方法来确定到达目的节点的路径MTU。同时还将讲解当软件支持路径MTU的发现方法时,UDP和TCP是如何进行操作的。

文章来源于>>TCP/IP协议分析博客   转载请注明:Toad的博客

链路层-最大传输单元MTU

2009年04月24号 22:09  |  分类:协议基础

以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。我们将在以后讨论IP分片的过程。下图列出了一些典型的MTU值:

几种常见的最大传输单元(MTU)

它们摘自RFC1191[MogulandDeering1990]。点到点的链路层(如SLIP和PPP)的MTU并非指的是网络媒体的物理特性。相反,它是一个逻辑限制,目的是为交互使用提供足够快的响应时间。在以后的文章中,我们将看到这个限制值是如何计算出来的。

文章来源于>>TCP/IP协议分析博客        转载请注明:Toad的博客

tcp协议与udp协议的区别(2)

2009年04月23号 23:09  |  分类:协议基础

上一讲,我们提到了“信道复用技术”!知道了这一点,我们就很容易明白“物理信道”上的“虚拟信道”概念了!不同的信道复用技术,使用不同的复用技术,目的就是创建“虚拟信道”。

一个TCP协议连接其实就是在物理线路上创建的一条“虚拟信道”。这条“虚拟信道”建立后,在TCP协议发出FIN包之前(两个终端都会向对方发送一个FIN包),是不会释放的。正因为这一点,TCP协议被称为面向连接的协议!

UDP协议,一样会在物理线路上创建一条“虚拟信道”,否则UDP协议无法传输数据!但是,当UDP协议传完数据后,这条“虚拟信道”就被立即注销了!因此,称UDP是不面向连接的协议!

大家要知道,一种物理线路,单位时间内,能够创建的“虚拟信道”是有限的!从这个问题,大家应该明白了TCP协议和UDP协议为什么会共存了吧,然而,这只是其中一个原因而已!

那为什么又说TCP协议可靠,UDP协议不可靠呢?以上说的是一个原因,还有一个原因是:使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这一点,我们在做TCP协议首部分析时,会详加解释!

QQ普通会员就是使用的UDP协议进行传输数据!既然UDP协议自身没有确认机制,这个工作可以交给应用层的进程来完成(QQ)!大家使用QQ的时候,感觉出错的几率还是非常小吧!当然,把这个确认工作完全交给QQ自身来做,就直接导致了,QQ软件体积增大!

有些应用,对数据传输可靠性要求非常高,例如大家浏览网页,通过网页注册帐号、转帐等服务,这是不容许出错的,使用TCP协议能把出错的可能性降到最低(当然,网络自身很糟糕,TCP协议也没办法)。但是,提供这种可靠服务,会加大网络带宽的开销,因为“虚拟信道”是持续存在的,同时网络中还会出现大量的ACK和FIN包!

因此,鱼和熊掌不可兼得,需,根据实际情况选择传输协议!UDP协议与TCP协议的区别在为涉及首部分析是,就是这些内容了!

文章来源于>>TCP/IP协议分析博客 转载请注明:Toad的博客

tcp协议与 udp协议的区别

2009年04月23号 22:24  |  分类:协议基础

网上很多文章都说TCP协议可靠,UDP协议不可靠!为什么前者可靠,后者不可靠呢?既然UDP协议不可靠,为什么还要使用它呢?所谓的TCP协议是面向连接的协议,面向连接是什么呢?这篇文章,我们就是要弄懂以上问题!

TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列代码的组合提供相应的功能!模块化最终目的就是:分工协作!模块化好处:便于扩展开发以及维护!)。

先说TCP协议:

这个协议,是面向的连接!面向连接这个概念,我们要从物理层看起。大家都知道,因为“信道复用技术”的迅猛发展,才促使了计算机网络的发展!如果没有“信道复用技术”,那么单条线路上(这里的线路指物理传输介质,例如:双绞线、光纤、电话线)单位时间内只能供一台计算机使用!还是举例说明:就拿你自己的计算机来说,你跟同学“小明”聊天的时候,就不能跟另外一位同学“小强”聊天,如果你想同时跟两位同学聊天,那么你就得装两条线路!那么同时与第三位、第四位同学。。。第N位同学聊天的时候,你需要装几根线路?全世界人民聊天的时候,又需要装几根线路?

“信道复用技术”实现了,在同一条线路上,单位时间内可供X台计算机同时通信!Toad知道以下几种复用技术:

1、频分复用
       2、 时分复用
       3、波分复用
       4、码分复用
       5、空分复用
       6、统计复用
       7、极化波复用

关于“信道复用技术”更深层次的问题,需要你自己去研究!Toad在这方面的知识很薄弱。

 

文章来源于>>TCP/IP协议分析博客         转载请注明:Toad的博客

TCP/IP协议的缩略语解释(2)

2009年04月23号 01:32  |  分类:协议基础

MSL          MaximumSegmentLifetime,报文段最大生存时间
MSS          MaximumSegmentSize,报文段最大长度
MTU          MaximumTransmissionUnit,最大传输单元
NCSA         NationalCenterforSupercomputingApplications,国家超级计算中心(美国)
NFS          NetworkFileSystem,网络文件系统
NNRP         NetworkNewsReadingProtocol,网络新闻读取协议
NNTP         NetworkNewsTransferProtocol,网络新闻传送协议
NOAO         NationalOpticalAstronomyObservation,国家光学天文观测(美国)
NOP          NoOperation,无操作
OSF          OpenSoftwareFoundation,开放软件基金
OSI          OpenSystemsInterconnection,开放系统互连
PAWS         ProtectionAgainstWrappedSequencenumber,防止序号重叠
PCB          ProtocolControlBlock,协议控制快
POSIX        PortableOperationSystemInterface,可移植操作系统接口
PPP          Point-to-PointProtocol,点对点协议
PSH          TCP首部中的急迫(PuSH)标志
RDP          ReliableDatagramProtocol,可靠数据报
RFC          RequestForComment,是Internet的文档,意思是“请提意见”。
RPC          RemoteProcedureCall,远程过程调用
RST          TCP首部中的重建(ReSeT)标志
RTO          RetransmissionTimeOut,重传超时
RTT          Round-TripTime,往返时间
SLIP         SerialLineInternetProtocol,串行线路因特网协议
SMTP         SimpleMailTransferProtocol,简单邮件传送协议
SPT          ServerProcessingTime,服务器处理时间
SVR4         SystemVRelease4,系统V版本4
SYN          TCP首部中的序号同步(SYNchronoussequencenumber)标志
TAO          TCPAcceleratedOpen,TCP加速打开
TCP          TransmissionControlProtocol,传输控制协议
TTL          Time-To-Live,寿命,或生存时间
Telnet       远程登录协议
UDP          UserDatagramProtocol,用户数据报协议
URG          TCP首部中的紧急(URGent)指针
URI          UniversalResourceIdentifier,通用资源标识符
URL          UniformResourceLocator,统一资源定位符
URN          UniformResourceName,统一资源名字
VMTP         VersatileMessageTransactionProtocol,通用报文事务协议
WAN          WideAreaNetwork,广域网
WWW          WorldWideWeb,万维网

文章来源于>>网络协议分析博客     转载请注明:Toad的博客

TCP/IP协议的缩略语解释(1)

2009年04月21号 22:48  |  分类:协议基础

ACK                                   TCP首部中的确认(ACKnowledgment)标志
ANSI                                 AmericanNationalStandardsInstitute,美国国家标准协会
API                                   ApplicationProgrammingInterface,应用编程接口
ARP                                  AddressResolutionProtocol,地址解析协议
ARPANET                    AdvancedResearchProjectsAgencyNETwork,远景研究规划局(美国国防部)网
ASCII                              AmericanStandardCodeforInformationInterchange,美国信息交换标准代码
BPF                                   BSDPacketFilter,BSD分组过滤程序
BSD                                   BerkeleySoftwareDistribution,伯克利软件发布
CC                                      ConnectionCount,连接计数
CERT                                ComputerEmergencyResponseTeam,计算机应急响应工作队
CR                                      CarriageReturn,回车
DF                                      TCP首部中的不分段(Don’tFragment)标志
DNS                                   DomainNameSystem,域名系统
EOL                                    EndofOptionList,选项表结束
FAQ                                   FrequentlyAskedQuestion,经常提出的问题
FIN                                    TCP首部中的终止(FINish)标志
FTP                                     FileTransferProtocol,文件传送协议
GIF                                     GraphicsInterchangeFormat,图形交换格式
HTML                                HyperTextMarkupLanguage,超文本置标语言
HTTP                                 HyperTextTransferProtocol,超文本传送协议
ICMP                                  InternetControlMessageProtocol,因特网控制报文协议
IEEE                                InstituteofElectricalandElectronicsEngineers,电气和电子工程师学会(美国)
INN                                    InterNetNews,因特网新闻
INND                                  InterNetNewsDaemon,因特网新闻守护程序
IP                                          InternetProtocol,网际协议
IPC                                        InterProcessCommunication,进程间通信
IRTP                                     InternetReliableTransactionProtocol,因特网可靠事务协议
ISN                                       InitialSequenceNumber,初始序号
ISO                                        InternationalOrganizationforStandardization,国际标准化组织
ISS                                         InitialSendSequencenumber,初始发送序号
LAN                                     LocalAreaNetwork,局域网
LF                                         LineFeed,换行
MIME                                 MultipurposeInternetMailExtensions,通用因特网邮件扩充

 

文章来源于>>TCP/IP协议分析博客           转载请注明:Toad的博客

Pages: 1 2 3 Next