zoukankan      html  css  js  c++  java
  • 每日一记--java基础01

    java内容比较宽广,相对来说涉及的知识点比较多,为了满足一定的面试需求,所以写的就比较松散。

    1、死锁必备的四要素

    ①互斥条件:即在某一段时间内资源只能由一个进程占有,当这段时间内有其他进程对该资源进行请求时只能等待。

    ②不可剥夺条件:进程占有的资源不能够被其他进程强行夺走,只能自主释放。

    ③请求和保持条件:进程已经保持至少一个资源,但又提出新的资源请求,而该资源被其他进程占有,此时请求进程阻塞,但对自己获得的资源保持不放。

    ④循环等待条件:存在一种进程资源的循环等待链,链中每一个进程所持有的进程被链中下一个进程所请求。

    2、有关TCP、UDP

    TCP首部:源端口、目的端口、序号、确认号、数据偏移、保留、相应的标志位、窗口、检验和、紧急指针。

    UDP首部:伪首部(源IP地址,目的IP地址,0,,1,UDP长度)、UDP首部(源端口、目的端口、长度、检验和)。

    TCP和UDP的区别?

    ①TCP面向连接,UDP面向非连接。

    ②TCP使用字节流进行数据发送,UDP使用报文段进行数据发送。

    ③TCP是点对点的连接,UDP可以一对一、一对多、多对一、多对多进行连接。

    ④TCP首部开销为20个字节,UDP首部开销为8个字节。

    ⑤TCP是全双工可靠通道通信,UDP是不可靠信道。

    3、TCP三次握手

    ①客户端向服务器端发送请求,过程为发送同步位SYN=1,以及序号为seq=x(序号为该报文首字节+1)。

    ②服务器收到客户端的请求,给予回应,该过程为发送同步位SYN=1,确认为ACK=1,ack=x+1,seq=y。

    ③客户端需要再次的确认连接,过程为发送确认为ACK=1,ack=y+1,seq=x+1.

    这样TCP连接就建立了,但是为什么不能二次握手就建立连接了呢?

    原因是:在客户端向服务器第一次发送连接请求的时候,若存在网络延迟的情况,使得第一次的请求没有到服务器,这时客户端又继续发送第二次请求并建立连接且完成相应的任务之后断开连接了,这时候第一次发送的连接请求才发送到服务器上,这时服务器又会发送确认请求连接信号,由于客户端已经完成了请求任务便会不予理睬,而服务器会一直等待着连接,造成服务器的资源浪费。

    4、TCP四次挥手

    ①首先由客户端发送断开连接信号,过程为发送FIN=1,seq=u(该序号为该报文最后一个字节+1)。

    ②服务器收到该报文,会先发送确认位ACK=1,ack=u+1,seq=v(该序号为服务器最后发送数据最后一个字节码+1)。

    ③接着服务器还需要发送FIN=1,ack=u+1,seq=w(可能又发送数据的最后一个字节码+1)。

    ④客户端收到服务器的断开连接信号,需要给予回应,发送确认号ACK=1,ack=w+1,seq=u+1。

  • 相关阅读:
    不用找了,比较全的signalR例子已经为你准备好了(2)---JqGrid 服务端刷新方式-注释详细-DEMO源码下载
    不用找了,比较全的signalR例子已经为你准备好了.
    26之前,26之后
    SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作
    SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能
    SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环
    SSIS从理论到实战,再到应用(4)----流程控制之For循环
    SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
    SSIS从理论到实战,再到应用(2)----SSIS包的控制流
    Android学习笔记(十二)BroadcastReceiver的有序广播和优先级
  • 原文地址:https://www.cnblogs.com/ZNwithLC/p/9494089.html
Copyright © 2011-2022 走看看