30分钟了解TCP/IP五层结构及常见概念

图1 TCP/IP 五层结构及常见概念

一 应用层

应用层常见的概念有:HTTP 和 HTTPS。

HTTP运行在TCP之上,有如下缺点:传输的内容是明文,客户端和服务端无法验证对方的身份。为了解决这两个问题,提出了HTTPS。HTTPS = HTTP + SSL/TLS,相当于在HTTP和TCP之间加了SSL/TLS(早期版本是SSL,后来逐渐升级为TLS)。HTTPS通信过程:

图2 HTTPS的通信过程

HTTPS通信过程中主要用到了非对称加密技术。非对称加密有两个密钥:公钥和私钥,公开公钥,私钥自己保管。用公钥加密可以用私钥解密,但是无法用公钥解密,反之亦然。其中PKI是非对称加密技术中的一种规范。

PKI(Public Key Infrastructure) :

PKI有两个作用:加密和签名。假设A有一套公钥,私钥,将其中的公钥给了B,私钥自己保管。

  • 加密:B用公钥加,A用私钥解,即使C拿到了通信内容。
  • 签名:A用私钥加,B用公钥解,如果解密成功,说明通信内容肯定来自A,用于数据的不可伪造性。

CA(Certificate Authority) 与 证书 :

在A将自己的公钥发送给B的过程中,如果有人做了拦截,替换为自己的公钥,整个PKI体系就瓦解了。为了解决这个问题,提出了CA的概念,即增加一个可信机构。A将自己的公钥发送给CA,CA用自己的私钥加密生成证书返还给A。B与A建立HTTPS链接时,A不是将自己的公钥发送给B,而是将自己的证书给B,B拿到证书后,验证证书是否来自CA,如果来自CA,说明证书是可信的。

HTTPS必须使用域名,因为CA的证书是授权给域名的,不是IP。如果确实需要使用Https://ip的方式,需要在代码中过掉CA的验证过程,否则无法正常建立连接。比如下面这个例子,我们点击继续前往后(相当于过掉CA验证),就可以使用 https://ip 的方式访问网站了。

图3 获取谷歌域名的IP
图4 使用 https://ip 的方式访问谷歌

二 传输层

传输层常见的概念有: TCP 和 UDP。

TCP,UDP是协议,通过操作系统的socket实现,应为TCP,UDP协议使用范围比较广,所以socket封装了常用的接口,listen,accept等接口。除了TCP,UDP,scoket还可以实现其它协议,只是不常见。

三 网络层

网络层常见的概念有:IP。

封包传播过程中,IP是不变的,所以服务端可以从封包中拿到客户端的IP。最开始,网络中使用IP作为设备地址,后来为了便于记忆,产生了域名的概念。但是你要知道,使用域名浏览网页或者编写程序,到了真正访问网络时使用的是IP,域名到IP的转换过程由DNS完成。

设备联网时,ISP(Internet Service Provider)会给设备分配IP,下发DNS地址。默认情况下,我们使用运营商提供的DNS,但是国内运营商为了利益会各种劫持,比较恶心,推荐两个比较好的公共DNS:

  • 谷歌公共DNS:8.8.8.8
  • 国内相对好一点的公共DNS:114.114.114.114

通过ping命令,可以查看域名对应的IP :

图5 获取淘宝域名的IP

四 数据链路层

数据链路层常见的概念有:MAC。

封包传播过程中,每进入一个局域网,MAC地址更改一次,所以服务端不能从封包中拿到客户端的MAC。


参考链接:

1 http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

加密和签名方案

版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxq0816/article/details...

1494
来自专栏Timhbw博客

网站全站开启 HTTPS(二、腾讯云 SSL 证书)

2017-02-0612:19:27 发表评论 900℃热度 网站全站开启 HTTPS(一、又拍云一键部署) 之前写过又拍云的 SSL 证书一键部署,用的是 ...

74710
来自专栏日暮星辰

Let’s Encrypt 宣布 ACME v2 正式支持通配符证书

Let’s Encrypt 宣布 ACME v2 正式支持通配符证书。Let’s Encrypt 宣称将继续清除 Web 上采用 HTTPS 的障碍,让每个网站...

1654
来自专栏刺客博客

免费泛解析证书获取及后续安装方法

5485
来自专栏java一日一条

HTTPS 原理剖析与项目场景

最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享。

1481
来自专栏腾讯Bugly的专栏

iOS 中 HTTPS 证书验证浅析

导语 在 WWDC 16 中,Apple 表示, 从 2017年1月1日起(最新消息, 实施时间已延期),所有新提交的 App 使用系统组件进行的 HTTP 网...

6058
来自专栏腾讯Bugly的专栏

全站 HTTPS 来了

阅读提示:全文较长,预计阅读时长:20分钟 各位使用百度、谷歌或淘宝的时候,有没有注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTP...

3114
来自专栏吴伟祥

聊一聊HTTPS和SSL/TLS 转

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)简单的讲就是HTTP的安全版本。即HTT...

521
来自专栏黑白安全

Adobe发布Flash Player Zero-Day(CVE-2018-5002)漏洞的补丁

Flash Player漏洞(CVE-2018-5002)是一种基于堆栈的缓冲区溢出漏洞,可能导致任意代码执行,Adobe在今天早些时候对其进行了修补。

691
来自专栏上善若水

055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

将签名命令上加一段话: -digestalg SHA1 -sigalg MD5withRSA 加上后就可以了

2944

扫码关注云+社区

领取腾讯云代金券