网络与IO

1. TCP三次握手

通俗理解:客户端向服务端发送数据,客户端相应,服务端相应,客户端再次相应

backlog:

 cat /proc/sys/net/core/somaxconn   ACCEPT队列  你可以给出backlog 取min

每个人顾好自己,每个人处理好对别人的打扰

 cat /proc/sys/net/ipv4/tcp_max_syn_backlog  DDOS

backlog满了 accept队列满了,新客户端直接Connection refused

2. TCP四次分手

传输数据完成之后,发起的断开连接操作

3. TCP连接状态

4. Connection refused

5. OSI七层参考模型

                应表会传网数物

6. 什么是长连接和短连接?有状态,无状态?

TCP是长连接吗?

tcp只是连接,受应用层协议

连接是不是一个“复用”载体

举一个例子:http 1.0 ,1.1 没有开启keepalive保持,连接只负责一次同步阻塞的请求+响应,短连接!

举一个例子:http 1.0,1.1 开启了keepalive保持,同步复用连接:多次(请求+响应),以上是无状态通信,长连接!

举一个列子:dubbo协议(rpc),打开连接,同步/异步复用连接:多次(请求+响应)(请求请求)(响应响应),当复用连接的时候,需要消息的ID,而且客户端和服务端同时完成这个约束 有状态通信,长连接!

7. IO模型

0:IO是程序对着内核的socket-queue的包装

BIO:读取,一直等queue里有才返回,阻塞模型,每连接对应一个线程

NIO:读取,立刻返回:两种结果,读到,没读到,程序逻辑要自己维护,nio noblock

多路复用器:内核增加select,poll,epoll新增的和数据接收,连接接受实质无关的调用,得到是对应socket的事件(listen socket ,socket),可以有效地去再次accept,R/W

AIO*

8. 同步阻塞,同步非阻塞

BIO,NIO,多路复用器,在IO模型上都是同步的,都是程序自己accpet,R/W

9. 粘包,粘包,拆包

有程序,有内核,程序和内核协调工作

有一些是内核做的事情,三次握手,数据发送出去,接受进来,内核,TCP,分包

到我们自己的程序,即便在一个socket里,也可能收到多个消息在一个字节数组中,我们要自己拆解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值