笔记整理

计算机网络

注意

  1. 在局域网模型中,数据链路层分为( 逻辑链路控制子层和媒体访问控制子层 )。
  2. 建立计算机网络的最主要的目的是实现资源共享

局域网

  1. 虚拟局域网(virtual LAN=VLAN)建立在交换技术的基础上。如果将局域网中的节点按工作性质和需要划分生成若干个“逻辑工作组”,则一个逻辑工作组就是一组网络。
  2. 传统的局域网中的工作组通常在同一个网段上,多个工作组之间通过实现互联的网桥或者路由器来交换数据。当一个逻辑工作组的结点要转移到另一个逻辑工作组时,就需要将结点计算机从一个网段撤出,并将其连接到另外一个网段上,这时甚至需要重新进行布线。因此,逻辑工作组的组成受结点所在网段的物理位置限制
  3. 虚拟局域网是建立在以太网交换机的基础之上的,它以软件的方式来实现逻辑工作组的划分与管理,逻辑工作组中的结点组成不受物理位置的限制。同一个逻辑工作组的成员不一定连接在同一个网段上,他们可以连接在同一个以太网交换机上,也可以连接在不同的以太网交换机上,只要这些交换机之间实现互联就可以。当一个结点从一个逻辑工作组转移到另外一个逻辑工作组的话,只要用软件的方式实现逻辑工作组的划分与管理,这样就不需要改变它在局域网网络中的物理位置。同一个逻辑工作组的结点可以分布在不同的物理桥段上,但它们之间的通信就像是在同一个网段之上。因此,VLAN是通过软件的方法,逻辑地而不是物理地将结点划分在一个个网段。IEEE于1999年公布了关于VLAN的802.1Q标准

Tcp和UDP

  1. UDP协议和TCP协议都是传输层协议。
  2. TCP面向连接,且为字节流,提供超时重发,丢弃重复数据,检验数据,流量控制等功能
  3. UDP是一个简单的面向数据报的运输层协,不可靠,面向报文,没有超时重发等机制,所以传输速度很快。
  4. 消息边界保护

IP地址

  1. IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同
  2. A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0
    1. 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。范围(10.0.0.0—10.255.255.255)
    2. A类地址网络号范围:1.0.0.0—126.0.0.0
    3. 127.X.X.X是保留地址,用做循环测试用的
  3. B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10.
    1. B类地址网络号范围:128.0.0.0—191.255.0.0。
    2. 172.16.0.0—172.31.255.255是私有地址
    3. 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
    4. 191.255.255.255是广播地址,不能分配。
  4. C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
    1. C类地址网络号范围:192.0.0.0—223.255.255.0。
    2. 192.168.X.X是私有地址。(192.168.0.0—192.168.255.255)
  5. D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。
    1. 类地址范围:224.0.0.0—239.255.255.255
  6. E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110。
    1. E类地址范围:240.0.0.0—255.255.255.254
  7. 为了减少浪费,使用子网,如一个有500台主机的网络,无法使用C类地址。但如果使用一个B类地址,6万多个主机地址只有500个被使用,造成IP地址的大量浪费。

命令

  1. tracert:
    1. tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器… tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地
    2. tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。
  2. ping
    1. 利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

ARP 协议

  1. 介绍
    1. ARP被称为地址解析协议,在局域网内通过IP地址查找目标主机的MAC地址。ARP协议是实现IP地址到MAC地址的转化。
  2. 过程:
    1. 主机向自己所处的网络广播一个ARP请求(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),该请求包含的目标机器的网络地址,这个请求会被当前局域网内的所有主机都会收到。
    2. 在数据链路层都会收到然后处理交给上层,目的主机收到广播的ARP请求,发现与IP地址与本机相符合就发一个ARP应答给源主机,将自己的MAC地址写到应答包中。而其他主机接收后发现与自己的IP不符合就会直接丢弃。
  3. 当对应的ip不在本局域网中,并不会在本地查找对应的mac地址,请求会被转发到对应ip的网络中

BGP协议

  1. 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议
  2. 路由器对使用179端口的半永久TCP连接来交换选路信息

网络url请求

  1. 查找域名对应的IP地址
    这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISP DNS缓存,根域名服务器。
  2. 向IP对应的服务器发送HTTP请求
  3. 服务器响应请求,发回网页内容
  4. 浏览器解析网页内容
  5. 由于网页可能有重定向,或者嵌入了图片,AJAX,其它子网页等等,这4个步骤可能反复进行多次才能将最终页面展示给用户

hibernate框架

基础

  1. Hibernate类与类之间关系为关联和聚合
  2. 优化hibernate:
    1、使用一对多的双向关联,尽量从多的一端维护。
    2、不要使用一对一,尽量使用多对一。
    3、配置对象缓存,不要使用集合缓存。
    4、表字段要少,表关联不要怕多,有二级缓存撑腰
  3. 缺点
    1. 使用数据库特性的语句,将很难调优
    2. 对大批量数据更新存在问题

Web相关

注意点

  1. 正常来说一个session的存活时间是30分钟,所以关闭浏览器窗口不会关闭session,只是新开窗口时会建立新的session;存在于浏览器上的唯一标识符JSESSIONID(sessionid)消失了,但是服务器中存放的sessionid并没有立马销毁。

Spring相关

hiberbate集成

  1. spring为hibernate的DAO提供工具类:HibernateDaoSupport。该类主要提供如下两个方法,方便DAO的实现

  2. public final HibernateTemplate getHibernateTemplate()
       
    public final void setSessionFactory(SessionFactory sessionFactory)
    
  3. setSessionFactory方法用来接收Spring的ApplicationContext的依赖注入,可接收配置在Spring的SessionFactory实例,getHibernateTemplate方法则用来根据刚才的SessionFactory产生Session,最后生成HibernateTemplate来完成数据库访问。

操作系统

注意点

  1. 数据存储和数据流都是数据,仅仅是所处的状态不同
  2. 已经获得除CPU以外的所有所需资源的进程处于_就绪_____状态。
  3. 中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
  4. 剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的 处理机 ,将之分配给其它进程。
  5. 数据的存储结构是指数据的逻辑结构在计算机中的表示
  6. 抖动是页面置换算法的不合理导致了页面频繁地被置换,造成系统大量的时间都花费在了页面置换上

进程

  1. 进程是指令的描述,而非指令的集合
  2. 进程是操作系统进行资源(包括cpu、内存、磁盘IO等)分配的最小单位。
  3. 线程是cpu调度和分配的基本单位。
  4. 进程获得处理机而运行是通过调度而得到的
  5. 若进程A和进程B在临界段上互斥,那么当进程A处于该临界段时,可以被B中断,但b无法进入临界区
  6. 程序是一组有序的静态指令,进程是一次程序的执行过程;程序可以长期保存,进程是暂时的;程序没有状态,而进程是有状态的
  7. 并发
    1. 多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换。
  8. 并行
    1. 每个线程分配给独立的核心,线程同时运行。
  9. 进程之间通信的途径
    1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
    2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
    3. 消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
    4. 共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
    5. 信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
    6. 套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同进程间的进程通信。
    7. 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
  10. 进程间可以共享的数据有以下:
    1. 进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、
    2. 进程打开的文件描述符、信号的处理器、
    3. 进程的当前目录和进程用户ID与进程组ID。

虚拟内存,分页等

设计模式

  1. 建造者模式
    1. java 进行链式调用时,其返回类型需要为原对象,其后面的方法的对象为上一方法的返回值

软件项目管理

  1. 对软件系统进行验收测试(确认测试)的任务是验证软件( 是否符合用户提出的需求 )。
  2. 可重用性是面向对象方法的一个重要特征。

J2EE

  1. J2EE应用由以下两种资源构成:   一个或者多个J2EE组件   一个J2EE应用部署描述器(Deployment Descriptor)

你可能感兴趣的:(日常工具使用(非代码))