prepare for 快手

计算机网络

TCP/IP五层结构

应用层:
传输层:四层交换机,四层路由器
网络层:路由器,三层交换机
数据链路层:以太网交换机,网卡
物理层:中继器,集线器,双绞线

链路层差错检测

奇偶校验,检查和,CRC

网络层路由算法,简述RIP,OSPF

全局式路由选择算法:所有路由器掌握完整的网络拓扑和链路费用信息,例如链路状态路由算法(LS算法)
分散式路由选择算法:路由器只掌握物理相连的邻居和链路费用,例如距离向量路由算法(DV算法)

静态路由算法:手工配置,路由更新慢,优先级比较高
动态路由算法:路由更新快,定期更新,及时响应链路费用或者网络拓扑变化

负载敏感算法:链路费用反映出拥塞水平
负载迟钝算法: 如今的路由选择算法都是负载迟钝的,链路费用不能反映当前拥塞水平

RIP算法

对每一个相邻路由器发来的报文,执行如下步骤:
(1)对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:下一跳地址为X,距离字段+1。每个项目三个关键数据:目的网络N,距离d,下一跳X
(2)对修改后的RIP报文中的每一个项目,进行如下步骤:

  • 原来的路由表中没有目的网络N,则把项目添加到表中
  • 若下一跳地址是X,则把收到的项目替换原来路由表中的项目
  • 若收到的项目中距离d<路由表中的距离,则进行更新
    (3)如果三分钟还咩有收到相邻路由器的更新路由表,则把相邻路由器标记为不可到达的路由器,即把距离设置为16

OSPF算法

Dijkstra

ARP协议过程,如何通过ip地址获取mac地址

(1)本地主机在局域网中广播ARP请求,请求中包含目的主机IP地址。意思是:“如果你是这个ip地址的拥有者,请回答你的硬件地址”
(2)目的主机解析报文,发送ARP应答包,里面包含IP地址对应的mac地址
(3)本地主机收到ARP应答。之后的数据包就可以传送了。

点对点链路不适用ARP协议

ping命令使用的协议。简述其过程

ICMP出现原因

包被丢弃的时候将必要的信息传递给发送方,为了辅助IP协议,交换各种各样的控制信息而被制造出来的。

ICMP用途

差错通知:传送错误原因
信息查询:目标IP的机器是否存在,调查自己网络的子网掩码,获取对方机器的时间信息等等吧

ICMP实现

(1)MTU探索
(2)改变路由
(3)远点抑制
(4)ping命令
(5) traceroute命令
(6)端口扫描

为什么要四次挥手

HTTP

域名输入浏览器之后的过程

hosts文件
向DNS服务器查询ip地址
dns服务器返回ip地址
浏览器得到ip地址之后,发送http服务请求
服务器接收到http请求,返回网页信息
浏览器将html转化为用户可以查看的网页的形式

根据域名查ip

去ICANN查询

Session和cookie的区别

cookie:存放在客户端,
作用是与服务器进行交互,作为http规范的一部分存在
使用场景:判断用户是否登录过网站,记录购物车或者用户的使用偏好
cookie是网站为了标识用户身份而存储在用户本地终端上面的人数据。cookie始终在同源的http请求中携带
sesssion:存于服务端,
使用场景:登录验证

http状态码

1** :信息,服务器收到请求,需要请求者继续执行操作
2**: 成功,操作被成功接受并被处理
3**:重定向,需要进一步操作以完成请求
4** :client错误,请求包含语法错误或者无法完成请求
5**:服务端错误,服务器在处理请求的时候发生了错误

403 forbidden 服务器理解请求,但是拒绝执行此请求
302 found 临时移动 ,资源临时移动,客户端使用原有的url
500 Internal server error:服务器内部错误,无法完成请求

数据库

四种隔离级别

读未提交:可以读到未提交的内容
读提交:读已提交内容,Oracle和sql server默认的隔离级别
可重复读:事务开始就不允许修改了。避免不了“幻读”,因为幻读是由于插入或者删除操作而产生的
串行化:效率最差

数据结构

红黑树和二叉平衡树区别

AVL树是高度平衡的,频繁插入和删除,导致效率下降
红黑树不是高度平衡的,是一种折中,插入最多两次旋转,删除最多三次旋转。

Java集合类

1. ConcurrentHashMap

是由Segment数组结构和HashEntry数组结构组成。

2. hashmap初始容量为什么是16

length是2的幂,保证了散列均匀
保证了length-1的最后一位为1,在进行与操作之后只有两种结果。保证了hash碰撞的几率比较小,也尽可能保证散列均匀。

syncronize锁类对象和锁方法区别

set和list的区别

List:1.可以允许重复的对象。
   2.可以插入多个null元素。
3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。
4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。

Set:1.不允许重复对象
   2. 无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序。
3. 只允许一个 null 元素
4.Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器

发布了306 篇原创文章 · 获赞 46 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/kaikai_sk/article/details/100574485