分享
 
 
 

TCP/IP基础:IP位置

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

网际网路协定( IP )是整个 TCP/IP 协定的基础╋它的一些功能在前面的介绍 OSI 和 TCP/IP 模型的时候已经略略提过了╋不过╋由于它的重要性实在太值得了解╋因此我们在这里再深入的探讨一下网际网路层的协定。而事实上,若 IP 这个环节若不过关的话,我会劝您别偿试网路相关的工作了,否则会桶苦一辈子!

大体而言,网际网路协定的功能包括如下?

?定义资网际网路中传输的基本单位。

?定义网际网路的定址方式。

?负责网路存取层和传送层之间的资料传递。

?决定资料传送的路由路径。

?执行资料的分解和重组。

这层协定主要要做的事情╋是将从传送层传来的资料准确的送到远端机器上。让我们温习一下刚学过的 ARP 协定╋我们知道当主机获得应该 IP 后╋如果在 ARP 表格中找不到目的主机的实体位址的时候(因为底层的传送是以实体位址为依据的)╋那么就理由 ARP 协定是以广播的方式去寻问对方的实体位址。不过╋这里有一个限制?广播封包是有限制的╋只能在同一个网段( segment )上的节点才能收到广播封包。假如当我们有一个封包╋从教室传到网际网路上地球另一边的主机╋那这时候要如何处理呢?

Okay╋这就是 IP 协定要解决的问题了。让我们先看看 IP 封包的格式吧。

IP 封包表头格式

首先╋让我们看看IP封包的组成部份╋以及各部件的长度?

在上图中╋括号之内的数字就是各部件的长度 (bit)╋如果您够细心╋就会计算得出每一行的总长度都是 32bit。事实上,真正的封包是有连续的位元依序排列在一起的,之所以分行,完全是因为排版的关系。下面,我们分别对各部件名称解释一下?

Version

版本 (VER)。表示的是 IP 规格版本╋目前的 IP 规格多为版本 4 (version 4)╋所以这里的数值通常为 0x4 (注意?封包使用的数字通常都是十六进位的)。

Internet Header Length

标头长度 (IHL)。我们从 IP 封包规格中看到前面的 6 行为 header ╋如果 Options 和 Padding没有设定的话╋也就只有5 行的长度?我们知道每行有 32bit ╋也就是 4byt e?那么, 5 列就是 20byte 了。20 这个数值换成 16 进位就成了 0x14╋所以╋当封包标头长度为最短的时候╋这里数值会被换算为 0x14 。

Type of Service

服务类型 (TOS)。这里指的是 IP 封包在传送过程中要求的服务类型╋其中一共由 8 个 bit 组成╋每组 bit 组合分别代表不同的意思?

Total Length

封包总长 (TL)。通常以 byte 做单位来表示该封包的总长度╋此数值包括标头和数据的总和。

Identification

识别码 (ID)。每一个IP封包都有一个 16bit 的唯一识别码。我们从 OSI 和 TCP/IP 的网路层级知识里面知道?当程式产生的数据要通过网路传送时╋都会在传送层被拆散成封包形式发送╋当封包要进行重组的时候╋这个 ID 就是依据了。

Flag

旗标 (FL)。这是当封包在传输过程中进行最佳组合时使用的 3 个 bit 的识别记号。请参考下表?

000.当此值为 0 的时候╋表示目前未被使用。

.0..当此值为 0 的时候╋表示封包可以被分割╋若为 1 则不能被分割。

..0.当上一个值为 0 时╋此值为 0 就示该封包是最后一个封包╋如果为 1 则表示其后还有被分割的封包。

Fragment Offset

分割定位 (FO)。当一个大封包在经过一些传输单位(MTU)较小的路径时╋会被被切割成碎片(fragment) 再进行传送(这个切割和传送层的打包有所不同╋它是由网路层决定的)。由于网路情况或其它因素影响╋其抵达顺序并不会和当初切割顺序一至的。所以当封包进行切割的时候╋会为各片段做好定位记录╋所以在重组的时候╋就能够依号入座了。

如果封包没有被切割╋那么 FO 的值为“0”

Time To Live

存活时间 (TTL)。这个 TTL 的概念╋在许多网路协定中都会碰到。当一个封包被赋予 TTL 值(以秒或跳站数目(hop)为单位)╋之后就会进行倒数计时。在 IP 协定中,TTL 是以 hop 为单位,每经过一个 router 就减一)╋如果封包 TTL 值被降为 0 的时候╋就会被丢弃。这样╋当封包在传递过程中由于某些原因而未能抵达目的地的时候╋就可以避免其一直充斥在网路上面。有只叫做 traceroute 的程式╋就是一个上佳的 TTL 利用实作╋我们会在后面的章节里面讨论。

Protocol

协定(PROT)。这里指的是该封包所使用的网路协定类型╋例如?ICMP 或 TCP/UDP 等等。要注意的是?这里使用的协定是网路层的协定╋这和上层的程式协定(如?FTP?HTTP 等)是不同的。您可以从 Linux 的 /etc/protocol 这个档案中找到这些协定和其代号?其内容如下?

------------------------------------------------------

ip

0

IP

# internet protocol, pseudo protocol number

icmp

1

ICMP

# internet control message protocol

igmp

2

IGMP

# Internet Group Management

ggp

3

GGP

# gateway-gateway protocol

ipencap 4

IP-ENCAP

# IP encapsulated in IP (officially ``IP'')

st

5

ST

# ST datagram mode

tcp

6

TCP

# transmission control protocol

egp

8

EGP

# exterior gateway protocol

pup

12

PUP

# PARC universal packet protocol

udp

17

UDP

# user datagram protocol

hmp

20

HMP

# host monitoring protocol

xns-idp 22

XNS-IDP

# Xerox NS IDP

rdp

27

RDP

# "reliable datagram" protocol

iso-tp4 29

ISO-TP4

# ISO Transport Protocol class 4

xtp

36

XTP

# Xpress Tranfer Protocol

ddp

37

DDP

# Datagram Delivery Protocol

idpr-cmtp

39

IDPR-CMTP

# IDPR Control Message Transport

rspf

73

RSPF

#Radio Shortest Path First.

vmtp

81

VMTP

# Versatile Message Transport

ospf

89

OSPFIGP

# Open Shortest Path First IGP

ipip

94

IPIP

# Yet Another IP encapsulation

encap

98

ENCAP

# Yet Another IP encapsulation

------------------------------------------------------

Header Checksum

标头检验值(HC)。这个数值主要用来检错用的╋用以确保封包被正确无误的接收到。当封包开始进行传送后╋接收端主机会利用这个检验值会来检验余下的封包╋如果一切看来无误╋就会发出确认信息╋表示接收正常。

Source IP Address

来源位址(SA)。相信这个不用多解释了╋就是发送端的 IP 位址是也╋长度为 32 bit。

Destination IP Address

目的地位址(SA)。也就是接收端的 IP 位址╋长度为 32 bit。

Options & Padding

这两个选项甚少使用╋只有某些特殊的封包需要特定的控制╋才会利用到。这里也不作细表啦。

前面所介绍的 IP 封包格式╋请花点时间研究一下╋因为在日后的网路生涯中╋许多概念都要求设计者非常了解 IP 和 TCP 封包(标头)的结构╋例如?防火墙设定和 socket 程式设计。

IP 位址

当我们知道 IP 封包结构之后╋接着我们就要接触一个在 TCP/IP 网路管理中最重要的一个概念? 子网切割( subnetting ) 。子网路这个名词我们前面不断的碰到过╋或许同学们心里都很纳闷它究竟是什么东东?不过╋在真正了解子网路的定义之前╋我们必须要先了解的一个概念是 IP 位址。

IP 位址虽然只有 4 组用小点 (.) 分开的数字(IP v4)╋然而它却是整个 TCP/IP 协定的基石。如果我们在讨论 TCP/IP 网路的时候╋不知道 IP 位址的各个数字代表什么意思╋那就什么都免谈了。

那我们如何解读出 IP 位址所隐含的深刻意思呢?首先,我们要具备一定的数学和逻辑基础╋下面两个概念是一定要知道的?十进位和二进位的换算╋以及基本逻辑运算。这里不打算讨论十进位和二进位的换算了╋如果您忘记了╋请回学校问问数学老师吧。然而╋逻辑运算也不打算详细讨论了╋下面只把在学习 IP 子网计算所需的几个运算╋作一简单归纳而已?

如果不知道它们的工作原理╋那么以后我们在讨论 IP 位址和子网的时候╋您就只能靠死记一途了。不过,一旦你知道了其原理╋那么您在任何的 IP 网路中都不至于迷失╋所谓“万变不离其宗”是也。

我们在前面讲述网路存取层的时候╋层介绍过 ifconfig 命令来查找界面实体位址。事实上,在命令的输出结果里面╋还包含了一个非常重要的资讯?inet addr 和 Mask?

eth0

Link encap:Ethernet

HWaddr 00:A0:0C:11:EA:11

inet addr:203.30.35.134 Bcast:203.30.35.159 Mask:255.255.255.224

UP BROADCAST RUNNING MULTICAST

MTU:1500

Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

Interrupt:3 Base address:0x300eth1

Link encap:Ethernet

HWaddr 00:80:C7:47:8C:9A

inet addr:192.168.0.17 Bcast:192.168.0.255 Mask:255.255.255

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有