下一页 1 2
互联网协议(Inte.net Protocol)是规范计算机网络中数据传送的一套协议。目前使用的是IPv4, IPv6在试验阶段。
IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了IP。
TCP/IP协议栈(按TCP/IP参考模型划分)
clearcase/" target="_blank" >cc99>应用层
FTP
SMTP
HTTP
...
传输层
TCP
UDP
网络层
IP ICMP
ARP
链路层
以太网
令牌环
FDDI
...
地址格式
IPv4使用32位地址,因此最多可能有4,294,967,296(=232)个地址。一般的书写法为4个用小数点分开的十进制数。也有人把4个字节的数字化成一个巨型整数,但这种标示法并不常见。另一方面,目前还并非很流行的IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。
过去IANAIP地址分为A,B,C,D 4类,把32位的地址分为两个部分:前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址(因为有两个地址不能为网络设备使用: 255为广播地址,0代表此网络本身) 。网络掩码(Netmask) 限制了网络的范围,1代表网络部分,0代表设备地址部分,例如C类地址常用的网络掩码为255.255.255.0。
一些特别的IP地址段:
127.x.x.x给本机地址使用。
224.x.x.x为多播地址段。
255.255.255.255为通用的广播地址。
10.x.x.x,172.16.x.x和192.168.x.x供本地网使用,这些网络连到互连网上需要对这些本地网地址进行转换。
但由于这种分类法会大量浪费网络上的可用空间,所以新的方法不再作这种区分,而是把用者需要用的位址空间,以2的乘幂方式来拨与。例如,某一网络只要13个ip位址,就会把一个 16位址的区段给他。假设批核了 61.135.136.128/16 的话,就表示从 61.135.136.129 到 61.135.136.142 的网址他都可以使用。
IP包长
IP包由首部(header)和实际的数据部分组成。数据部分一般用来传送其它的协议,如TCP, UDP,ICMP等。数据部分最长可为65515字节(Byte)(=2xx16 - 1 - 最短首部长度20字节) 。一般而言,低层(链路层) 的特性会限制能支持的IP包长。例如以太网(Ethernet)协议,有一个协议参数,即所谓的最大传输单元(Maximum Transfer Unit, MTU) ,为1518字节,以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1500字节。
还有一些底层网络只能支持更短的包长。这种情况下,IP协议提供一个分割(fragment)的可选功能。长的IP包会被分割成许多短的IP包,每一个包中携带一个标志(Fragmentid)。发送方(比如一个路由器) 将长IP包分割,一个一个发送,接送方(如另一个路由器)按照相应的IP地址和分割标志将这些短IP包再组装还原成原来的长IP包。
IP路由
Ipv4并不区分作为网络终端的主机(host) 和网络中的中间设备如路由器中间的差别。每台电脑可以即做主机又做路由器。路由器用来联结不同的网络。所有用路由器联系起来的这些网络的总和就是互联网。
IPv4技术即适用于局域网(LAN) 也适用于广域网。一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络。每个路由器都拥有如何传递IP包的知识,这些知识记录在路由表中。路由表中记录了到不同网络的路径,在这儿每个网络都被看成一个目标网络。路由表中记录由路由协议管理,可能是静态的记录比如由网络管理员写入的,也有可能是由路由协议动态的获取的。有的路由协议可以直接在IP协议上运行。
常用的路由协议有
路由信息协议(Routing Information Protocol, RIP),
开放式最短路径优先协议,Open Shortest Path Fast, OSPF) ,
中介系统对中介系统协议(Intermediate System – Intermediate System, IS-IS) ,
边界网关协议(Border Gateway Protocol, BGP) .
在网络负荷很重或者出错的情况下,路由器可以将收到的IP包丢弃。在网络负荷重的时候,同样一个IP包有可能由路由器决定走了不同的路径。路由器对每一个IP包都是单独选择路由的。这也提高了IP通信的可靠性。但单是IP层上的包传输,并不能保证完全可靠。IP包可能会丢失; 可能会有重复的IP包被接受方收到; IP包可能会走不同的路径,不能保证先发的先到; 接受方收到的可能是被分割了的IP包。在IP之上再运行TCP协议则解决这些缺点提供了一个可靠的数据通路。
ICMP
互联网控制消息协议(Internet Control Messages Protocol,ICMP) 用于查错和控制(如),是IP协议不可能缺少的帮手。几乎任何的IP协议的实施(Implementation)都伴随一个ICMP协议的实施。ICMP协议实现在IP之上,即ICMP包是作为IP的数据部分来传送的。
ICMP的一个重要的应用是网络拥塞控制: 路由器丢弃一个IP包时,一般会用ICMP发一个消息给这个IP包的原发送者,原发送者可以相应的降低IP包的发送频率,以降低或避免IP包再被丢弃的可能性。
ICMP的另一个重要的应用在于,将传送ICMP消息的IP包禁止分割位(Don't Fragment-Bit)设置上,就可以利用ICMP的来测量一段网络的最大传输单元(MTU) 。
IPOE
Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。
一个用于IP包的以太网数据帧,在IP包首部前有一个14字节的以太网帧首部,在IP数据部分后添加了一个32位(4字节) 的CRC校验。
除了1518字节的最大传输单元(MTU) 限制外,以太网还有最小传输单元的限制: 总帧长不能小于64字节。如果IP包太短,比如IP数据部分短于26字节,那么后面会添0(Padding) ,这时IP首部中的'包长度'指示了真正的包长。
以太网使用48位的地址。每个以太网网卡都有一个独一无二的48位的硬件地址。所有的位均为1的地址是以太网广播地址。发送数据的以太网网卡必须知道数据接送方的以太网地址才能把数据发给它。
地址解析协议ARP(Address Resolution Protocol) 用于将IP地址转换成以太网地址。每台计算机上都有一个ARP列表,里面存储了以太网中不同的IP地址与以太网地址的对应关系。如果一台计算机发现某个目标IP地址没有对应的以太网地址,它会发一个ARP请求(Request) 到以太网中询问,拥有该IP地址的计算机就会发一个ARP应答(Reply)来通知它自己的以太网地址。