The network layer of TCP/IP architecture (IP protocol header format and the four supporting protocols (ARP, RARP, ICMP, IGMP))

table of Contents

IP protocol header format
Address Resolution Protocol ARP
Reverse Address Resolution Protocol RARP
Internet Control Message Protocol ICMP
Internet Group Management Protocol IGMP


IP datagram header

IP datagram header format:

The most significant bit is on the left, denoted as 0 bit; the least significant bit is on the right, denoted as 31 bit

version:

It occupies 4 digits and refers to the version of the IP protocol. The current IP protocol version number is 4 (i.e. IPv4)

Head length:

Occupying 4 bits, the maximum value that can be represented is 15 units (one unit is 4 bytes), so the maximum length of the IP header is 60 bytes

Differentiated services:

It occupies 8 bits and is used to obtain better services. It is called service type in the old standard, but it has not been used in fact. In 1998, this field was renamed as differentiated service. Only when using differentiated service (DiffServ), this field It works. Under normal circumstances, this field is not used

Total length:

It occupies 16 bits and refers to the length of the sum of the header and the data, in bytes, so the maximum length of the datagram is 65535 bytes. The total length must not exceed the maximum transmission unit MTU

Logo:

Occupying 16 bits, it is a counter used to generate datagram identification

Flag:

Occupy 3, only the first two are meaningful at present

  • MF

    • The lowest bit of the flag field is MF (More Fragment)
    • MF=1 means "there are still fragments" behind. MF=0 means the last fragment
  • DF

    • The one in the middle of the flag field is DF (Don't Fragment)
    • Fragmentation is allowed only when DF=0

Piece offset:

It occupies 12 bits, which refers to the relative position of a longer packet in the original packet after the fragmentation. The fragment offset uses 8 bytes as the offset unit

Survival time:

It occupies 8 bits and is recorded as the maximum number of routers that a TTL (Time To Live) datagram can pass through in the network. The TTL field is an 8-bit field that is initially set by the sender. The recommended initial value is specified by the assigned number RFC. The value is 64. The TTL is often set to the maximum value of 255 when sending ICMP echo responses

protocol:

占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

首部检验和:

占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

源地址和目的地址:

都各占 4 字节,分别记录源地址和目的地址

 


地址解析协议 ARP

说明:

ARP 每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表

作用:

通过IP地址得知其物理地址 

步骤:


注意:

  • 网络上其他主机并不响应 ARP 询问,只有接收端主机接收到这个帧时,才向发送端主机做出这样的回应
  • ARP 是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题.若所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络.剩下的工作就由下一个网络来做
  • 从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的.
  • 主机或路由器要和本网络上另一个已知 IP 地址的主机或路由器进行通信,ARP 协议会自动地将该IP地址解析为链路层所需要的硬件地址

四种典型情况:

  • 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机.这时用 ARP 找到目的主机的硬件地址
  • 发送方是主机要 IP 数据报发送到其他网络的主机.这时 ARP 找到本网络上某个路由器硬件地址.剩下工作由这个路由器完成
  • 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机.这时用 ARP 找到目的主机的硬件地址
  • 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机.这时用 ARP 找到本网络上的一个路由器的硬件地址.剩下的工作由这个路由器来完成

报头格式:

说明:

  • 硬件类型字段表示硬件地址的类型.它的值为1即表示以太网地址
  • 协议类型字段表示要映射的协议地址类型.它的值为 0x0800 即表示 IP 地址
  • 硬件地址长度协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位.对于以太网上 IP 地址的 ARP 请求或应答来说,它们的值分别为 6 和 4
  • 操作字段指出四种操作类型,它们是 ARP 请求(值为1)、ARP 应答(值为 2 )、RARP 请求(值为 3 )和 RARP 应答(值为 4 )
  • 接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址( IP 地址)、目的端的硬件地址目的端的协议地址.

参考链接:

http://blog.csdn.net/tigerjb/article/details/7351992

 


逆地址解析协议 RARP

定义:

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其IP地址

用途:

这种主机往往是无盘工作站.因此 RARP 协议目前已很少使用

RARP 与 RAP:

 


网际控制报文协议 ICMP

目的:

为了提高 IP 数据报交付成功的机会

注意:

  • 允许主机和路由器报告差错情况和提供有关异常情况的报告
  • ICMP不是高层协议,而是IP层的协议
  • ICMP报文作为IP层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去
  • ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和.接着的4个字节的内容与ICMP的类型有关

种类:

  • ICMP 差错报告报文:
    • 终点不可达
    • 源点抑制(Source quench)
    • 时间超过
    • 参数问题
    • 改变路由(重定向)(Redirect)
  • ICMP 询问报文:
    • 回送请求和回答报文
    • 时间戳请求和回答报文

报文格式:

ICMP地址掩码请求和应答报文

ICMP时间戳请求和应答报文

ICMP不可达报文

ICMP回显请求和回显应答报文格式

ICMP超时报文

ICMP重定向报文

ICMP路由器请求报文格式

ICMP路由器通告报文格式

ICMP 源站抑制差错报文格式

 ICMP 类型:

 

不应发送ICMP差错报告报文的情况:

  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP 差错报告报文
  • 多播地址的数据报都不发送ICMP差错报告报文
  • 特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP差错报告报文

网际组管理协议IGMP

报文格式:

作用:

它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系

功能:

当一台主机加入到一个新的组时,它发送一个IGMP消息到组地址以宣告它的成员身份,多播路由器和交换机就可以从中学习到组的成员.利用从IGMP中获取到的信息,路由器和交换机在每个接口上维护一个多播组成员的列表

两个阶段:

  • 加入:
    • 当主机加入新的多播组时,向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员.本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器
  • 询问:
    • 周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员
  • 注意:
    • 因为组成员关系是动态的,因此本地多播路由器要只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的
    • 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器

数据包:

IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务

具体措施:

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送
  • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了

Guess you like

Origin blog.csdn.net/boy_hxm/article/details/38565087