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的博客

【转自CSDN】PPPoE协议(RFC+2516)中文版

2009年04月21号 22:18  |  分类:中文RFC

 

协议概述

 

PPPoE有两个截然不同的阶段,即发现阶段(Discovery stage)及PPP会话阶段(PPP Session stage)。当一个主机希望初始化一个PPPoE会话,它必须首先执行发现阶段去标识对方的以太MAC地址并且建立一个PPPoE会话标识符(SESSION_ID)。当PPP定义了一个端对端关系时,发现阶段也同时建立了一个客户端-服务器关系。在发现过程中,一个主机(客户端)发现了一个访问集中器(服务器)。基于这个网络拓扑,该主机可能有不止一个可以通信的访问集中器。发现阶段允许该主机发现所有的访问集中器,然后选择使用其中一个。当发现阶段成功结束时,该主机与被选择的访问集中器都拥有将用于建立它们之间在以太网上的点对点连接的信息。

发现阶段将保持无状态,直到PPP会话被建立起来。一当PPP会话被建立起来,主机和访问集中器必须为PPP虚拟接口分配资源。

因为文档中有协议首部的ASCII图,复制粘贴上来,图形会错位!大家还是下载看吧!近期Toad会写一份PPPoE的Sniffer分析报告!

点击下载:[PDF]RFC 2516 中文版

链路层-环回接口

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

大多数的产品都支持环回接口(Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。一个传给环回接口的IP数据包不能在任何网络上出现。

 我们想象,一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当IP数据报离开网络层时把它返回给自己。

      下图是环回接口处理IP数据报的简单过程。

环回接口架构图

 图中需要指出的关键点是:

 1)传给环回地址的任何数据均作为IP输入。

 2)传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。

3)任何传给该主机IP地址的数据均送到环回接口。

看上去用传输层和IP层的方法来处理环回数据似乎效率不高,但它简化了设计,因为环回接口可以被看作是网络层下面的另一个链路层。网络层把一份数据报传送给环回接口,就像传给其他链路层一样,只不过环回接口把它返回到IP的输入队列中。

 在上图中,另一个隐含的意思是送给主机本身的IP地址的IP数据报一般不出现在相应的网络上。例如,在一个以太网上,分组一般不被传出去然后读回来。某些BSD以太网的设备驱动程序的注释说明,许多以太网接口卡不能读回他们自己发送出去的数据。由于一台主机必须处理发送给自己的IP数据包,因此上图所示的过程是最为简单的处理办法。

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

链路层-PPP:点对点协议(3)

2009年04月19号 21:59  |  分类:协议基础

这样做的原因是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为有时它们会把这些控制字符解释成特殊的含义。另一种可能是用链路控制协议来指定是否需要对这32个字符中的某一些值进行转义。默认情况下是对所有的32个字符都进行转义。

与SLIP类似,由于PPP经常用于低俗的串行链路,因此减少每一帧的字节数可以降低应用程序的交互时延。利用链路控制协议,大多数的产品通过协商可以省略标志符和地址字段,并且把协议字段由2个字节减少到1个字节。如果我们把PPP的帧格式与前面的SLIP的帧格式进行比较会发现,PPP只增加了3个额外的字节:1个字节留给协议字段,另2个给CRC字段使用。另外,使用IP网络控制协议,大多数的产品可以通过协商采用Van Jacobson报文首部压缩方法(对应于CSLIP压缩),减小IP和TCP首部长度。

总的来说,PPP比SLIP具有下面这些优点:(1)PPP支持在单根串行线路上运行多种协议,不只是IP协议;(2)每一帧都有循环冗余检验;(3)通信双方可以进行IP地址的动态协商(使用IP网络控制协议);(4)与CSLIP类似,对TCP和IP报文首部进行压缩;(5)链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

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

链路层-PPP:点对点协议(2)

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

PPP数据帧的格式看上去很像ISO的HDLC(高层数据链路控制)标准。下图就是PPP数据帧的格式

PPP数据帧格式

每一帧都以标志字符0×7e开始和结束。紧接着是一个地址字节,值始终是0xff,然后是一个值为0×03的控制字节。

接下来是协议字段,类似于以太网中类型字段的功能。当它的值为0×0021时,表示信息字段是一个IP数据包;值为0xc021时,表示信息字段是链路控制数据;值为0×8021时,表示信息字段是网络控制数据。

CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。

由于标志字符的值是0×7e,因此当该字符出现在信息字段中时,PPP需要对它进行转义。在同步链路中,该过程是通过一种称作比特填充(bit stuffing)的硬件技术来完成的。在异步链路中,特殊字符0×7d用作转义字符。当它出现在PPP数据帧中时,那么紧接着的字符的第6个比特要取其补码。具体实现过程如下:

1)当遇到字符0×7e时,需要连续传送两个字符:0×7d和0×5e,以实现标志字符的转义。

2)当遇到转义字符0×7d时,需连续传送两个字符:0×7d和0×5d,以实现转义字符的转义。

3)默认情况下,如果字符的值小于0×20(比如,一个ASCII控制字符),一般都要进行转义。例如,遇到字符0×01时需连续传送0×7d和0×21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

 

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

DDOS案列分析

2009年04月17号 23:22  |  分类:案例分析

讲了这么久的基础,今天来点“猛”的!DDOS上场。。。。大家鼓掌!

先看图:

Sniffer抓取的基于TCP三次握手的DDOS(1)

                                                                    图1 

Sniffer抓取的基于TCP三次握手的DDOS(2)

                                                                    图2

 

由于安全原因,小弟把图片中的目的IP抹去了,这不影响我们要讨论的东东!

这是基于TCP三次握手类型的DDOS,建立一个TCP连接,必须经过3个步骤

1、请求端发送一个SYN包给服务端

2、服务端返回一个SYN/ACK包给请求端

3、请求端再返回一个ACK包给服务端

这样,一个TCP连接就建立了。这个过程的详细讲解,不是我们这一讲要讨论,不明白的朋友,请看以后的TCP协议分析的文章!

这里,要明白一个东东,当服务器端没有收到第三步中的ACK包时,它会干什么?服务器端的这条TCP连接所占的系统资源,将会处于一个等待的状态,等待ACK包的到来!这个等待时间有多长,不同的操作系统不一样。况且,正确建立的TCP连接,在释放后,还会处于一个2MSL(俗称:等待状态,以后详解。。。哈哈)!基于以上两点再加上巨量的SYN包,此时,大家应该能够明白,会发生什么!

我们如何判断是否遭受了DDOS?请看第一张图,sunmmary栏目中,出现大量的SYN包,无SYN/ACK包,也没有其他协议或者进程的包。SYN包的源IP无规则跳变,跨度大!

第二张图是TCP首部,我们可以看到只有SYN域被指为1,而且所有的包都是这样!这绝对是发生了DDOS!

下一讲,我们将讲述一些针对这种类型DDOS的防御措施!其实,这些防御措施都是消极的,当DDOS流量无限增大时,没有任何设备能够完全防御!目前,市面上能够发动几个G流量的DDOS个人和组织很多!通过朋友的渠道得知,各大运营商,在部署分层次的DDOS防御体系,从骨干网到终端网逐级过滤,这让我们看见了曙光!

HTTP和HTML概述

2009年04月16号 22:31  |  分类:HTTP协议

HTTP是一个简单的协议。客户进程建立一条同服务器进程的TCP连接,然后发出请求并读取服务器进程的响应。服务器进程关闭连接表示本次相应结束。服务器进程返回的文件通常含有指向其他服务器上文件的指针(超文本链接)。用户显然可以很轻松地沿着这些链接从一个服务器到下一个服务器。

         客户进程提供简单、漂亮的图形界面。HTTP服务器进程只是简单返回客户进程所请求的文档,因此HTTP服务器软件比HTTP客户软件要小得多。例如,NCSA版本的1.3的Unix服务器由大约6500行C代码写成,而X Window环境下的Unix Mosaic2.5浏览器有约80000行C代码。

        我么可以一个简单的方法来了解许多Internet协议是怎么工作的:那就是运行一个Telnet的客户程序与相应的服务器程序通信。这种方法对HTTP协议也是可行的,这是因为客户进程发送给服务器进程的语句包含有ASCII命令(以回车和紧跟的换行符表示结束,称为CR/LF),服务器进程返回的内容也是以ASCII字符开始。HTTP协议使用的是8 bit的ISO Latin 1字符集,该字符集由ASCII字符及一些西欧语言中的字符组成。

链路层-PPP:点对点协议

2009年04月15号 22:16  |  分类:协议基础

PPP,点对点协议修改了SLIP协议中的所有权限。PPP包括以下三个部分:

1)、在串行链路上封装IP数据包的方法。PPP既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接。

2)、建立,配置及检测数据链路的LCP(链路控制协议)。它还允许通信双方进行协商,以确定不同的选项。

3)、针对不同网络层协议的网络控制协议(NCP)体系。当前RFC定义的网络层有IP、OSI网络层、DECnet以及AppleTalk。例如:IP NCP允许双方商定是否对报文首部进行压缩,类似于CSLIP。

RFC 1548描述了报文封装的方法和链路控制协议。RFC 1332描述了针对IP的网络控制协议。

链路层-压缩的SLIP

2009年04月15号 21:58  |  分类:协议基础

由于串行线路的速率通常较低,而且通信经常是交互式的,因此在SLIP线路上有许多小的TCP分组进行交换。为了传送1个字节的数据都需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。

既然承认这些性能上的缺陷,于是人们提出一个被称作CSLIP的写协议,它在RFC 1144中被详细描述。CSLIP一般能把上面的40个字节压缩到3或5个字节。它能在CSLIP的每一端维持多达16个TCP连接,并且知道其中每个连接的首部中的某些字段一般不会发生变化。对于那些发生变化的字段,大多数只是一些小的数字和的改变。这些被压缩的首部大大地缩短了交互响应时间。

链路层-SLIP的缺陷

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

SLIP是一种简单的帧封装方法,“简单”是它的优点也是它的缺点:

1)、每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。

2)、数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。

3)、SLIP没有任何数据帧中加上检验和。如果SLIP传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现。这样,上层协议提供某种形式的CRC就显得很重要。这里,我们先提一下:IP首部和TCP首部及其数据始终都有检验和,同时,UDP首部及其数据的检验和是可选的。

Pages: Prev 1 2 3 ...4 5 6 7 8 9 10 11 12 Next