UNIT02 Internet Protocol

 

ARP和RARP报文不被封装在IP数据报中,而ICMP和IGMP的数据则要封装在IP数据报中进行传输。由于IP协议在网络层中具有重要的地位,人们又将TCP/IP协议的网络层称为IP层。

02.1 IP Protocol Overall

1、所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输

2、IP协议是点-点的网络层通信协议

3、IP协议是一种不可靠、无连接的数据报传送服务协议

Unreliable的意思是它不能保证IP数据能成功地达到目的地。如果发生某种错误时,IP有一个简单的处理算法:丢弃该数据报,然后发送ICMP消息报给源主机,任何要求的可靠性必须由上层来提供(TCP)。

Connectionless的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报处理是相互独立的。IP数据报可以不按发送顺序接收,可以选择不同线路传输。

4、IP协议向传输层屏蔽了物理网络的差异

5、IP软件执行路由功能,为数据发送指定路径。

6、IPv4的局限性

地址数量的不足

复杂的头标,难以扩充

缺少安全与保密方法

对头标服务数量的限制

 


 

02.2 IP DATAGRAM

一、IP数据报为网络传输指定了一个精确的数据格式

首部前20BYTES的固定,后一部分长度可变的选项字段、填充。

版本与协议类型域

版本域—IP协议的版本号;协议类型域 —高层协议类型;

长度域

头标长度域—以4字节为一个单位的头标的长度;

总长度域—以字节为单位的数据报的总长度;

服务类型域TOS

指示路由器如何处理该数据报;

由4位的服务类型子域与3的优先级构成;

分片域

标识、标志、片偏移控制IP数据报的分片和组合。

生存时间域

丢弃TTL=0毫秒的报文:当路由器处理一个未经长时等待的数据报时,只要把TTL字段减一,而如果该路由器负载过大,数据报等待时间长,则减去其从到达路由器到得到处理这一段的毫秒数。

协议域

指定数据域的数据是由哪种高层协议创建的

0x01=ICMP,0x02=IGMP,0x06=TCP,0x17=UDP,0x89=OSPF

头校验和域

保证数据头标部的数据完整性 ;

地址域

包括源地址与目的地址;

选项域

用于控制与测试的目的。“选项+填充”两个字段的长度和为32位。

二、SERVICE TYPE(TYPE OF SERVICE)

1、指定应如何处理该数据报,仅给路由选择提供建议,不一定要执行,又分为5个子字段(头3位优先级主机和路由器都忽略)。

2、常见服务的典型设置

02.3 Header Checksum

IP/ICMP/IGMP/TCP/UDP算法相同

在发送端先计算校验和,并把得到的结果与分组一起发出去,同理,接收端检测结果,若正确则接收,反之丢弃。

一、    发送方

→将校验和字段置为0。

→将IP头按16比特分成多个单元,不足16比特的单元补0;

→把数据按16位进行累加,最高位产生的进位循环加到和的最低位

→把累加和按位取反,即可得到所需的校验和。

→发送数据包。

二、接收方(反码运算:溢出循环到低位)

1、将IP头按16比特分成多个单元,不是16比特的倍数补0;

2、对各单元反码加法运算,检查得到的和是否符合是全1(有的实现可能对得到的和会取反码,判断最终值是不是全0);

3、如果是全1则进行下步处理,否则意味着包已变化从而丢弃之。

三、例题

问:假定使用8位的校验和发送下面16位的数据报"1010 1001  0011 1001",求其随数据一起发送的校验和为多少?

答:先将数据分为2段/每段8位,相加后再求反

02.4 Fragment and Reassembly

一、IP数据报分片的基本方法

1、IP数据报在传送时封装在下层数据帧的数据域,硬件不能识别IP格式。每个路由器都要将接收到的帧进行拆包和处理,然后封装成另外一个帧。

2、IP数据报的尺寸大于将发往网络帧的MTU时(MTU长度取决于物理网所采用的协议),路由器将IP数据报分成若干较小分片。

3、数据报一旦被分片,则在到达目的主机之前就一直以单独的数据报存在,在到达主机后,才组合成原始的数据报,各个小的路由器可以独立路由,均衡负载。

二、分片后,每一片都与原始的数据报有相同的头格式

三、IP数据报的分片与标识、标志与片偏移的关系

四、在目的主机对分片进行重新组装,减少了中间路由器的计算量,路由器可以为每个分片独立选路

五、FLAGS(3bit) (More Fragment=1后面还有分片)

1、在Linux中修改网卡的MTU

2、当某个路由器认为一个设为Don't Fragment=1的数据报需要分片时,路由器放弃该数据报并向源主机发送一个出错消息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值