TCP/IP学习笔记(3)

第三章 IP:网际协议

概念

  • 不可靠:不能保证IP数据能成功抵达目的地。IP仅提供最好的传输服务,若发生错误,比如:某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃数据报,然后发送ICMP消息报给信源端,任何要求的可靠性只能有上层提供(比如TCP)。

  • 无连接:IP不维护后续数据报的状态消息,每个数据报的处理是相互独立的。这也说明了IP数据报可以不按顺序发送接收。若信源向相同的信宿发送两个数据报,由于数据报独立传输,可能是不同的路由,先到达宿主的可能是之前后传输的数据报 。

IP首部

IP首部一般为20个字节(可以含有选项字段,即大于20字节)

图中高位在左,4个字节的32bit值传输次序:0~7bit,8~15bit,16~23bit,24~31bit,该次序称为big endian字节序,由于TCP/IP首部中的所有二进制整数在网络中都是这种次序,又称为网络字节序。

  • 4位版本:协议版本

  • 首部长度:限制首部长度大小,可以使60字节。

  • 服务类型(TOS):包括3bit的优先权字段(已经忽略),4bit的TOS字段,1bit未用位(必须置0),TOS四位表示:最小时延,最大吞吐量,最高可靠性,最小费用,4bit中只能置1bit,全为0为一般服务,以下是不同TOS的特性:

    • Telnet和Relogin这俩交互应用要求最小的传输时延
    • FTP要求最大吞吐量
    • SNMP(网络管理)和路由选择协议要求最高可靠性
    • Usernet news ,NNTP(用户网络新闻协议)要求最小费用
  • 总长度:IP数据报的长度。
  • 标识字段:标识主机发送的每份数据报,通常发送一份就会进行加一操作。
  • TTL(time-to-live):生存时间设置了数据可以经过的最多路由器数,制定了数据报的生存时间,一旦经过一个处理他的路由器就会减去1,为0的时候数据报就会被丢弃,并发送ICMP报文通知源主机。
  • 协议字段:用于识别是什么协议向IP发数据。
  • 首部检验和:根据IP计算的首部检验和码。

IP路由选择

一般来说若目的主机和源主机直接相连,在一个局域网,则数据报直接送到目的主机,否则主机的数据发送在默认的路由器上,路由器转发数据报。

一般体制中,IP可以从TCP、UDP、ICMP和IGMP(本地生成的数据报)接收数据报并进行发送,或者从一个网络接口接收数据报进行发送(转发)。

IP内存中有一个路由表,一旦收到数据报进行发送的时候,就会搜索路由表,当数据来自网络接口时,IP层会检测目的IP地址是否为本机的IP地址之一或者IP广播地址,若是,数据报就会送入IP首部协议所指定的协议模块进行处理,否则,检测IP层是否设置了路由器功能,若没有则丢弃数据,若有则进行转发。

IP路由选择完成的功能如下:

  • 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。
  • 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行讨论。
  • 搜索路由表,寻找标为“默认default”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。如果上面这些步骤都没有成功,那么该数据报就不能被传送。

子网寻址

IP地址分网络号和主机号,现在就是把主机号再看成是一个子网号和主机号。

子网掩码

用于区分子网号与主机号的界限。

特殊情况的IP地址


这个表可以分成三个部分。表的头两项是特殊的源地址,中间项是特殊的环回地址,最后四项是广播地址。

表中的头两项,网络号为0,如主机使用BOOTP协议确定本机IP地址时只能作为初始化过程中的源地址出现。