第五章IP基本原理

TCP/IP协议栈的网络层位于网络接口层和传输层之间,其主要协议包括IP(Internet Protocol 互联网协议)、ARP(Address Resolution Protocol 地址解析协议)、RARP(Reverse Address Resolution Protocol 反向地址解析协议)、ICMP(Internet Control Message 互联网控制消息协议)、IGMP(Internet Group Management Protocol 互联网组管理协议)。

IP协议概述

TCP/IP协议栈的网络层位于网络接口层和传输层之间。网络层的主要功能是标识大规模网络中的每一个节点,并将数据包投递到正确的目的节点。

TCP/IP的网络层主要定义了以下协议:

IP:负责网络层寻址、路由选择、分段及包重组

ARP:负责把网络层地址解析成物理地址

RARP:负责把物理地址解析成网络层地址

ICMP:定义了网络层控制和传递消息的功能,可以报告IP数据包传递过程中发生的错误、失败等信息,提供网络诊断功能。

IGMP:负责管理IP组播组

TCP/IP网络层的核心协议是由RFC791定义的IP。IP是尽力传输的网络协议,其提供的数据传送服务是不可靠的、无连接的。IP协议不关心数据报文的内容,不能保证数据包能成功地到达目的地,也不维护任何关于前后数据包的状态信息。面向连接的可靠服务由上层的TCP协议实现。

IP将来自传输侧的数据封装成IP包并交给网络接口层进行转发,同时将来自网络接口层的帧解封装并根据IP协议号提交给相应的传输层协议进行处理。TCP的IP协议号为6,UDP的IP协议号是17。

IP协议的主要作用包括:

标识节点和链路:IP为每个链路分配一个全局唯一的网络号以标识每个网络;为节点分配一个全局唯一的32位IP地址,用以标识每一个节点。

寻址和转发:IP路由器通过根据所掌握的路由信息,确定节点所在网络的位置,并进而确定节点所在的位置,并选择适当的路径将IP包转发到目的节点。

适应跟中数据链路:为了工作于多样化的链路和介质上,IP必须具备适应各种链路的能力,例如可以根据链路的MTU对IP包进行分片和重组,可以建立IP地址到数据链路层地址的映射以及通过实际的数据链路传递信息。

IP网络结构

典型的IP互联网由众多的路由器和网段构成。每个网段对应一个链路。路由器在这些网段之间执行数据转发服务。

路由器的主要功能:

连接分离的网络:路由器的每个接口处于一个网络,将原本孤立的网络连接起来,实现大范围的网络通信。

链路层协议适配:由于链路层协议的多样性,不同类的链路之间不能直接通信。路由器可以适配各种数据链路的协议和速率,使其的通信成为可能。

在网络之间转发数据包:为了实现这个功能,路由器之间需要运行网关到网关协议(Gateway to Gateway Protocol GGP)交换路由信息和其他控制信息,以了解去往每个目的网络的正确路径,典型的GGP包括RIP、OSPF、BGP等路由协议。

IP网络的包转发使逐跳(hop-by-hop)进行的。即包括路由器在内的每一个节点要么将一个数据包直接发送给到目的节点,要么将其发送到摸底节点路径上的下一跳节点,由下一跳继续将数据包转发下去。数据包必须历经所有的中间节点之后才能到达目的。每一个路由器或主机的转发决策都是独立的,其依据是存储于自身路由表中的路由。

IP封装


Version(4b)
 IHL

(4b)


Type of Service

(8b)


Total Length

(16b)


Identification

(16b)


Flags

(3b)


Fragment Offset

(5b)

Time to Live(8b) Protocol(8b)
Header Checksum(16b)
Source IP Address(32b)
Destination IP Address(32b)
IP Options
  • 版本(Version):表明了IP协议的版本号,目前的协议版本号为4。下一代IP协议的版本号为6.
  • 头长度(Internet Header Length,IHL):指IP包头部长度。
  • 服务类型(Type of Service ToS):用于标志IP包期望获得的服务等级,常用于QoS(Quality of of Service 服务质量)中。
  • 总长度(Total Length):整个IP包的长度,包括数据部分。
  • 标识(Identification):唯一地标识主机发送的每一个IP包。通常每发送一个包它的值就会加1.
  • 生存时间(Time to Live TTL):设置了数据包可以经过的路由器数目。一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃。
  • 协议(Protocol):标识数据包内发送的数据所属的上层协议,IP用协议号区分上层协议。TCP协议的协议号为6,UDP 协议的协议号为17。
  • 头校验和(Head Checksum):IP头部的校验和,用于检查包头的完整性。

源地址和目的地址:分别标识数据包的源节点和目的节点的IP地址。


IP地址和地址映射

IP地址格式和表示方法

连接到internet上的设备必须有一个全球唯一的IP地址。IP地址长度为二进制32位,通常采用点分十进制方式表示,即每个IP地址被表示为以小数点隔开的4个十进制整数,每个整数对应一个字节,如192.168.5.123。

IP地址与链路类型、设备硬件无关、而是由管理员分配指定的,因此也称为逻辑地址(Logical Address)。每台主机可以拥有多个网络接口卡,也可以同时拥有多个IP地址。路由器可以看作这种主机,但其每个IP接口必须处于不同的IP网络,即各个接口的IP地址分别处于不同的IP网段。

由于理论上总共有232IP地址,也就是约43亿个IP地址,在互联网上,每一台路由器都储存每一个节点的路由信息几乎是不可能的。为便于实现路由选择、地址分配和管理维护,IP地址采用二级结构,即IP地址由两个部分组成:

  • 网络号(network-number):用于区分不同的IP网络,即该IP地址所属的IP网段。一个网络中的所有设备的IP地址具有相同的网络号。
  • 主机号(host-number):用于标识该网络内的一个IP节点。在一个网段内部,主机号是唯一的。

这样,路由器只需要储存每个网段的路由信息即可。

IP地址分类

  • A类IP地址的第一个八位段(octet)以0开始。A类地址的网络号为第一个八位段,网络号取值范围为1~126(127留作它用)。A类地址的主机号后面的三个八位段,工24位。A类地址的范围为1.0.0.0~126.255.255.255,每个A类网络有224个A类地址。
  • B类IP地址的第一个八位段以10开始。B类地址的网络号为前两个八位段,网络号的第一个八位段取值为128!191。B类地址的主机号后面的两个八位段工16位。B类地址的范围为128.0.0.0~191.255.255.255,每个B类网络有216个B类地址。
  • C类IP地址的第一个八位段以110开始。C类地址的网络号为前三个八位段,网络号的第一个八位段取值为192~223.C类地址的主机号后面的一个八位段共8位。C类地址的范围为192.0.0.0~223.255.255.255,每个C类网络有28=256个C类地址。
  • D类地址第一个八位段以1110开头,因此D类地址的第一个八位段取值为224~239.D类地址通常为组播地址。
  • E类地址第一个八位段以11110开头,保留用于研究。

    特殊IP地址



时间: 2024-08-01 22:30:24

第五章IP基本原理的相关文章

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb

第五章搭建S3C6410开发板的测试环境

第五章本章主要介绍开发板的调试环境的搭建,以及如何将Android系统安装开发板上. 开发板是开发和学习嵌入式技术的主要硬件设备. 尽管可以在PC上开发Linux驱动,然后重新编译成ARM构架的Linux驱动模块,但最终都是要在开发板上进行测试的. 开发板从技术上说与手机类似,包含显示器.键盘.Wi-Fi.蓝牙等模块.开发板可扩展的端口多,容易开发定制的硬件. 第一节S3V6410开发板简介 S3C6410是一款低功耗.高性价比的RISC处理器,它给予ARM11内核,可以广泛应用于移动电话和通用

第五章

第五章 搭建S3C6410开发板的测试环境 ARM构架的开发板可基于X86构架的PC 在CPU指令以及二进制格式上有所不同. 安装串口调试工具 minicon 使用OK6410开发板可以使用其他方法显示Linux驱动程序输出的调试信息.此为串口调试. OK6410开发板自带一个串口.通过串口线与PC连接,linux驱动在输出调试信息的同时,通过串口线将调试信息发送到PC上. 安装.配置和测试minicom: 1.lsmod | grep usbserial 2.apt-get install m

Android深度探索--HAL与驱动开发----第五章读书笔记

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 L

《android深入探索》第五章心得

看了本书第五章,我了解到了: 使用开发板的原因: 是学习嵌入式技术的主要设备. arm的开发板可基于X86架构的PC在CPU指令及二进制指令格式上都有所不同,且若linux驱动要访问硬件(LCD.Wifi.蓝牙等),并且这些硬件在PC上很难进行模拟,所以就要在带有这些硬件的开发板上进行调试和测试. 与手机类似,比手机更容易安装嵌入式系统,有很多扩展的端口,容易开发定制硬件. S3C6410开发板:三星公司推出的一款低功耗.高性价比的RISC精简指令集处理器,基于ARM11内核,提供了优化的2.5

第五章心得体会

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 接着需要安装串口调试工具minicom: 1.检测当前系统是否支持USB转串口: 2.安装minicom: 3.配置minicom: 4.测试minicom: 然后学会了烧写Android系统.在烧写Android之前,务必应该启动Eboot擦除NandFlash.方法如下:第一步:准备工作:第二步:进入Eboot状态:

第五章心得

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 L

第五章 搭建 S3C6.410 开发板的 测试环境

一.前言 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 Linux 程序(如 Linux 驱动〉进行测试. 目前市面上的开发板型号和种类很多,但目前最流行的是基于三星S3C6410 ARM11架构的开发板.国内很多厂商在S3C

Android深度探索——第五章读书笔记及心得

搭建S3C6410开发板的测试环境 ——第五章读书笔记及心得 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要在卡发板上进行调试和测试.其相对于手机更适合与对程序进行测试,尤其是对底层linux程序进行测试.还了解了S3C6410开发板的基本信息.知道了如何安装串口调试工具以及烧写Android系统.知道了如何配置有线网络. S3C6410是一款低功耗.高性价比的精简指令集计算机处