socket TCP协议发送有关问题,twisted框架中的write()发送函数机制

socket TCP协议发送问题,twisted框架中的write()发送函数机制
如题,在twisted框架中,一个服务器调用发送函数 self.transport.write(),这个wirte的发送机制是什么,
是发送出去的同时存储在消息列队缓存中防止丢失,还是说消息列队满了或者间隔多少时间做发送,客户端成功接收了在清楚缓存,现在搞不懂是调用了就发送出去,存储消息缓存中,还是说可能我反复调用write()会有发不出去的消息!
from twisted.internet.protocol import Protocol
class DragonSlayer(Protocol):
    #得到连接
    def connectionMade(self):
        print 'Got connection from', self.transport.client
    #丢失连接
    def connectionLost(self, reason):
        pass
        print self.transport.client, 'disconnected'
    #收发数据
    def dataReceived(self, data):
        self.transport.write(data) 


现在给前端推送数据,链接后有一个问题,第一次推送,能收到,第二次推送,客户端没反映,第三次推送,客户端收到两个(包括第二次没收到的那个),这个问题是write()没发出去,还是前端在缓存列队中没接收下来!

求大神解释下write()的发送机制

------解决方案--------------------
检查下write函数的返回值!确认下发送的字节数!
按所说的情况应该是客户端接收的问题可能阻塞,也可能是网络不佳引起的!
可以抓包看看,
如果是tcp协议的话,一次消息不需要反复调用write的,如果发送不成功,发送端没有得到确认的ack的话,协议自己有重发机制的!不用担心!