简介

IP是TCP/IP协议族中最核心的协议。所有的TCP、UDP、ICMP和IGMP数据都以IP数据报格式传输。IP也决定了接收到的数据将被分发到哪个网络进程。

IP地址

IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址。它为互联网上的每一个网络和每一台主机分配一个逻辑地址,常见的IP地址,分为IPv4与IPv6两大类,当前广泛应用的是IPv4,目前IPv4几乎耗尽IPv6号称可以为世界上每一粒沙子都编上地址;如无特别注明,一般讲的的IP地址所指的是IPv4。

MAC地址

MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同一网段内的MAC地址必须唯一)。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。

IP首部

IP首部长为20个字节,除非含有选项字段

其中TOS(Type OF Service)指的是什么?
TOS总共8bit(即8位)。

  • 其中前三位(0、1、2)指的是IP优先级(IP Precedence)
  • 中间三位(3、4、5、6)指的是IP的服务类型。
    • 第三位(3)— 0:正常延迟。 为1:低延迟
    • 第四位(4)— 0:正常吞吐量 1:高吞吐量
    • 第五位(5)— 0:正常可靠性 1:高可靠性
    • 第六位(6)— 0:正常开销 1:低开销
      最后一位保留

前三位有一些常用格式:

  • 111 - Network Control
  • 110 - Internetwork Control
  • 101 - CRITIC/ECP
  • 100 - Flash Override
  • 011 - Flash
  • 010 - Immediate
  • 001 - Priority
  • 000 – Routine

中间四位的常用格式:

  • 1000 – minimize delay
  • 0100 – maximize throughput
  • 0010 – maximize reliability
  • 0001 – minimize monetary cost
  • 0000 – normal service

DSCP
使用8位中的前6位,取值范围是十进制的0~63。最后以二进制表达
如十进制的0 = 二进制的000000

16位首部校验和
用来检验数据是否被篡改过,类似哈希散列表

子网掩码

分割作用,将一个网络分割成多个小网络,从而起到节省IP地址的作用。一般IP地址以点分十进制方法表示,而子网掩码用十六进制来表示。并且主机需要通过子网掩码来确定多少比特用于子网号多少比特用于主机号。

作用:
在给定IP地址和子网掩码后,主机可以确定IP数据报的目的:

  • 本子网上的主机
  • 本网络中其他子网的主机
  • 其他网络上的主机,如果知道了IP地址就知道了它的类型,A类还是B类等,也就知道了网络号和子网号的分界线。而根据子网掩码就可以知道子网号和主机号之间的分界线

举例:假设我们的主机地址是140.252.1.1(B类地址),而子网掩码是255.255.255.0(其中8bit为子网号,8bit为主机号)

  • 如果目的IP地址为140.252.4.5,那么我们知道B类的网络号是相同的(140.252),但是子网号是不同的(1和4)。
  • 如果目的IP地址为140.252.1.22,它是B类网络号,子网号是1与我们主机的子网号相同,但是主机号不同(1,22)
  • 如果目的IP地址为192.43.235.6,它是C类网络号,子网是235与我们主机的子网号不同,所以不必再比较下去了。

子网掩码相当于是ip地址中的子网号+主机号转成十进制的值。

ifconfig命令

ifconfig -a 显示所有接口情况

参数

  • add<地址>:设置网络设备IPv6的ip地址;
  • del<地址>:删除网络设备IPv6的IP地址;
  • down:关闭指定的网络设备;
  • <hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
  • io_addr<I/O地址>:设置网络设备的I/O地址;
  • irq<IRQ地址>:设置网络设备的IRQ;
  • media<网络媒介类型>:设置网络设备的媒介类型;
  • mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
  • metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
  • mtu<字节>:设置网络设备的MTU;
  • netmask<子网掩码>:设置网络设备的子网掩码;
  • tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
  • up:启动指定的网络设备;
  • -broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
  • -pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
  • -promisc:关闭或启动指定网络设备的promiscuous模式;

netstat命令

netstat命令提供系统上的接口信息。-i参数将打印出接口信息, -n参数将打印出ip地址,而不是主机名字

作业

  • 环回地址必须是127.0.0.1吗?
    不是的,所有127.x.x.x的ip都是访问环回接口。

  • 子网号为16bit的A类地址和子网号为8bit的B类地址的子网掩码有什么不同?
    前者是由16位网络号 + 16位子网号转成十进制码
    而后者是由16位网络号 + 8位子网号 + 8位主机号组成的十进制码

  • 子网掩码255.255.0.255是否对A类地址有效
    有效但是不符合习惯性的规定。A类默认子网掩码为255.0.0.0