1. 计算机网络体系结构
体系结构:计算机网络各层次及其协议的集合。
OSI七层模型:
1.应用层:为应用程序提供网络服务。
2.表示层:用户处理在两个通信系统中交换信息的表示方式。
3.会话层:负责维护两个节点之间的传输链接,以确保点到点传输不中断。
4.传输层:向用户提供端到端服务。
5.网络层:通过路由选择算法为分组通过通信子网选择最适当的路径。
6.链路层:在物理层提供的服务基础上,数据链路层在通信的实体间建立数据链路连接。
7.物理层:利用传输介质为通信的网络结点之间建立。管理和释放物理连接。
TCP/IP模型:
特点:
*独立于计算机硬件和操作系统。
*独立于特点的网络硬件,统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址。
1.应用层:相当于OSI参考模型应用层
2.传输层:在互联网中源主机与目的主机的对等实体间建立用于会话的端到端连接。
3.网络层:相当于OSI参考模型网络层无连接网络服务,处理互连的路由选择、流控和拥塞问题。
4.网络接口层:参考模型的最底层。负责通过网络发送和接收IP数据报。
五层模型(以下各层解释同OSI七层模型):
1.应用层
2.传输层
3.网络层
4.链路层
5.物理层
2. TCP通信过程,3次握手,4次挥手
动画讲解
TCP的三次握手与四次挥手理解及面试题
TCP三次握手、四次挥手过程及原理
三次握手:
四次挥手:
3.http状态码
状态码 | 信息 |
---|---|
1xx | 信息性状态码 |
2xx | 成功状态码 |
3xx | 重定向状态码 |
4xx | 客户端错误状态码 |
5xx | 服务端错误状态码 |
*为常见:
100:Continue
*200:OK
*204:No Content
*206:Partial Content
*301:Moved Permanently
302:Found:临时性重定向
303:See Other:和302有着相同的功能,但是303明确要求客户端应该采用GET方法获取资源。
304:Not Modified:如果请求报文首部包含一些条件,例如:If-Modified-Since,如果不满足条件,则服务器会返回304状态码。
307 Temporary Redirect:临时性重定向,与302的含义类似,但是307要求浏览器不会把重定向请求的POST方法改成GET方法。
*400:Bad Request
401 Unauthorized:状态码表示发送的请求需要有认证信息,如果之前已经进行过一次请求,则表示用户验证失败。
*403:Forbidden
*404:Not Found
*405:Method Not Allowed
*415:Unsupported Media Type
*500:Internal Server Error
503:Server Unavailable:服务器暂时处于超负载或者正在进行停机维护,现在无法处理请求。
4.TCP与UDP的区别
1.TCP是面向连接的,UDP是面向无连接的。
2.TCP是面向字节流的,UDP是面向报文的。
3.TCP是可靠的,可以保证数据无差错、不重复、不丢失,按需到达。UDP是不可靠的,只能尽最大努力交付。
4.TCP是一对一,点对点通信,UDP可以一对一,多对一,一对多,多对多。
5.TCP首部开销大,占20个字节;UDP首部开销小,占8个字节。
5.TCP与UDP头部信息
TCP与UDP的对比及其报头信息的解析
ip头、tcp头、udp头详解及定义,结合Wireshark抓包看实际情况
TCP:
UDP:
6.TCP如何保证可靠性
对字节编号,确认,超时重传,差错检测,流量控制和拥塞控制
7.http与https的区别
1.HTTPS是一种安全地HTTP协议,端口号为443,是先用HTTP协议与SSL交互,然后通过SSL在TCP/IP基础上进行服务。 相对于HTTP,HTTPS添加了数据加密、端口认证、数据完整性保障的功能。
8.get与post的区别
1.get主要用于向服务器请求资源,post主要用于向服务器提交数据。
2.get请求时所带参数直接放入url中,而post所带参数存在实体主体中。
3.get方法不会改变服务器状态,是安全的;post不是安全的。
4.如果要对响应进行缓存,需要满足请求报文的方法本身是可缓存的,PUT可以缓存,POST多数情况下不可缓存。
9.URL输入后的全过程
1.用户输入URL后,浏览器发起DNS查询请求。
a.浏览器缓存
b.系统缓存
c.路由器缓存
d.ISP DNS缓存
2.建立TCP连接。
3.浏览器向web服务器发送HTTP请求。
4.服务器发送响应数据给客户端。
5.浏览器解析http response。
10.CIDR及子网划分
11.http长连接与短连接
HTTP长连接、短连接究竟是什么?
在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。
而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:
Connection:keep-alive
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
12.TCP断开连接TIMEWAIT
TCP连接的TIME_WAIT和CLOSE_WAIT 状态解说
13.TCP确定重传
14.TCP流量控制
15.TCP拥塞控制
16.TCP滑动窗口
17.TCP传输的报文基于底层什么机制?
为了实现TCP的可靠传输,使用校验和、序列号、确认机制、超时重传、流量控制、拥塞控制。
18.https的安全协议,如何识别新建第三方的电子证书
是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用TLS来加密数据包。
19.session和cookie
session:
- Session是服务器的会话技术,是存储在服务器的。
cookie:
- Cookie相当于服务器给浏览器的一个通行证,是一个唯一识别码,服务器发送的响应报文包含 Set-Cookie 首部字段,客户端得到响应报文后把 Cookie 内容保存到浏览器中。客户端之后对同一个服务器发送请求时,会从浏览器中取出 Cookie 信息并通过 Cookie 请求首部字段发送给服务器,服务器就可以识别是否是同一个客户。
区别:
- Cookie只能存储ASCII 码字符串,而 Session 则可以存储任何类型的数据,因此在考虑数据复杂性时首选Session。
- Cookie 存储在浏览器中,容易被恶意查看。如果非要将一些隐私数据存在 Cookie 中,可以将 Cookie 值进行加密,然后在服务器进行解密。
- 对于大型网站,如果用户所有的信息都存储在 Session 中,那么开销是非常大的,因此不建议将所有的用户信息都存储到 Session 中。
20.tcp如何保证传输的有序性,可靠性?
校验码、编号、确认、超时重传、流量控制、拥塞控制。
21.http1和http2
http2的新特性:
- 对头部进行压缩。
- 二进制帧层
- 请求和响应多路复用
- 服务端推送
22.https有什么加密方式
23.ping用什么协议
24.针对TCP3次握手怎么攻击?
25.SYN攻击和DDOS攻击原理
26.TCP的传输过程是怎么样的?怎么确保有序?
27.http协议的特点
- 支持客户/服务器模式。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。
- 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。