IP协议、ARP协议、RARP协议

网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

IP数据报

IP是TCP/IP协议族中最核心的协议,所有的TCP、UDP、ICMP、IGMP数据都以IP数据报的格式传输。IP仅提供尽力而为的传输服务,如果发生某种错误,IP会丢失该数据,然后发送ICMP消息给信源端。另外,IP数据报可以不按发送顺序接受。

IP数据报的格式如下:

前20字节和紧接其后的选项部分是IP数据报的首部,前20个字节是固定的,选项可有可无。首部的每一行是一个32位字的单位,最高位在左边,为0bit,最低位在右边,为31bit。4字节的32bit值按照以下次序传输:首先0-7bit,其次8-15比特,然后16-23bit,最后是24-31bit,这种传输次序称为big endian字节序(我们在C语言写位操作的算法时常用到该词)。TCP/IP首部中的所有二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序,其他形式存储的二进制数据,如little endian格式,则必须在传输数据之前把首部转化成网络字节序。

首部长度是指首部占32bit字的数目,因为4位的最大值为15,因此首部最长为60字节,也即是说选项部分的最大值为40字节,不够4的倍数,要用0填充,使数据部分的起始地址为4的倍数。

总长度指整个IP数据报的长度,包括首部和数据部分,16bit,最长可达65535字节。尽管理论上可以传送一个长达65535的IP数据报,但实际上还要考虑网络的最大承载能力等因素,标准的TCP/IP分组大小为576字节,减去IP首部的20个字节,TCP首部的20个字节,路由协议头的24个字节,为512字节,因此主机接受的数据报的数据部分一般不超过512个字节。(PS:这点看的也不是太懂,网上很多人也有此疑问,谢希仁的计算机网络中写的一次IP数据报最少576字节,尼玛这里翻译的是不超过576字节,先往后看吧,说不定看到后面就豁然开朗了)。

3个标志位主要用来标识分片的IP数据报,片位移为分片的数据报的首个字节偏离整个原始数据报的位置。

IP路由选择

主机通过路由器和目的主机连接。主机通过IP数据报连

接目的主机时,按照如下步骤搜索(同一网络中的搜索要经过ARP协议将目的主机的IP地址解析为MAC地址):

1、搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机

2、搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要子网掩码的协助。如果找到路由器,则将该包发向路由器。

3、搜索路由表,如果匹配同子网路由器失败,则匹配同网号路由器,如果找到路由器,则将该包发向路由器。

4、搜索路由表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包

5、如果都失败了,就丢掉这个包。

子网掩码

主机号再分成一个子网号和主机号,便将一个网络又划分成了若干子网,子网掩码与该子网中的IP地址相与,便得到该子网,另外,子网对于子网内部的路由器是不透明的,也就是说IP数据报传到该网络的网关时,网关再将该数据报传送到子网的默认路由器上,最后通过该路由器再交付给该主机。

ARP协议和RARP协议

前面已经说过,ARP协议只用在局域网中,它用来将IP地址解析为MAC地址。局域网中的每个主机都有一个ARP缓存,它保存了最近发起的IP地址到MAC地址的映射记录,当该主机要向局域网中的某一主机发送数据时,它会先从自己的缓存中查找,看是否存在目标IP地址,如果找到,就通过映射找到它的MAC地址,从而发送过去,如果没有找到该目的IP地址,它就向该局域网内发送一个广播,广播中包含自己的IP地址、MAC地址和目的主机的IP地址,局域网内的所有主机都会收到该广播,但只有目的IP地址的主机会做出回应,并把自己的MAC地址发送给源主机,源主机收到后,在自己的ARP缓存中增加上该映射,并根据发来的MAC地址将数据发送给目的主机。

ARP高速缓存中的表项一般都要设置超时值,如果一段时间内没有与某主机通信,就将该主机对应的IP与MAC之间的映射关系去掉,下次在需要通信时,依然发送广播。

如果ARP请求是从一个网络的主机到另一个网络的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程成为ARP代理。

RARP协议则刚好相反,它将MAC地址解析成为对应的IP地址,现在已很少单独使用。

(0)

相关推荐

  • 网络协议是什么?网络协议三要素是什么?

    本文向大家详细介绍网络协议是什么以及网络协议三要素是什么的基础知识,不懂的朋友可以通过本文了解学习! 网络协议是什么 网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 一个网 ...

  • 广域网协议中的重点协议

    广域网协议是相对于局域网协议而说的,互联网我们就可以认定为是广域网。那么它相关的协议也就很好理解了。跟OSI模型是分不开的。下面我们来说几个典型的协议。给大家作为参考。 广域网协议是在OSI参考模型的 ...

  • Win10怎么启用Tcp/IP上的netbios网络协议?

    win10系统中默认安装了netbios协议,但是没有使用,想要开启这个协议,下面我们就来看看详细的教程. 1.在Windows10桌面,右键点击“网络”图标,然后在弹出的菜单中选择“属性”菜单项 2 ...

  • 网络协议之内部网关协议OSPF

    要想认识OSPF首先得区分OSPF于RIP的不同,有很多人都搞不清楚两者之间的关系与区别,下面我们先从定义来看看他们的区别。 OSPF(Open Shortest Path First开放式最短路径优 ...

  • Wireshark怎么让协议高亮显示? Wireshark设置协议颜色的教程

    Wireshark在不同的协议会想要设置不同的颜色以便于区分,该怎么设置协议的颜色呢?下面我们就来看看详细的教程. 1.打开Wireshark,选择一个协议行,右键单击,选择第一个选项即可进行高亮显示 ...

  • 网络协议之STP(生成树协议)选举过程

    生成树协议的定义 生成树算法的网桥协议STP(Spanning Tree Protocol) 它通过生成生成树保证一个已知的网桥在网络拓扑中沿一个环动态工作。网桥与其他网桥交换BPDU消息来监测环路, ...

  • HTTP协议是什么?HTTP协议认证介绍

    什么是HTTP基本认证 桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64算法加密后的字符串放在http requ ...

  • 路由器的工作原理及数据是如何在路由器中通过

    对于一般人而言只要能使用路由器上网就可以了,但对于一个合格的网管来说,是必须要知道路由器的工作过程的,尤其是要知道数据是如何在路由器中通过的。 一、当数据经过路由器时,在原始套接口上可调用connec ...

  • 路由器网络中数据包传输分析

    本篇介绍一个基础的知识,关于数据包在路由器中是如何进行传输和交换的,只要明白这点,那么对你配置出一个好的网络环境会有很大的帮助。 一、输入的问题 1、原始套接口可以接收到任何TCP或UDP报文。 2、 ...