OSI七层模型和协议巩固

OSI 模型中,网络被分为七层,由底层向高层依次是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。

1.物理层处于 OSI 七层模型的最底端,它的主要任务是将比特流与电子信号进行转换。由 0 和 1 构成
2.数据链路层处于 OSI 七层模型的第二层,以“帧”传输,数据链路层中有几个重要的概念:MAC 地址和分组交换。以太网帧
3.IP协议处于OSI参考模型的第三层——网络层,IP协议可以分为三大作用模块:IP寻址、路由和IP分包。
4.传输层位于 OSI 七层模型的第四层(由下往上),常见的传输层协议主要有 TCP 协议和 UDP 协议。一般情况下建立连接需要三步,关闭连接需要四步。
5.HTTP 协议属于顶层的应用层中

TCP与UDP的区别

建立 TCP 连接后,由于有数据重传、流量控制等功能,TCP 协议能够正确处理丢包问题,保证接收方能够收到数据,与此同时还能够有效利用网络带宽。然而 TCP 协议中定义了很多复杂的规范,因此效率不如 UDP 协议,不适合实时的视频和音频传输。

UDP 协议是面向无连接的协议,它只会把数据传递给接收端,但是不会关注接收端是否真的收到了数据。但是这种特性反而适合多播,实时的视频和音频传输。因为个别数据包的丢失并不会影响视频和音频的整体效果。

POST 请求和 GET 请求

GET 请求可以被缓存,可以被收藏为书签,但 POST 不行。
GET 请求会保留在浏览器的历史记录中,POST 不会。
GET 请求的长度有限制(不同的浏览器不一样,大约在几 Kb 左右),URL 的数据类型只能是 ASCII 字符,POST 请求没有限制。
GET 请求的参数在 URL 中,因此绝不能用 GET 请求传输敏感数据。POST 请求数据则写在 HTTP 的请求头中,安全性略高于 GET 请求。
POST 请求仅比 GET 请求略安全一点,它的数据不在 URL 中,但依然以明文的形式存放于 HTTP 的请求头中。

Cookie 和Session

根本性区别在于,cookie 保存在客户端上,而 session 则保存在服务器中。
单个 cookie 的大小有限制(4 Kb),每个站点的 cookie 数量一般也有限制(20个)。cookie不可靠,有cookie欺骗的风险
客户端每次都会把 cookie 发送到服务端,因此服务端可以知道 cookie,但是客户端不知道 session
当服务器接收到 cookie 后,会根据 cookie 中的 SessionID 来找到这个客户的 session。如果没有,则会生成一个新的 SessionID 发送给客户端。

HTTPS协议

客户端和服务端建立一个连接,服务端返回一个证书,客户端里存有各个受信任的证书机构根证书,用这些根证书对服务端返回的证书进行验证,经验证如果证书是可信任的,就生成一个pre-master secret,用这个证书的公钥加密后发送给服务端,服务端用私钥解密后得到pre-master secret,再根据某种算法生成master secret,客户端也同样根据这种算法从pre-master secret生成master secret,随后双方的通信都用这个master secret对传输数据进行加密解密。

HTTPS 协议安全性体现在以下三点:

保证所有信息加密传输,无法被第三方窃取。
为信息添加校验机制,如果被第三方恶意破坏,可以检测出来。
配备身份证书,防止第三方伪装参与通信。

先用非对称加密传输密码,然后用这个密码对称加密数据,使得第三方无法获得通信内容
发送方将数据的哈希结果写到数据中,接收方解密后对比数据的哈希结果,如果不一致则说明被修改。由于传输数据加密,第三方无法修改哈希结果。
由权威机构颁发证书,再加上证书校验机制,避免第三方伪装参与通信。

MAC地址

MAC 地址是被烧录到网卡 ROM 中的一串数字,长度为 48 比特,它在世界范围内唯一(不考虑虚拟机自定义 MAC 地址)。由于 MAC 地址的唯一性,它可以被用来区分不同的节点,一旦指定了 MAC 地址,就不可能出现不知道往哪个设备传输数据的情况

你可能感兴趣的:(OSI七层模型和协议巩固)