Chinaunix首页 | 论坛 | 博客
  • 博客访问: 824385
  • 博文数量: 92
  • 博客积分: 1498
  • 博客等级: 上尉
  • 技术积分: 993
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-18 18:31
文章分类

全部博文(92)

文章存档

2013年(2)

2012年(3)

2011年(3)

2010年(61)

2009年(23)

分类: LINUX

2012-11-28 23:24:32

1.IP(IPV4)为什么要分片?如何控制分片?分片在何处?为什么?分片在何处重组?分片的数据包时越大越好还是越小越好?为什么?
分片原因:物理网络都存在最大的传输单元限制,也就是MTU限制,IP报文较大时,无法将一个IP数据包封装在一个物理帧中。因此需要将IP数据拆分成多个报文,多次发送出去。以太网的MTU一般为1500个字节(去掉物理网络的帧头帧尾,实际传输数据无法达到1500)。IP数据最大可达64k(IP协议中长度字段为16位,因此最大报文可达2^16=64k)
IP分片控制:IP首部中有三个字段参与分片控制。三个字段分别是标识(Identificatoin,16bits),标志(Flags,3bits) 与 片偏移量(Fragment offset,13bits,以字节为单位)。Identificatoin唯一的标识了数据报,Identificatoin在发送方全局唯一。通过这三个字段可以将属于同一报文的不同分片重组成一个完成的报文,详细不解释了。
IP分片一般在路由器处进行:当经过一个大MTU的物理网络到达一个小MTU的物理网络的时候,路由器会将数据报拆分使其能够通过小MTU的物理网络传输。没有在发送端分片的原因是因为发送源无法知道路径上最小的MTU到底是多大。
IP在目的站主机进行重组:因为它允许每个分片能够独立选择路由,不需要中间路由器存储和重组分片。但它也有缺点:丢失一个数据片意味着丢失整个数据报;小的数据报文通过较大MTU的物理网络时效率较低。
IP分片越大越好:分片越大,则分片数量越少,那么选路负担会减轻;分片数量少,那么出错的几率也低;另外,分片数量越少,额外的报文首部数据越少,信道利用率更高。


IPV6对分片有一定改变。IP分片不再在中间路由器进行。分片是端对端的,在发送源分片,目的站重组。负责分段的源站可以选择1280字节的最小MTU,也可以执行路径MTU发现(Path MTU Discovery)技术,获取从源站到目的站最小的MTU。采用端到端分片的目的是为减少路由器的负担,这样路由器能够处理能够的报文。端到端分片也造成一个后果,就是数据报文长度超过物理网络的MTU后会被丢弃(因为路由可能会被改变),然后向源站返回一个ICMP报文。


2.tcp拥塞控制
congeston collapse:当网络发生拥塞后,数据报填满路由器缓存,路由器满负荷路由,对机器则表现为网络时延加大,网络时延加大后,那么造成数据报超时的几率增大,数据报超时后,主机通常的反应就是重传,报文重传不会减轻拥塞,只会加重拥塞。

发送源对拥塞响应:TCP标准推荐处理技术:慢启动,加速递减
加速递减策略:一旦发生拥塞(路由器丢弃报文时会发送ICMP源站抑制报文),那么立即将拥塞窗口减半  (拥塞窗口将影响滑动窗口协议的窗口大小);对于保留在发送窗口中的报文段,将重传定时器的时限加倍(这样能够容忍更大的网络时延,使得因报文超时而重传的可能性降低)
慢启动恢复:在启动新连接的传输或者拥塞之后增加通讯量时,仅仅以一个报文段作为拥塞窗口的初始值,而每当收到一个确认后,将拥塞窗口增加1。
慢启动是为了防止通讯量在0和拥塞间剧烈震荡。想象一下,如果窗口直接全部恢复,那么将会瞬时发送大量报文,将很可能马上导致拥塞,拥塞后通讯量马上又会暴减;通讯量减少后马上又恢复,马上又将导致拥塞。

拥塞避免:当拥塞窗口到达拥塞时窗口大小的一半时,TCP将进入拥塞避免状态,降低窗口增大的速度。此时窗口中所有的报文段都被确认之后,窗口大小也只能增加1。
拥塞避免是为了避免窗口增加过快以至于导致更多的拥塞。

路由器对拥塞响应:丢弃报文
丢弃策略有尾部丢弃与随机早期丢弃RED。尾部丢弃是当路由器缓存满了以后,后面来的报文直接全部丢弃。

随机早期丢弃则是在路由器缓存快要满时随机性的丢弃报文,使部分发送主机提前进行拥塞控制状态,从而避免全局同步。
RED的详细策略:数据报到达时,若缓存已满,则丢弃报文,若缓存未满,但大小已经超过了上限阈值,则按概率p丢弃该报文。

 

三层交换:二层交换技术+三层转发技术


UDP checksum
UDP optional
TCP mandatory
UDP checksum covers the UDP pseudo header, UDP header and the UDP data
与ip不同, ip只计算首部校验和
purpose: let UDP double-check that the data has arrived at the correct destination.
检测到checksum error: silently discarded, no error message is generated.
只有发送端和接收端才计算校验和,中间节点不计算
伪首部包括源ip,目的ip,协议,udp长度以及0填充

阅读(2602) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~