Skip to content

Commit

Permalink
add more questions
Browse files Browse the repository at this point in the history
  • Loading branch information
wolverinn committed Dec 29, 2019
1 parent 6798939 commit 40c4e7d
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 4 deletions.
39 changes: 38 additions & 1 deletion Computer Network.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
* [TCP的拥塞控制是怎么实现的?](#TCP的拥塞控制是怎么实现的)
* [TCP与UDP的区别](#TCP与UDP的区别)
* [TCP如何保证传输的可靠性](#TCP如何保证传输的可靠性)
* [什么是TCP粘包?](#什么是TCP粘包)
* 应用层:HTTP和HTTPS
* [HTTP和HTTPS有什么区别?](#HTTP和HTTPS有什么区别)
* [GET与POST的区别?](#GET与POST的区别)
Expand Down Expand Up @@ -180,9 +181,19 @@ UDP接收方收到报文后,不需要给出任何确认
<details>
<summary>展开</summary>

对某些实时性要求比较高的情况,选择UDP,比如游戏,媒体通信,直播;其它大部分情况下,HTTP都是用TCP

[什么时候选TCP、UDP?](https://blog.csdn.net/yjxsdzx/article/details/71937886)
</details>

##### HTTP可以使用UDP吗?

<details>
<summary>展开</summary>


</details>

##### 面向连接和无连接的区别

<details>
Expand Down Expand Up @@ -229,6 +240,22 @@ UDP接收方收到报文后,不需要给出任何确认
总结:非对称加密算法用于在握手过程中加密生成的密码;对称加密算法用于对真正传输的数据进行加密;HASH算法用于验证数据的完整性。
</details>

##### 输入 www.baidu.com,怎么变成 https://www.baidu.com 的,怎么确定用HTTP还是HTTPS?

<details>
<summary>展开</summary>


</details>

##### HTTPS连接的时候,怎么确定收到的包是服务器发来的(中间人攻击)?

<details>
<summary>展开</summary>


</details>

##### 什么是对称加密、非对称加密?区别是什么?
<details>
<summary>展开</summary>
Expand Down Expand Up @@ -293,6 +320,13 @@ Cookie保存在客户端本地,客户端请求服务器时会将Cookie一起
- 传输层:TCP/UDP
- 网络层:IP、ARP、NAT、RIP...

<details>
<summary>路由器、交换机位于哪一层?</summary>

- 路由器网络层,根据IP地址进行寻址;
- 交换机数据链路层,根据MAC地址进行寻址
</details>

### 什么是RIP (Routing Information Protocol, 距离矢量路由协议)? 算法是什么?
每个路由器维护一张表,记录该路由器到其它网络的”跳数“,路由器到与其直接连接的网络的跳数是1,每多经过一个路由器跳数就加1;更新该表时和相邻路由器交换路由信息;路由器允许一个路径最多包含15个路由器,如果跳数为16,则不可达。交付数据报时优先选取距离最短的路径。

Expand Down Expand Up @@ -326,4 +360,7 @@ Cookie保存在客户端本地,客户端请求服务器时会将Cookie一起
用于解决内网中的主机要和因特网上的主机通信。由NAT路由器将主机的本地IP地址转换为全球IP地址,分为静态转换(转换得到的全球IP地址固定不变)和动态NAT转换。

### 参考
- [面试/笔试第一弹 —— 计算机网络面试问题集锦](https://blog.csdn.net/justloveyou_/article/details/78303617)
- [面试/笔试第一弹 —— 计算机网络面试问题集锦](https://blog.csdn.net/justloveyou_/article/details/78303617)

### 待完成
- [ ] 发送窗口的大小,如何最大利用带宽,假设延迟100ms,发送端10Mb/s,接收端100Mb/s
18 changes: 15 additions & 3 deletions Operating Systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* [什么是僵尸进程?](#什么是僵尸进程)
* [线程同步有哪些方式?](#线程同步有哪些方式)
* [什么是IO多路复用?怎么实现?](#什么是IO多路复用怎么实现)
* [什么是用户态和内核态?](#什么是用户态和内核态)
* 死锁
* [什么是死锁?](#什么是死锁)
* [死锁产生的必要条件?](#死锁产生的必要条件)
Expand Down Expand Up @@ -329,16 +330,27 @@ IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处
- 异步IO(Asynchronous IO):用户线程发出IO请求之后,继续执行,由内核进行数据的读取并放在用户指定的缓冲区内,在IO完成之后通知用户线程直接使用。
</details>

##### 什么是用户态和内核态?
<details>
<summary>展开</summary>
### 什么是用户态和内核态?

为了限制不同程序的访问能力,防止一些程序访问其它程序的内存数据,CPU划分了用户态和内核态两个权限等级。

- 用户态只能受限地访问内存,且不允许访问外围设备,没有占用CPU的能力,CPU资源可以被其它程序获取;
- 内核态可以访问内存所有数据以及外围设备,也可以进行程序的切换。

所有用户程序都运行在用户态,但有时需要进行一些内核态的操作,比如从硬盘或者键盘读数据,这时就需要进行系统调用,使用**陷阱指令**,CPU切换到内核态,执行相应的服务,再切换为用户态并返回系统调用的结果。

##### 为什么要分用户态和内核态?
<details>
<summary>展开</summary>


</details>

##### 如何从用户态切换到内核态?
<details>
<summary>展开</summary>


</details>

### 什么是死锁?
Expand Down

0 comments on commit 40c4e7d

Please sign in to comment.