TCP/IP详解 卷1:协议—IP:网际协议
Posted xhjh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP详解 卷1:协议—IP:网际协议相关的知识,希望对你有一定的参考价值。
IP首部
普通的IP首部为20字节,除非含有选项字段,网络字节序采用的是大端模式,即低位对应的数据的高字节,高位对应的是数据的低字节,而计算机多采用的是小端存储模式,即低位对应的是数据低,高位对应的是数据高字节,因此,计算机数据进行网络传输时需要进行字节序转换。
- Pv4对应的4位版本号为4。
- 4位首部长度指的是首部32bit字的数量,因此最大可表示长度为15*4=60字节。
- 8位服务类型TOS,前3位为优先权子字段(现在已被忽略),接着4位为TOS子字段和1bit未用位但必须置0,4位为TOS子字段分别表示:最小时延、最大吞吐量、最高可靠性和最小费用,这4位只能有一位为1,如果都为0则表示一般服务。对应不同应用建议的TOS值为:
- 16位总长度字段表示IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。超通道的MTU为65535是因为IP数据报的最大IP数据报长度是65535。
- 后面介绍标志字段和片偏移字段
- 16位标识,标识主机发送的每一份数据报,通常每发送一份报文它的值就会加1。
- 8位生存时间TTL,设置了数据报可以经过的最多路由器数,通常为32或64,每经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
- 8位协议字段用来标识上层使用的是什么协议。
- 16位首部校验和字段是根据IP首部计算的检验和码。计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16 bit进行二进制反码求和(整个首部看成是由一串16 bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。由于路由器经常只修改TTL字段(减1),因此当路由器转发一份报文时可以增加它的检验和,而不需要对IP整个首部进行重新计算。ICMP、IGMP、UDP和TCP都采用相同的检验和算法。
- 每一份IP数据报都包含32位源IP地址和32位目的IP地址 。
- 选项字段,作用如下:
1).安全和处理限制(用于军事领域)
2).记录路径(让每个路由器都记下它的IP地址)
3).时间戳(让每个路由器都记下它的IP地址和时间)
4).宽松的源站选路(为数据报指定一系列必须经过的IP地址)
5).严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)。
IP路由选择
P路由选择主要流程为:
- 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。
- 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。
- 搜索路由表,寻找标为“默认(default)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。如果上面这些步骤都没有成功,那么该数据报就不能被传送。
子网
子网编址,不是把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
子网掩码,通过32位掩码的形式来确定IP地址中的网络号、子网号和主机号,其中值为1的比特留给网络号(通过IP地址的类型可以确定位数)和子网号(值为1的bit位数减去网络号的位数),为0的比特留给主机号。
以上是关于TCP/IP详解 卷1:协议—IP:网际协议的主要内容,如果未能解决你的问题,请参考以下文章