X Tutup
Skip to content

Commit a03c230

Browse files
committed
计算机网络
1 parent 6648ba5 commit a03c230

File tree

10 files changed

+46
-144
lines changed

10 files changed

+46
-144
lines changed

OVERVIEW.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
| 目录 | 章节 | 版本 | 说明 | 计划 | 记录 |
44
| ---------------------- | ---------------------------------------------------------- | ---- | ------ | ---- | ------------------------ |
55
| **一、数据结构与算法** | | | | | |
6-
| | [数据结构与算法](notes/数据结构与算法.md) | v0.5 | | 8/3 | |
6+
| | [数据结构与算法](notes/数据结构与算法.md) | v0.5 | | 8/4 | |
77
| | | | | | |
88
| **二、Java核心知识** | | | | | |
99
| | [Java基础](notes/JavaArchitecture/01%20Java%20基础.md) | v2.5 | 基础版 | | 7/31 复习 |
@@ -15,20 +15,20 @@
1515
| | [Java Web](notes/JavaArchitecture/07%20Java%20Web.md) | v1.0 | | | |
1616
| | [Spring](notes/JavaWeb/Spring.md) | v1.0 | | | |
1717
| | SpringMVC | | | | |
18-
| | Mybatis | | | 8/3 | |
18+
| | Mybatis | | | 8/6 | |
1919
| | 系统架构 | | | | |
2020
| | | | | | |
2121
| **三、数据库** | | | | | |
2222
| | [MySQL](notes/MySQL.md) | | | | |
23-
| | Redis | | | 8/3 | |
23+
| | Redis | | | | |
2424
| | memcache | | | | |
2525
| | | | | | |
2626
| **四、操作系统** | | | | | |
2727
| | [Linux](notes/Linux.md) | | | | |
2828
| | [操作系统](notes/操作系统.md) | v1.0 | 待完善 | | 7/30初版,内存管理待完善 |
2929
| | | | | | |
3030
| **五、网络部分** | | | | | |
31-
| | [计算机网络](notes/计算机网络.md) | | | 8/3 | |
31+
| | [计算机网络](notes/计算机网络.md) | | | 8/6 | |
3232
| | | | | | |
3333
| **六、高级部分** | | | | | |
3434
| | Dobbo | | | | |

history/pics_tag.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,4 @@
1212

1313

1414
## 2. 段首空格
15-
16-
17-
这里开始是我的正文内容...
15+
  这里开始是我的正文内容

interview/面经资源.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,11 @@ https://www.nowcoder.com/discuss/84557?type=2&order=3&pos=10&page=1
3737

3838

3939
参加完阿里面试:一面+二面+三面+HR四面,后的复盘经验总结! 优知学院
40-
http://youzhixueyuan.com/ali-interview-one-side-two-sides-three-sides-hr-four-sides-my-experience-of-summary.html
40+
http://youzhixueyuan.com/ali-interview-one-side-two-sides-three-sides-hr-four-sides-my-experience-of-summary.html
41+
42+
43+
44+
45+
46+
如何准备校招技术面试
47+
http://brianway.github.io/2017/09/29/how-to-prepare-a-technical-interview/

notes/JavaWeb/Mybatis.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# 前言
2+
3+
4+
5+
6+
7+
参考仓库:
8+
9+
- [springmvc-mybatis-learning](https://github.com/brianway/springmvc-mybatis-learning)
10+
11+
12+

notes/pics/mybatis-framework.png

55.5 KB
Loading

notes/pics/tcp-3.png

77.5 KB
Loading

notes/pics/tcp-4.png

130 KB
Loading

notes/pics/tcp-head.png

27.7 KB
Loading

notes/pics/udp-head2.png

29.3 KB
Loading

notes/计算机网络.md

Lines changed: 21 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,3 @@
1-
<!-- TOC -->
2-
3-
- [第一部分:传输层](#第一部分传输层)
4-
- [1. 说一下OSI七层模型 TCP/IP四层模型 五层协议](#1-说一下osi七层模型--tcpip四层模型--五层协议)
5-
- [(1)五层协议](#1五层协议)
6-
- [(2)ISO七层模型中表示层和会话层功能是什么?](#2iso七层模型中表示层和会话层功能是什么)
7-
- [(3)数据在各层之间的传递过程](#3数据在各层之间的传递过程)
8-
- [(4)TCP/IP四层模型](#4tcpip四层模型)
9-
- [2. TCP报头格式和UDP报头格式](#2-tcp报头格式和udp报头格式)
10-
- [(1)UDP 和 TCP 的特点](#1udp-和-tcp-的特点)
11-
- [(2)UDP 首部格式](#2udp-首部格式)
12-
- [(3)TCP 首部格式](#3tcp-首部格式)
13-
- [3. TCP三次握手?那四次挥手呢?如何保障可靠传输](#3-tcp三次握手那四次挥手呢如何保障可靠传输)
14-
- [(1)三次握手](#1三次握手)
15-
- [(2)三次握手的原因](#2三次握手的原因)
16-
- [(3)四次挥手](#3四次挥手)
17-
- [(4)四次挥手的原因](#4四次挥手的原因)
18-
- [(5)TIME_WAIT](#5time_wait)
19-
- [(6)如何保证可靠传输](#6如何保证可靠传输)
20-
- [(7)为什么TCP连接需要三次握手,两次不可以吗,为什么?【阿里面经OneNote】](#7为什么tcp连接需要三次握手两次不可以吗为什么阿里面经onenote)
21-
- [(8)TCP连接状态?](#8tcp连接状态)
22-
- [4. TCP和UDP区别?如何改进TCP【阿里面经OneNote】](#4-tcp和udp区别如何改进tcp阿里面经onenote)
23-
- [5. TCP滑动窗口?【阿里面经OneNote】](#5-tcp滑动窗口阿里面经onenote)
24-
- [6. TCP流量控制](#6-tcp流量控制)
25-
- [7. TCP的拥塞处理(Congestion Handling)【阿里面经OneNote】](#7-tcp的拥塞处理congestion-handling阿里面经onenote)
26-
- [(1)慢开始与拥塞避免](#1慢开始与拥塞避免)
27-
- [(2)快重传与快恢复](#2快重传与快恢复)
28-
- [8. 如何区分流量控制和拥塞控制?](#8-如何区分流量控制和拥塞控制)
29-
- [9. 解释RTO,RTT和超时重传?](#9-解释rtortt和超时重传)
30-
- [10. 从输入网址到获得页面的网络请求过程【阿里面经OneNote】](#10-从输入网址到获得页面的网络请求过程阿里面经onenote)
31-
- [11. 什么是短连接和长连接](#11-什么是短连接和长连接)
32-
- [](#)
33-
- [第二部分:应用层(HTTP)](#第二部分应用层http)
34-
- [1. URL、URI、URN区别](#1-urluriurn区别)
35-
- [2. HTTP的请求和响应报文](#2-http的请求和响应报文)
36-
- [(1)请求报文](#1请求报文)
37-
- [(2)响应报文](#2响应报文)
38-
- [3. HTTP状态](#3-http状态)
39-
- [(1)1XX 信息](#11xx-信息)
40-
- [(2)2XX 成功](#22xx-成功)
41-
- [(3)3XX 重定向](#33xx-重定向)
42-
- [(4)4XX 客户端错误](#44xx-客户端错误)
43-
- [(5)5XX 服务器错误](#55xx-服务器错误)
44-
- [4. HTTP方法](#4-http方法)
45-
- [(1)GET](#1get)
46-
- [(2)HEAD](#2head)
47-
- [(3)POST](#3post)
48-
- [(4)PUT](#4put)
49-
- [(5)PATCH](#5patch)
50-
- [(6)DELETE](#6delete)
51-
- [(7)OPTIONS](#7options)
52-
- [(8)CONNECT](#8connect)
53-
- [(9)TRACE](#9trace)
54-
- [5. GET和POST的区别?【阿里面经OneNote】](#5-get和post的区别阿里面经onenote)
55-
- [6. 如何理解HTTP协议是无状态的](#6-如何理解http协议是无状态的)
56-
- [7. Cookie](#7-cookie)
57-
- [(1)用途](#1用途)
58-
- [(2)创建过程](#2创建过程)
59-
- [(3)分类](#3分类)
60-
- [(4)JavaScript 获取 Cookie](#4javascript-获取-cookie)
61-
- [(5)Secure 和 HttpOnly](#5secure-和-httponly)
62-
- [(6)作用域](#6作用域)
63-
- [7. Session](#7-session)
64-
- [8. 浏览器禁用 Cookie](#8-浏览器禁用-cookie)
65-
- [9. Cookie 与 Session 选择](#9-cookie-与-session-选择)
66-
- [10. HTTPs安全性](#10-https安全性)
67-
- [(1)对称密钥加密](#1对称密钥加密)
68-
- [(2)非对称密钥加密](#2非对称密钥加密)
69-
- [(3)HTTPs 采用的加密方式](#3https-采用的加密方式)
70-
- [11. SSL/TLS协议的握手过程](#11-ssltls协议的握手过程)
71-
- [(1)client hello](#1client-hello)
72-
- [(2)server hello](#2server-hello)
73-
- [(3)server certificate](#3server-certificate)
74-
- [(4)Server Hello Done](#4server-hello-done)
75-
- [(5)Client Key Exchange](#5client-key-exchange)
76-
- [(6)Change Cipher Spec(Client)](#6change-cipher-specclient)
77-
- [(7)Finished(Client)](#7finishedclient)
78-
- [(8)Change Cipher Spec(Server)](#8change-cipher-specserver)
79-
- [(9)Finished(Server)](#9finishedserver)
80-
- [(10-11)Application Data](#10-11application-data)
81-
- [(12)Alert:warning, close notify](#12alertwarning-close-notify)
82-
- [*)demand client certificate](#demand-client-certificate)
83-
- [*)check server certificate](#check-server-certificate)
84-
- [](#-1)
85-
- [12. HTTP和HTTPS的区别【阿里面经OneNote】](#12-http和https的区别阿里面经onenote)
86-
- [13. HTTP2.0特性](#13-http20特性)
87-
- [(1)二进制分帧](#1二进制分帧)
88-
- [(2)多路复用](#2多路复用)
89-
- [(3)服务器推送](#3服务器推送)
90-
- [(4)头部压缩](#4头部压缩)
91-
- [第三部分:网络层](#第三部分网络层)
92-
- [mac和ip怎么转换](#mac和ip怎么转换)
93-
- [第三部分:网络安全](#第三部分网络安全)
94-
- [1. 如果客户端不断的发送请求连接会怎样?【阿里面经OneNote】](#1-如果客户端不断的发送请求连接会怎样阿里面经onenote)
95-
- [2. 怎么知道连接是恶意的呢?可能是正常连接?【阿里面经OneNote】](#2-怎么知道连接是恶意的呢可能是正常连接阿里面经onenote)
96-
- [3. Web攻击基础](#3-web攻击基础)
97-
- [(1)跨站脚本攻击XSS](#1跨站脚本攻击xss)
98-
- [(2)跨站请求伪造CSRF](#2跨站请求伪造csrf)
99-
- [(3)SQL注入攻击](#3sql注入攻击)
100-
- [(4)拒绝服务攻击Dos](#4拒绝服务攻击dos)
101-
- [(5)泪滴攻击](#5泪滴攻击)
102-
- [附录1:参考面经](#附录1参考面经)
103-
- [【重口味 ぅヾ】2018秋招面经-后端开发](#重口味-ぅヾ2018秋招面经-后端开发)
104-
- [附录2:参考资料](#附录2参考资料)
105-
106-
<!-- /TOC -->
107-
1081
# 第一部分:传输层
1092

1103
## 1. 说一下OSI七层模型 TCP/IP四层模型 五层协议
@@ -119,7 +12,7 @@
11912
- 传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;
12013
- 用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。
12114
- TCP 主要提供完整性服务,UDP 主要提供及时性服务。
122-
- **网络层** :为主机间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。
15+
- **网络层** :为主机间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。(负责选择最佳路径 规划IP地址)
12316
- 路由器查看数据包目标IP地址,根据路由表为数据包选择路径。路由表中的类目可以人工添加(静态路由)也可以动态生成(动态路由)。
12417
- **数据链路层** :不同的网络类型,发送数据的机制不同,数据链路层就是将数据包封装成能够在不同的网络传输的帧。能够进行差错检验,但不纠错,监测处错误丢掉该帧。
12518
- 帧的开始和结束,透明传输,差错校验
@@ -141,22 +34,23 @@
14134

14235
### (3)数据在各层之间的传递过程
14336

144-
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
37+
  在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
14538

146-
路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。
39+
1. 路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。
40+
2. 交换机只有下面两层协议
14741

14842
<div align="center"> <img src="pics/transfer.jpg" width="700"/> </div><br>
14943

15044

15145

152-
## (4)TCP/IP四层模型
46+
### (4)TCP/IP四层模型
15347

15448
它只有四层,相当于五层协议中**数据链路层和物理层合并为网络接口层**
15549

15650
现在的 TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。
15751

15852

159-
<div align="center"> <img src="pics/tcp_ip_4.png" width="500"/> </div><br>
53+
<div align="center"> <img src="pics/tcp_ip_4.png" width="450"/> </div><br>
16054

16155

16256

@@ -183,24 +77,24 @@ TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中
18377

18478
### (1)UDP 和 TCP 的特点
18579

186-
- 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
187-
- 传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
80+
- **用户数据报协议 UDP**(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。例如:视频传输、实时通信
81+
- **传输控制协议 TCP**(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
18882

18983
### (2)UDP 首部格式
19084

191-
<div align="center"> <img src="pics/udp_head.jpg" width="600"/> </div><br>
85+
<div align="center"> <img src="pics/udp-head2.png" width="600"/> </div><br>
19286

19387
首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
19488

19589

19690

19791
### (3)TCP 首部格式
19892

199-
<div align="center"> <img src="pics/tcp_head.png" width="600"/> </div><br>
93+
<div align="center"> <img src="pics/tcp-head.png" width="600"/> </div><br>
20094

20195

20296

203-
- **序号** :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。*[301,400]为序号301的数据长度,下一个则为401*
97+
- **序号 seq** :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。[301,400]为序号301的数据长度,下一个则为401
20498
- **确认号 ack** :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
20599
- **数据偏移** :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
206100
- **确认 ACK** :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
@@ -210,34 +104,27 @@ TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中
210104

211105

212106

213-
## 3. TCP三次握手?那四次挥手呢?如何保障可靠传输
214-
107+
参考资料:
215108

216-
前置知识
109+
- [计算机网络-运输层-笔记 | SamanthaChen's Blog](https://samanthachen.github.io/2016/08/15/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C3/)
217110

218-
```
219-
三次握手:three times handshake;three-way handshake
220-
221-
SYN(Synchronize,译:同步)是该协议中的一个标志位。如果该位被置为1,则表示这个报文是一个请求建立连接的报文。
222-
ACK(Acknowledgement,译:确认)也是该协议的一个标志位。如果该位被置为1,则表示这个报文是一个用于确认的报文。
223-
seq(sequence number,序列号)
224-
ack(Acknowledgement Number,确认编号)
225-
```
226111

227112

113+
## 3. TCP三次握手?那四次挥手呢?如何保障可靠传输
228114

229115
### (1)三次握手
230116

231-
<div align="center"> <img src="pics/tcp3.png" width="500"/> </div><br>
232-
117+
<div align="center"> <img src="pics/tcp-3.png" width=""/> </div><br>
233118

234-
假设 A 为客户端,B 为服务器端。
119+
**假设 A 为客户端,B 为服务器端。**
235120

236121
- 首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
237122
- A 向 B 发送连接请求报文段,SYN=1,ACK=0,选择一个初始的序号 x。
238123
- B 收到连接请求报文段,如果同意建立连接,则向 A 发送连接确认报文段,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
239124
- A 收到 B 的连接确认报文段后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
125+
- A 的 TCP 通知上层应用进程,连接已经建立。
240126
- B 收到 A 的确认后,连接建立。
127+
- B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。
241128

242129

243130

@@ -251,9 +138,7 @@ ack(Acknowledgement Number,确认编号)
251138

252139
### (3)四次挥手
253140

254-
<div align="center"> <img src="pics/tcp4.jpg" width="600"/> </div><br>
255-
256-
141+
<div align="center"> <img src="pics/tcp-4.png" width=""/> </div><br>
257142

258143

259144

@@ -310,7 +195,7 @@ ack(Acknowledgement Number,确认编号)
310195

311196

312197

313-
## (8)TCP连接状态?
198+
### (8)TCP连接状态?
314199

315200
- CLOSED:初始状态。
316201
- LISTEN:服务器处于监听状态。
@@ -1104,7 +989,7 @@ HTTP 1.1请求的大小变得越来越大,有时甚至会大于TCP窗口的初
1104989

1105990
# 第三部分:网络层
1106991

1107-
## mac和ip怎么转换
992+
## 1. mac和ip怎么转换
1108993

1109994
**ARP协议:**
1110995

0 commit comments

Comments
 (0)
X Tutup