Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1347990
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: LINUX

2015-05-14 08:33:07

        拥塞窗口与发送窗口的关系?
              发送窗口等于拥塞窗口,也有可能也小于拥塞窗口,实际发送的数据大小还要取决于
              接收窗口的大小,拥塞窗口实际上限制发送方的
        拥塞窗口的字节数是按照mss的指数级增长的,但是每次收到包又要给ack,才能发后续的字节,
        但是mtu一般只有1500字节,但mss一般都有64k这么大,是不是拥塞窗口基本没用?
               可能一次发送的数据并不只是一个mtu这么大,这个只是链路层的东西,不属于
                传输层的概念,可以理解为传输层一次最多不可能只发mtu这么大,而且可以是
                多个mtu大小包发送给一个ack
         选择性重传具体如何工作?
                sack可以在tcp头部中增加多个非连续的字节块的边界描述
          所谓的tcp控制块是不是就是tcp_prot对象,它的发送队列上面的数据何时谁来取走?
                  用户空间<-----> socket层 <------>协议栈 这是交互层次,在调用了send后
                  数据拷贝到内核地址空间,挂到sock的缓冲区,也就是特定协议sock的缓冲区,
                  不是socket的缓冲区
                  然后才开始判定是否应该发送到网络层,此时就是从socket的send到
                  特定协议的sock对象的send的转换,
                  如果是tcp,就要使用之前提到的一些机制来确定是否应该发送,确认发送后,执行
                  ip_queue_xmit发送,ip层的数据包的发送再考虑分包的问题,它就负责将数据发送
                  出去        
                  
                  数据的发送的实际动作的触发时机可能包括
                  (1)用户层的send调用(主动触发)
                  (2)tcp内部的重传的定时器(被动触发)
                  (3)收到ack或者事件后的状态机驱动(被动触发)
           数据包从传输层到ip层,到链路层的传递过程中,存在拷贝?
           数据包的发送也类似接收要使用软中断机制?
阅读(711) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~