目录
OSI有哪几层,会画出来,知道主要几层的各自作用
TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称
知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
TCP协议是如何定义的,它的数据格式是什么样子的?
IP报文的格式,格式的各个字段的含义要理解
ICMP协议的主要功能
用于在IP主机、路由器之间传递控制消息
IP地址的分类,如何划分的,及会计算各类地址支持的主机数
划分子网、构造超网
DNS的概念,用途,DNS查询的实现算法
常见熟知端口
TCP与UDP的概念相互的区别及优劣
UDP报文的格式,字段的意义
TCP报文的格式,字段的意义
TCP通过哪些措施,保证传输可靠
三次握手,四次断开过程
请求各个状态的意义如下
为什么要3次握手,4次挥手
HTTP基本格式
GET、POST区别
HTTP 、TCP、Socket区别
Cookies 和 Session的区别
一次完整的HTTP请求所经历的步骤
为什么要用HTTPS?
HTTP与HTTPS的相同和异同点
加密&证书
使用HTTPS方式与Web服务器通信时有以下几个步骤(HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全)
HTTPS的结构图
TLS/SSL 原理
HTTPS与代理
SPDY
HTTP2.0
-
OSI有哪几层,会画出来,知道主要几层的各自作用
- 应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用
- 表示层(数据):主要解决拥护信息的语法表示问题,如加密解密
- 会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制,如服务器验证用户登录便是由会话层完成的
- 运输层(段):实现网络不同主机上用户进程之间的数据通信,可靠
与不可靠的传输,传输层的错误检测,流量控制等
- 网络层(包):提供逻辑地址(IP)、选路,数据从源端到目的端的
传输
- 数据链路层(帧):将上层数据封装成帧,用MAC地址访问媒介,错误检测与修正
- 物理层(比特流):设备之间比特流的传输,物理接口,电气特性等
-
TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称
- 应用层(TELNET、FTP、SMTP)
- 运输层(TCP、UDP)
- 网际层(IP、ICMP)
- 网络接口层(PPP)
-
知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
- 网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连)
- 路由器:网络层(路由选择、存储转发)
- 交换机:数据链路层、网络层(识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中)
- 网桥:数据链路层(将两个LAN连起来,根据MAC地址来转发帧)
- 集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)
- 中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在网络上传输更长的距离)
-
TCP协议是如何定义的,它的数据格式是什么样子的?
-
ICMP协议的主要功能
-
用于在IP主机、路由器之间传递控制消息
-
IP地址的分类,如何划分的,及会计算各类地址支持的主机数
- A类地址:首位为0,1.0.0.1~~126.255.255.254;主机号24位
- B类地址:首位为10,128.0.0.1~~191.255.255.254;主机号16位
- C类地址:首位为110,192.0.0.1~~223.255.255.254;主机号8位
- D类地址(多播地址,也叫做组播地址):首位为1110,224.0.0.1~~239.255.255.254
- E类地址:此类地址是保留地址,首位为11110,240.0.0.1~~254.255.255.254
-
划分子网、构造超网
- 划分子网(变长子网掩码VLSM):划分子网的方法是从网络的主机号借用若干位作为子网号subnet-id,与此同时主机号也减少相应位数(总位数32位不变)。由此两级IP地址可变为三级IP地址: IP地址 ::= {<网络号>,<子网号>,<主机号>},划分子网只是把IP地址的主机号这部分进行再划分,并不改变IP地址原来的网络号
- 构造超网(无分类编址CIDR):CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,把32位的IP地址划分为两个部分。如:128.14.35.7/20是某个CIDR地址块中的一个地址,其前20位是网络前缀(用下划线表示的部分),后面的12位为主机号
-
DNS的概念,用途,DNS查询的实现算法
- 概念
- 域名解析,www.xxx.com转换成ip,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串
- DNS协议运行在UDP协议之上,使用端口号53
- 主机解析域名的顺序
- 浏览器缓存
- 找本机的hosts文件
- 路由缓存
- 找DNS服务器(本地域名、顶级域名、根域名)
-
常见熟知端口
-
TCP与UDP的概念相互的区别及优劣
- TCP面向连接,UDP面向无链接
- TCP面向报文,UDP面向字节流
- TCP提供可靠传输服务(数据顺序、正确性),UDP传输不可靠
- TCP协议传输速度慢,UDP协议传输速度快
- TCP协议对系统资源要求多(头部开销大),UDP协议要求少
-
UDP报文的格式,字段的意义
-
TCP通过哪些措施,保证传输可靠
- 流量控制
- 让发送方的发送速率不要太快,要让接收方来得及接收
- 窗口大小是一个可以改变的值,它由接收端主机控制,附加在 TCP 首部的“窗口大小”字段中
- 拥塞控制
- 防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载
- 拥塞控制方法:慢开始、拥塞避免、快重传和快恢复
-
三次握手,四次断开过程
-
请求各个状态的意义如下
- LISTEN - 侦听来自远方TCP端口的连接请求;
- SYN-SENT -在发送连接请求后等待匹配的连接请求;
- SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
- ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
- FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
- FIN-WAIT-2 - 从远程TCP等待连接中断请求;
- CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
- CLOSING -等待远程TCP对连接中断的确认;
- LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
- TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
- CLOSED - 没有任何连接状态;
-
为什么要3次握手,4次挥手
- 握手:防止已过期的连接请求报文突然又传送到服务器,因而产生错误
- 挥手:确保数据能够完成传输,但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的
-
HTTP基本格式
-
HTTP请求
-
HTTP响应
- 详情
-
GET、POST区别
-
HTTP 、TCP、Socket区别
- TCP/IP代表传输控制协议/网际协议,指的是一系列协组
- HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议
- Socket是TCP/IP网络的API其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议
- 综上所述:需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。HTTP基于TCP协议,但是却可以使用socket去建立一个TCP连接
-
Cookies 和 Session的区别
- cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据
- session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了
- cookie数据保存在客户端,session数据保存在服务器端
-
一次完整的HTTP请求所经历的步骤
- DNS解析(通过访问的域名找出其IP地址,递归搜索)
- HTTP请求,当输入一个请求时,建立一个Socket连接发起TCP的3次握手
- 如果是HTTPS请求建立连接后,则看Q26
- 客户端向服务器发送请求命令(一般是GET或POST请求)
- 客户端发送请求头信息
- 服务器发送应答头信息
- 服务器向客户端发送数据
- 服务器关闭TCP连接(4次挥手)
- 客户端根据返回的HTML,CSS,JS进行渲染
-
为什么要用HTTPS?
- 通信使用明文(不加密),内容可能被窃听(抓包工具可以获取请求和响应内容)
- 不验证通讯方的身分,任何人都坑你发送请求,不管对方是谁都返回相应
- 无法证明报文的完整性,可能会遭到篡改,即没有办法确认发出的请求/相应前后一致
-
HTTP与HTTPS的相同和异同点
- HTTPS需要用到CA申请证书
- HTTP是超文本传输协议,信息是明文的;HTTPS则是具有安全性的SSL加密传输协议
- HTTP是80,HTTPS是443
- HTTP的连接很简单,是无状态的,HTTPS是HTTP+SSL协议构建的,可进行加密传输、身份认证的网络协议,比HTTP协议安全
-
加密&证书
-
加密方法:
- 对称加密(加密和解密使用相同的密钥的加密算法) :DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RC4、IDEA
- 非对称加密(非对称加密算法有两个密钥:公开密钥(public key)和私有密钥(private key);并且加密密钥和解密密钥是成对出现的):RSA、DSA/DSS
- 不可逆加密:数字摘要是采用单项Hash函数将需要加密的明文"摘要"成一串固定长度(128位)的密文,“数字摘要”是https能确保数据完整性和防篡改的根本原因。常用的摘要主要有MD5、SHA1、SHA256等。
-
数字签名:
数字签名技术就是对"非对称"和"数字摘要"两项技术的应用,它将摘要信息用发送者的私钥加密,与原文一起传送给接受者。接受者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原因产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输的过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。明文——>hash运算——>摘要——>私钥加密——>数字签名
-
数字证书
-
使用HTTPS方式与Web服务器通信时有以下几个步骤(HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全)
- 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接(通知可加密的算法)。
- Web服务器收到客户端请求后,会将网站的电子证书(证书中包含公钥)传送一份给客户端。
- 客户端确认电子证书是否刚才访问网站所属
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
- Web服务器利用自己的私钥解密出会话密钥(客户端发来的对称加密密钥)。
- Web服务器利用对称密钥加密与客户端之间的通信。
-
HTTPS的结构图
-
TLS/SSL 原理
- SSL(Secure Sokcet Layer,安全套接字层)
-
TLS(Transport Layer Security,传输层安全协议)
TLS/SSL
-
HTTPS与代理
-
代理作用:提高访问速度、Proxy可以起到防火墙的作用、通过代理服务器访问一些不能直接访问的网站、安全性得到提高
-
SPDY
- SPDY可以说是综合了HTTPS和HTTP两者有点于一体的传输协议
- 降低延迟、请求优先级、header压缩、服务端推送
-
HTTP2.0