IP
:网际协议
IP 是TCP/IP协议族中的最为核心的协议,所有的TCP、UDP、ICMP以及IGMP协议都是以IP数据报格式传输。但是,其本身提供的是不可靠的、无连接的数据报传输传送服务;
- 不可靠: 意思是它不能保证IP数据报能够成功的传达到目的地,IP仅提供最好的传输服务,如果传输过程中发生错误,其为丢弃掉该数据报,然后发送ICMP消息报到数据源,因此,其可靠性是靠上层协议来提供;
- 无连接:IP并不维护任何关于后续数据报的状态信息,即每个数据报处理是相互独立的。因此,IP数据报可以不按照发送顺序进行接收。
1 、IP首部
IP数据报的格式如下图,普通IP首部长度为20个字节
其中:
- IP地址长度为32bit,即4个字节
- 最高位在左边,记作为0bit, 最低位在右边,记作31bit;
- 第一个32bit: 前四位为版本号,4最为IPV4,第二个四位代表为首部长度,因此首部长度最长为60个字节;服务类型(TOS)包括一个3bit的优先权字段(已经忽略),4bit的TOS子字段和1bit未应用位但必须置位为0. 4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小费用;
2、IP路由选择
IP路用选择是简单的,特别是对于主机来说。如果目的主机和源主机相连或都在一个共享网络上,那么IP数据报直接送到该主机上;否则,主机把数据报发往一默认的路由器,有路由器来转发该数据报,大多数主机采用此种形式;
在这里我们讨论更一般的情况
IP数据报来源:
- 从TCP、UDP、ICMP或者IGMP接收数据报,并能够进行发送;
- 从一个网络接口接收数据报,此时为带转发的数据报,然后进行发送;
IP层在内存中存有一个路由表,当收到一个数据报并发送时,它都要对该表搜索一次。当数据报来自于某个网路接口时,IP首先检查目的IP地址是否为本机IP地址之一或者IP广播地址,如果是,数据报就被送到IP首部协议字所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么,如果IP层被设置为路由器功能,则对数据报进行转发。否则丢弃处理;
路由表信息:
- 目的IP地址。它可以是一个完整的主机地址,也可以是一个网络地址。区分为该表中标志字段进行指定,主机地址有一个非0的主机号来指定某一个特定的主机,而网络地址中的主机号为0,以指定网络中的所有主机;
- 下一站路用器的IP地址或者有直接连接的网络IP地址
- 标志。其中一个标志指明IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接连接的接口
- 为数据报传输指定一个网络接口.
IP路由选择是hop-by-hop,即逐跳进行的。
3、子网寻址
现在所有的主机都支持子网编码。不是把IP地址看作有单纯一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。原因为:A类和B类地址为主机号分配了太多的空间,
一种格式如下:
子网对外部路由器来说,隐藏了内部网络组织。子网对于子网内部的路由器是不透明的。
4、子网掩码
任何主机在引导时进行的部分配置是指定主机IP地址,大多数系统把IP地址存在一个磁盘文件里供引导过程时读取;
除了IP地址以外,主机还需要知道有多少比特用于子网号及多少比特用于主机号。这是在引导过程中提供子网掩码来确定的。
这个掩码是一个32bit的值,其中为1的比特留给网络号和子网号,为0的留给主机号。
不同于IP地址,子网掩码常采用十六进制来表示。
5、ifconfig命令
ifconfig命令一般在引导中进行,以配置主机上的每个接口。
6、netstat命令
netstat命令也提供系统上的接口信息。