TCPIP原理学习基础.docx

上传人:b****4 文档编号:5404084 上传时间:2022-12-16 格式:DOCX 页数:36 大小:352.47KB
下载 相关 举报
TCPIP原理学习基础.docx_第1页
第1页 / 共36页
TCPIP原理学习基础.docx_第2页
第2页 / 共36页
TCPIP原理学习基础.docx_第3页
第3页 / 共36页
TCPIP原理学习基础.docx_第4页
第4页 / 共36页
TCPIP原理学习基础.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

TCPIP原理学习基础.docx

《TCPIP原理学习基础.docx》由会员分享,可在线阅读,更多相关《TCPIP原理学习基础.docx(36页珍藏版)》请在冰豆网上搜索。

TCPIP原理学习基础.docx

TCPIP原理学习基础

1TCP/IP协议集

3

2PPP协议 

3

2.1概述

3

2.2状态机

5

2.3LCP协商

6

2.4PAP和CHAP

6

2.5MP工作原理

6

2.6网络控制协议(NCP)

7

3互连网协议IP

7

3.1IP地址及其转换

8

3.1.1IP地址的表示方法

8

3.1.2子网的划分

9

3.1.3地址的转换

10

3.2IP数据报的格式

11

3.2.1IP数据报首部的固定部分

12

3.2.2IP首部的可变部分

13

3.3路由段与路由表

15

3.4Internet控制报文协议ICMP

17

4UDP协议

19

5TCP协议

19

5.1TCP报文格式

19

5.2TCP协议状态机

22

5.3TCP定时器

24

6路由协议

24

6.1路由协议简介

24

6.2RIP协议

25

6.2.1路由表的建立

25

6.2.2距离向量算法

25

6.2.3协议中的特殊处理

28

7简单网管协议(SNMP)

29

7.1SNMP管理模型

29

7.1.1什么是SNMP

29

7.1.2网管站和代理

29

7.2SMI与MIB

30

7.3SNMP协议

31

7.3.1SNMP报文

31

7.3.2SNMP的基本操作

31

7.3.3管理变量的表示

32

7.3.4SNMP的运行过程

32

7.4SNMPMIB编译器的功能

34

8RADIUS协议

35

8.1RADIUS简介

35

8.2RADIUS的工作流程

35

8.3RADIUS报文格式

36

1TCP/IP协议集

当前,TCP/IP已经成为网际互连事实上标准,它不同于OSI的七层模型,TCP/IP使用更为简单的五层模型,如图1:

ͼ1TCP/IP分层模型

TCP/IP五层模型中的下两层构成了子网访问层,它主要为网络设备提供数据通路的作用。

TCP/IP对传输子网的支持是很广泛的,从传统的以太网、令牌环网到当今的ATM、SDH、SONET等无所不包,几乎所有可以利用的网络介质都可以支持TCP/IP。

由于传输子网的种类繁多,一般TCP/IP教科书大多仅介绍它的高三层的协议如图2所示:

ͼ2TCP/IP协议集 

2PPP协议 

2.1概述

PPP协议是提供在点到点链路上传递、封装网络层数据包的一种数据链路层协议,。

PPP定义了一整套的协议包括链路控制协议(LCP)、网络层控制协议(NCP)和验证协议(PAP和CHAP)。

PPP由于能够提供验证,易扩充,支持同异步而获得较广泛的应用。

 PPP协议提供如下功能:

w链路控制协议(LCP)

wPAP和CHAP验证

w多通道绑定(MP)

w网络控制协议(NCP)

 PPP在网络层中的位置

ͼ1PPP在网络层中的位置

PPP帧是基于高级数据链路控制(HDLC)协议,并对它进行了补充,另外还结合了其它一些协议集(如X.25)的帧格式特点。

PPP的帧格式如下图所示:

Flag

(1)

Address

(1)

Control

(1)

Protocol

(2)

Information(n)

FCS

(2)

Flag

(1)

 

ͼ1PPP帧格式

PPP帧格式中包括开始及结束标志(7EH);Address(FFH,所有工作站地址);Control(03H,用于无记号信息);Protocol(用2个八位组的域指明所使用的高层协议);Inforamtion(高层协议信息);FCS(帧校验序列)。

其中Protoclo用于指明所承载的高层协议,如0021H表示IP、002BH表示IPX、8021H表示IPCP、C021H表示LCP等。

PPP运行过程框图:

ͼ1PPP运行过程框图

PPP在建立链路之前要协商部分参数,如最大传输单元,魔术数,验证方式等等。

PPP主要进行LCP协商(协商是SP或MP,验证方式,最大接收单元),LCP协商过后就到了Establish阶段,开始CHAP或PAP验证,验证成功即进行Network阶段协商(NCP),任何阶段的失败都将导致链路的拆除。

PPP所有的协商都是通过状态机(FSM)实现的。

2.2状态机

PPP协商是靠状态机来实现的,状态机有如下的十个状态:

 

ͼ1PPP状态转换图

wInitial初始化状态,此时底层协议还没有激活(active)。

wStarting底层协议已经激活,但没有up,或遭遇对端拒绝。

wClosed链路关闭。

wStopped协议终止。

wClosing协议正在关闭(验证没有通过)。

wStopping协议正在终止。

wReqsent已发配置请求。

wAckrcrd已收到对方确认。

wAcksent已发确认。

wOpened协议协商成功。

wDisabled禁用此协议。

2.3LCP协商

LCP是PPP协商的基础,PPP的数据包格式内容等就是基于LCP协商的。

由LCP交换的数据包有:

Configurerequest

ConfigureAcknowledge

Configurenotacknowledge

Configurereject

Terminaterequest

Terminateacknowledge

Codereject

Protocolreject

Echorequest

Echoreply

Discardrequest

 

LCP协商的内容:

MaximumReceiveUnit

AuthenticationProtocol

QualityProtocol

Magicnumber

Protocolfieldcompression

Addressandcontrolfieldcompression 

2.4PAP和CHAP

PAP为两次握手验证,口令为明文。

PAP验证过程如下:

发送用户名同口令到验证方,验证方查看是否有此用户,口令是否正确,然后发送相应的响应。

CHAP为三次握手验证,口令为密文(密钥)

CHAP验证由验证方发送一些随机产生的报文,交给被验证,被验证方用自己的口令字用MD5算法进行加密,传回密文,验证方用自己保存的口令字及随机报文用MD5算法加密,比较二者的密文,根据比较结果返回响应的响应。

2.5MP工作原理

ͼ1 MP工作原理图

2.6网络控制协议(NCP)

网络控制协议提供同网络层的接口,如:

IPCP,IPXCP

IPCP协商内容:

wIPaddress(old)

wVJcompression

wIPaddress

wPrimaryDNSAddress

wSecondaryDNSAddress

wPrimaryNetBIOsAddress

wSecondaryNetBIOsAddress

IPXCP协商内容:

wIPXNetworkNumber

wIPXNodeNumber

wIPXCompressionProtocol

wIPXRoutingProtocol

wIPXRouterName

wIPXConfigurationComplete

 

3互连网协议IP

全球INTERNET网的广泛应用使IP协议深入人心。

IP协议以其简单、有效、开放性成为事实上的工业标准。

IP协议使异种网互联方便可行,尤其值得一提的是它对下层通信技术的巨大包容性。

IP协议作为通信子网的最高层,提供无连接的数据报传输机制。

IP协议是点到点的,核心问题是寻径。

它向上层提供统一的IP数据报,使得各种物理帧的差异性对上层协议不复存在。

互连网协议IP是TCP/IP体系中两个最重要的协议之一。

与IP协议配套使用的还有三个协议:

w地址转换协议ARP(AddressResolutionProtocol)

w反向地址转换协议RARP(ReverseAddressResolutionProtocol)

wInternet控制报文协议ICMP(InternetControlMessageProtcol)

图8IP及其相关协议

图8画出了这三个协议和IP协议的关系。

在这一层中,ARP和RARP画在最下面,因为IP经常要使用着两个协议。

ICMP画在这一层的上部,因为它要使用IP协议。

这三个协议将在后面陆续介绍。

3.1IP地址及其转换

3.1.1IP地址的表示方法

我们把Internet看成为一个网络。

所谓IP地址就是给每一个连接在Internet上的主机分配一个唯一的32bit地址。

IP地址的结构使我们可以Internet上很方便地进行寻址,这就是:

先按IP地址中的网络号码net-id把网络找到,再按主机号码host-id把主机找到。

所以IP地址并不只是一个计算机的号码,而是指出了连接到某个网络上的某个计算机。

IP地址有美国国防数据网DDN的网络信息中心NIC进行分配。

为了便于对IP地址进行管理,同时还考虑到网络的差异很大,有的网络拥有很多的主机,而有的网络上的主机则很少。

因此Internet的IP地址就分成为五类,即A类到E类。

这样,IP地址(图9)由三个字段组成,即:

w类别字段(又称为类别比特),用来区分IP地址的类型;

w网络号码字段net-id;

w主机号码字段host-id。

D类地址是一种组播地址,主要是留给Internet体系结构委员会IAB(InternetArchitectureBoard)使用。

E类地址保留在今后使用。

目前大量IP地址仅A至C类三种。

ͼ1IP地址及分类

A类IP地址的网络号码数不多。

目前几乎没有多余的可供分配。

现在能够申请到的IP地址只有B类和C类两种。

当某个单位向IAB申请到IP地址时,实际上只是拿到了一个网络号码net-id。

具体的各个主机号码host-id则由该单位自行分配,只要做到在该单位管辖的范围内无重复的主机号码即可。

为方便起见,一般将32bit的IP地址中的每8个比特用它的等效十进制数字表示,并且在这些数字之间加上一个点。

例如,有下面这样的IP地址:

10000000000010110000001100011111

这是一个B类IP地址,可记为128.11.3.31,这显然更方便得多。

在使用IP地址时,还要知道下列地址是保留作为特殊用途的,一般不使用。

w全0的网络号码,这表示“本网络”或“我不知道号码的这个网络”。

w全1的网络号码。

w全0的主机号码,这表示该IP地址就是网络的地址。

w全1的主机号码,表示广播地址,即对该网络上所有的主机进行广播。

w全0的IP地址,即0.0.0.0。

w网络号码为127.X.X.X.,这里X.X.X为任何数。

这样的网络号码用作本地软件回送测试(Loopbacktest)之用。

w全1地址255.255.255.255,这表示“向我的网络上的所有主机广播”。

原先是使用0.0.0.0。

这样,我们就可得出表1所示的IP地址的使用范围。

±í1IP地址的使用范围

网络

类别

最大

网络数

第一个可用的

网络号码

最后一个可用的

网络号码

每个网络中的

最大主机数

A

126

1

126

16,777,214

B

16,382

128.1

191.254

65,534

C

2,097,150

12.0.1

223.255.254

254

IP地址有一些重要的特点。

1.IP地址有一些是一种非等级的地址结构。

这就是说,和电话号码的结构不一样,IP地址不能反映任何有关主机位置的地理信息。

2.当一个主机同时连接到两个网络上时(作路由器用的主机即为这种情况),该主机就必须同时具有两个相应的IP地址,其网络号码net-id是不同的,这种主机成为多地址主机(multihomedhost).

3.按照Internet的观点,用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号码net-id.

4.在IP地址中,所有分配到网络号码net-id的网络(不管是小的局域网还是很大的广域网)都是平等的。

3.1.2子网的划分

IP地址的设计有不够合理的地方。

例如,IP地址中的A至C类地址,可供分配的网络号码超过211万个,而这些网络上的主机号码的总数则超过37.2亿个,初看起来,似乎IP地址足够全世界来使用,(在70年代初期设计IP地址是就是这样认为的)。

其实不然。

第一,当初没有预计到微机会普及得如此之快。

各种局域网和局域网上的主机数目急剧增长。

第二,IP地址在使用时有很大的浪费。

例如:

某个单位申请到了一个B类地址。

但该单位只有1万台主机。

于是,在一个B类地址中的其余5万5千多个主机号码就白白地浪费了。

因为其他单位的主机无法使用这些号码。

因此,目前正在研究如何将IP地址加以扩展[NETW93],但这非常复杂。

因为IP地址一旦改变,在各种主机上运行的大量软件就必须修改。

这是一件耗费大量人力和财力的工作。

有人也提出采用OSI的20个字节的网络层地址方案。

读者应注意这一问题。

从1985年起,为了使IP地址的使用更加灵活,在IP地址的网络号码net-id,而后面的主机号码host-id则是受本单位控制,由本单位进行分配。

本单位所有的主机都使用同一个网络号码。

当一个单位的主机很多而且分布在很大的地理范围是,往往需要用一些网桥(而不是路由器,因为路由器连接的主机具有不同的网络号码)将这些主机互连起来。

网桥的缺点较多。

例如容易引起广播风暴,同时当网络出现故障时也不太容易隔离和管理。

为了使本单位的各子网之间使用路由器来互连,因而便于管理。

需要注意的是,子网的划分纯属本单位内部的是,在本单位以外是看不见这样的划分。

从外部看,这个单位只有一个网络号码。

只有当外面的分组进入到本单位范围后,本单位的路由器在根据子网号码进行选路,最后找到目的主机。

若本单位按照主机所在的地理位置划分子网,那么在管理方面就会方便得多。

下图说明是在划分子网时要用到的子网掩码(subnetmask)的意义。

(a)举了一个B类IP地址作为例子。

(b)表示将本地控制部分再增加一个子网字段,子网号字段究竟选为多长,由本单位根据情况确定。

TCP/IP体系规定用一个32bit的子网掩码来表示子网号字段的长度。

具体的做法是:

子网掩码由一连串的“1”和一连串的“0”组成。

“1”对应于网络号码和子网号码字段,而“0”对应于主机号码字段(c)

多划分出一个子网号码字段是要付出代价的。

例如,对于上述的例子,本来一个B类IP地址可以容纳65534个主机号码。

但划分出6bit长的子网字段后,最多可有62个子网(去掉全1和全0的子网号码)。

每个子网有10bit的主机号码,即每个子网最多可有1022个主机号码。

因此主机号码的总数是62*1022=63364个。

比不划分子网时要少了一些。

若一个单位不进行子网的划分,则其子网掩码即为默认值,此时子网掩码中“1”的长度就是网络号码的长度。

因此,对于A,B和C类IP地址,其对应的子网掩码默认值分别为255.0.0.0,255.255.0.0和255.255.255.0。

ͼ1子网与子网掩码

3.1.3地址的转换

 

ͼ1主机名字、主机物理地址与IP地址的转换

上面讲的IP地址还不能直接用来进行通信。

这是因为:

wIP地址中的主机地址只是主机在网络层中的地址,相当与前面讲过的NSAP。

若要将网络层中传送的数据报交给目的主机,必须知道该主机的物理地址。

因此必须在IP地址和主机的物理地址之间进行转换。

w用户平时不愿意使用难于记忆的主机号码,而是愿意使用易于记忆的主机名字。

因此也需要在主机名字和IP地址之间进行转换。

在TCP/IP体系中都有这两种转换的机制。

对于较小的网络,可以使用TCP/IP体系提供的叫做hosts的文件来进行从主机名字到IP地址的转换。

文件hosts上有许多主机名字到IP地址的映射,供主叫主机使用。

对于较大的网络,则在网络中的几个地方放有域名系统DNS(DomainNameSystem)的名字服务器nameserver,上面分层次放有许多主机名字到IP地址转换的映射表。

主叫主机中的名字转换软件resolver自动找到DNS的nameserver来完成这种转换。

域名系统DNS属于应用层软件。

图11中设名字为host-a的主机要与名字为host-b的主机通信,通过DNS从目的主机host-b得出其IP地址为209.0.0.6。

IP地址到物理地址的转换由地址转换协议ARP来完成。

图5还表示出从IP地址209.0.0.6通过ARP得出了目的主机48bit的物理地址08002B00EE0A。

由于IP地址有32bit,而局域网的物理地址(即MAC地址)是48bit,因此它们之间不是一个简单的转换关系。

此外,在一个网络上可能经常会有新的计算机假如近来,或撤走一些计算机。

更换计算机的网卡也会使其物理地址改变。

可见在计算机中应当存放一个从IP地址到物理地址的转换表,并且能够经常动态更新。

地址转换协议ARP很好地解决了这些问题。

每一个主机都有一个ARP高速缓存(ARPcache),里面有IP地址到物理地址的映射表,这些都是该主机目前知道的一些地址。

当主机A欲向本局域网上的主机B发送一个IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。

如有,就可查出其对应的物理地址,然后将该数据报发往此物理地址。

也有可能查不到主机B的IP地址的项目。

这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。

在这种情况下,主机A就自动运行ARP,按以下步骤找出主机B的物理地址。

1.ARP进程在本局域网上广播发送一个ARP请求分组,上面有主机B的IP地址。

2.在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。

3.主机B在ARP请求分住中见到自己的IP地址,就向主机A发送一个ARP响应分组,上面写入自己的物理映射。

4.主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到物理地址的映射。

在很多情况下,当主机A向主机B发送数据报时,很可能以后不久主机B还要向主机A发送数据报,因而主机B也可能要向主机A发送ARP请求分组。

为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到物理地址的映射写入ARP请求分组。

当主机B收到主机A的ARP请求分组时,主机B就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。

这对主机B以后向主机A发送数据报时就更方便了。

在进行地址转换时,有时还要用到反向地址转换协议RARP。

RARP使只知道自己物理地址的主机能够知道其IP地址。

这种主机往往是无盘工作站。

这种无盘工作站一般只要运行其ROM中的文件传送代码,就可用下行装载方法,从局域网上其他主机得到所需的操作系统和TCP/IP通信软件,但这些软件中并没有IP地址。

无盘工作站要运行ROM中的RARP来获得其IP地址。

RARP的工作过程大致如下:

为了使RARP能工作,在局域网上至少有一个主机要充当RARP服务器,无盘工作站先向局域网发出RARP请求分组(在格式上与ARP请求分组相似),并在此分组中给出自己的物理地址。

RARP服务器有一个事先做好的从无盘工作站的物理地址到IP地址的映射表,当收到RARP请求分组后,RARP服务器就从这映射表查出该无盘工作站的IP地址。

然后写入RARP响音分组,发回给无盘工作站。

无盘工作站用这样的方法获得自己的IP地址。

3.2IP数据报的格式

在TCP/IP的标准中,各种数据格式常常以32bit(即4字节)为单位来描述。

图12是IP数据报的格式。

 

ͼ1IP数据报的格式

从图6可看出,一个IP数据报由首部和数据两部分组成。

首部的前一部分长度是固定的20个字节,后面部分的长度则是可变长度。

下面介绍首部各字段的意义。

3.2.1IP数据报首部的固定部分

版本版本字段站4bit,指IP协议的版本。

通信双方使用的IP协议的版本必须一致。

目前使用的IP协议版本为4。

首部长度首部长度字段占4bit,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。

当IP分组的首部长度不是4字节的整数倍时,必须利用最后一个填充字段加以填充。

这样,数据部分永远在4字节的整数倍时开始,这样在实现起来会比较方便。

首部长度限制为60字节的缺点是有时(如采用源站选路时)不够用。

但这样做的用意是要用户尽量减少额外的开销。

服务类型服务类型字段共8bit长,用来获得更好的服务,其意义见图6的上面部分所示。

服务类型字段的前三个比特表示优先级,它可使数据报具有8个优先级中的一个。

第4个比特是D比特,表示要求有更低的时延。

第5个比特是T比特,表示要求有更高的吞吐量。

第6个比特是R比特,表示要求有更高的可靠性,即在数据报传的过程中,被结点交换机丢弃的概率要更小些。

第7个比特是C比特,是新增加的,表示要求选择价格更低廉的路由。

最后一个比特目前尚未使用。

总长度总长度指首部和数据之和的长度,单位为字节。

总长度字段为16bit,因此数据报的最大长度为65535字节。

这在当前是够用的。

当很长的数据报要分段进行传送时,“总长度”不是指未分段前的数据报长度,而是指分段后每个段的首部长度与数据长度的总和。

标识标识字段的意义和OSI的IPDU中的数据单元标识符的意义一样,是为了使分段后的各数据报段最后能准确地重装成为原来的数据报。

请注意:

这里的“标识”并没有顺序号的意思,因为IP是无连接服务,数据报不存在按序接收的问题。

标志标志字段占3bit。

目前只有前两个比特有意义。

标志字段中的最低位记为MF(MoreFragment)。

MF=1即表示后面还有分段的数据报。

MF=0表示这已是若干数据报段中的最后一个。

标志字段中间的一位记为DF(Don’tFragment)。

只有当DF=0时才允许分段。

段偏移段偏移字段的意义和OSI的IPDU中规定的相似,只是表示的单位不同。

这里是以8个字节为偏移单位。

可见IP数据报的段偏移字段(13bit长)和OSI的IPDU的段偏移字段(16bit长)是相当的。

寿命寿命字段记为TTL(TimeToLive),其单位为秒。

寿命的建议值是32秒。

但也可设定为3-4秒,或甚至255秒。

协议协议字段占8bit,它指出此数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1