学习随笔

DNS的几种记录

A记录:域名->IP

MX记录:为某个域名指定对应邮件服务器地址

CNAME:为域名指定一个或多个别名

NS记录:为某个域名指定DNS解析服务器

序列化

  • 父类实现序列化,子类可以被序列化
  • 子类实现接口,父类没有实现,父类属性不能被序列化(数据丢失),子类属性依然可以序列化,不会报错
  • 对象属性必须要实现接口,否则报错
  • 反序列化时,对于被修改的属性,可能会丢失数据
  • 反序列化时,如果serialVersionUID被修改,反序列化会失败

同步和异步

描述的是用户线程与内核的交互方式:

  • 同步是指用户线程发起 I/O 请求后需要等待或者轮询内核 I/O 操作完成后才能继续执行;
  • 异步是指用户线程发起 I/O 请求后仍继续执行,当内核 I/O 操作完成后会通知用户线程,或者调用用户线程注册的回调函数。

阻塞和非阻塞

描述的是用户线程调用内核 I/O 操作的方式:

  • 阻塞是指 I/O 操作需要彻底完成后才返回到用户空间;
  • 非阻塞是指 I/O 操作被调用后立即返回给用户一个状态值,无需等到 I/O 操作彻底完成。

一个 I/O 操作其实分成了两个步骤:发起 I/O 请求实际的 I/O 操作


阻塞 I/O 和非阻塞 I/O 的区别在于第一步,发起 I/O 请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞 I/O ,如果不阻塞,那么就是非阻塞 I/O 。
同步 I/O 和异步 I/O 的区别就在于第二个步骤是否阻塞,如果实际的 I/O 读写阻塞请求进程,那么就是同步 I/O 。


所以,按照阻塞和非阻塞

阻塞 :阻塞 I/O ,I/O多路复用
非阻塞: 非阻塞 I/O  信号驱动 I/O(SIGIO) 异步 I/O(POSIX 的 aio_系列函数)


同步: 阻塞 I/O ,I/O多路复用 ,非阻塞 I/O  ,信号驱动 I/O(SIGIO)
异步:异步 I/O(POSIX 的 aio_系列函数)

为什么要存在TIME_WAIT状态:

  • 可靠地实现TCP全双工连接的终止

    TCP协议在关闭连接的四次挥手中,在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。

  • 允许老的报文段在网络中消失

    TCP报文段可能由于路由器异常而“迷路”,在迷途期间,TCP发送端可能因确认超时而重发这个报文,迷途的报文在路由器修复后也会被送到最终目的地,这个原来的迷途报文就称为lost duplicate。在关闭一个TCP连接后,马上又重新建立起一个相同的IP地址和端口之间的TCP连接,后一个连接被称为前一个连接的化身 (incarnation),那么有可能出现这种情况,前一个连接的迷途重复报文在前一个连接终止后出现,从而被误解成从属于新的化身。为了避免这个情 况,TCP不允许处于TIME_WAIT状态的连接启动一个新的化身,因为TIME_WAIT状态持续2MSL,就可以保证当成功建立一个TCP连接的时候,来自连接先前化身的重复报文已经在网络中消逝。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值