您的位置:首页 > 理论基础 > 计算机网络

netty实现一个网络库要考虑的方面:

2017-03-25 10:46 239 查看

1.netty实现一个网络库要考虑的方面

1.1 tcp层面的问题

编解码(包括tcp粘包问题):消息到byte,byte到数据(即定制协议)

由于tcp的传输是流的方式,再加上网络的不可靠性(丢包重传等),因此对于一个应用来讲,有粘包拆包问题

SOCKET连接(各种连接状态)管理;心跳机制(维持长连接/检活);

网络连接的创建相对成本较高,因此复用的必要性大大提升,就需要管理这些复用的对象

TCP参数设置;

不同的应用,场景有所不同,因此,调整TCP参数可以优化使用

请求/响应处理;

应用层定时器用于决定哪个请求超时,然后搭配一些后续的处理策略(比如延时重试等)

异步请求管理:

支持异步调用,需要缓存请求,当网络IO有可读数据包时,判断是否是响应的;

支持同步调用:在超时内,监听网卡IO是否有可读数据,超时后,响应失败,上层可以重试等;

半双工:控制一端只能

1.2 netty针对上面的问题,提供了一些高级API来解决

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket 网络
相关文章推荐