前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >30分钟了解TCP/IP五层结构及常见概念

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

原创
作者头像
SOEZ
修改2018-07-22 10:27:47
2K0
修改2018-07-22 10:27:47
举报
文章被收录于专栏:How things work?How things work?
图1 TCP/IP 五层结构及常见概念
图1 TCP/IP 五层结构及常见概念

一 应用层

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

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

图2 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
图3 获取谷歌域名的IP
图4 使用 https://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
图5 获取淘宝域名的IP

四 数据链路层

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

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


参考链接:

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 应用层
  • 二 传输层
  • 三 网络层
  • 四 数据链路层
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档