共计 3552 个字符,预计需要花费 9 分钟才能阅读完成。
一、OSI 模型
OSI = Open System Interconnect = 开放式系统互联
分层:物理层,数据链路层,网络层,传输层,会话层,表示层、应用层
- 物理层
二进制传输 为传输数据所须要的物理链路进行创立、维持、拆除
常见设施 中继器 集线器
数据单位 比特 Bit - 数据链路层
介质拜访(接入)为网络层提供服务,在不牢靠的物理介质上提供牢靠的传输物理地址寻址、数据的成帧、流量管制、数据的检错、重发等。
常见设施 二层交换机 网桥
数据单位 帧 Frame - 网络层
寻址和最短门路 使数据路由通过大型网络
常见设施 路由器
数据的单位 包 Packet - 传输层
过程间通信 提供终端到终端的牢靠连贯
数据的单位 数据段 Segment - 会话层
主机间通信 治理主机之间的会话过程,即负责建设、治理、终止过程之间的会话 - 表示层
数据表示 包含编码解码、加密解密、压缩解压缩 - 应用层
解决网络应用
缩写 | 全称 | 用处 |
---|---|---|
DNS | 域名解析服务 | 域名解析 |
HTTP | 超文本传输协定 | 网页浏览 |
SMTP | 简略邮件传输协定 | 电子邮件发送 |
POP3 | 邮局协定版本 3 | 电子邮件接管 |
FTP | 文件传输协定 | 文件传输 |
SFTP | 平安文件传输协定 | 文件传输 |
二、TCP/IP 协定族
- TCP/IP 和 OSI
TCP/IP 协定族对 OSI 模型进行了简化
OSI 上三层合并为 TCP/IP 应用层 OSI 的物理层和数据链路层合并为 TCP/IP 网络接入层 - IP 协定
IP = Internet Protocol = 互联网络协定
IP 是一种 网络层 的协定,用于将多个包交换网络连接起来的,在源地址和目标地址之间传送数据报。 - TCP 协定
TCP = Transmission Control Protocol = 传输控制协议
TCP 是一种基于连贯的 传输层 协定,提供了端到端的牢靠的通信服务
通信形式
单工 只能单方向通信。如播送。
半双工 以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。如对讲机。
全双工 数据同时在两个方向上传输。如电话。
建设 TCP 连贯 三次握手
建设连贯肯定是客户端被动发动
1. 客户端 -> 服务器 同步标记位 SYN 无效,示意客户端心愿和服务器建设连贯,有发送序号 seq=100
2. 服务器 -> 客户端 确认标记位 ACK 无效,确认号 ack=101,示意服务器批准客户端发送序号是 100 的连贯申请,同步标记位 SYN 无效,示意服务器心愿和客户端建设连贯,有发送序号 seq=200
3. 客户端 -> 服务器 确认标记位 ACK 无效,确认号 ack=201,示意客户端批准服务器发送序号是 200 的连贯申请,客户端的发送序号 seq 自增,值为 101
断开 TCP 连贯 四次挥手
断开连接客户端和服务器都能够被动发动,以客户端被动发动为例
1. 客户端 -> 服务器 完结标记位 FIN 无效,示意客户端心愿和服务器断开连接,有发送序号 seq=300
2. 服务器 -> 客户端 确认标记位 ACK 无效,确认号 ack=301,示意服务器批准客户端发送序号是 300 的断开连接申请,有发送序号 seq=400
3. 服务器 -> 客户端 确认标记位 ACK 无效,确认号 ack=301,示意服务器对客户端发送序号是 300 的断开连接申请的回应,完结标记位 FIN 无效,示意服务器心愿和客户端断开连接,有发送序号 seq>=400
4. 客户端 -> 服务器 确认标记位 ACK 无效,确认号 ack>=401,示意客户端批准服务器发送序号是 >=400 的断开连接申请,客户端的发送序号 seq 自增,值为 301
- UDP 协定
UDP = User Datagram Protocol = 用户数据报协定
UDP 是一种无连贯的 传输层 协定,提供面向事务的简略不牢靠信息传送服务
长处
数据传输过程中提早小,数据传输效率高,速度快
毛病
不提供数据包分组和组装,不能对数据包进行排序;
不保障数据传输的可靠性,可靠性由下层(应用层)保障
UDP 和 TCP 的比照
TCP | UDP | |
---|---|---|
名称 | 传输控制协议 | 用户数据报协定 |
连贯 | 面向连贯 | 无连贯 |
传输模式 | 字节流 | 报文 |
传输可靠性 | 牢靠 | 不牢靠 |
资源占用 | 较多 | 较少 |
复杂度 | 较简单 | 较简略 |
数据程序 | 保障 | 不保障 |
传输效率 | 低 | 高 |
- HTTP 协定
HTTP = HyperText Transfer Protocol = 超文本传输协定
HTTP 是一种 应用层 的协定
规定了浏览器和 Web 服务器之间相互通信的规定,通过网络传送 Web 文档的数据传送协定
特点
- HTTP 协定是一种申请 - 应答式的协定
- 从建设连贯到敞开连贯的过程称为“一次连贯”
- 最显著的特点是客户端发送的每次申请都须要服务器回送响应,在申请完结后,会被动开释连贯。
原理
- 连贯用完就开释
- 须要一直向服务器发动连贯申请来放弃在线状态。
- 若服务器长时间无奈收到客户端的申请,则认为客户端“下线”
- 若客户端长时间无奈收到服务器的回复,则认为网络曾经断开
两个版本差别
HTTP 协定是无连贯的协定
- HTTP 1.0 短连贯(非长久连贯)
客户端的每次申请都要求建设一次独自的连贯
在解决完本次申请后,就主动开释连贯 - HTTP 1.1 长连贯(长久连贯)
能够在一次连贯中解决多个申请
并且多个申请能够重叠进行,不须要期待一个申请完结后再发送下一个申请
HTTP 申请
申请 Request,由客户端发送给服务器端
申请的办法(形式 Method)
GET 申请 次要是数据的获取
POST 申请 次要是数据的提交
==GET 申请和 POST 请 求 的 区 别:(★)==
- GET 应用 URL 或 Cookie 传参。而 POST 将数据放在 BODY 中。
- GET 的 URL 会有长度上的限度,则 POST 的数据则能够十分大。
- POST 比 GET 平安,因为数据在地址栏上不可见。
- 个别 GET 申请用来获取数据,POST 申请用来发送数据,数据提交。
HTTP 响应
响应 Response,由服务器端返回给客户端
- 失常响应状态码 1XX,2XX,3XX
- 失常状态码
- 异样响应状态码 4XX,5XX
- Not Found 找不到须要拜访的资源
HTTPS 申请特点
- 为了数据传输的平安,HTTPS 在 HTTP 的根底上退出了 SSL/TLS 协定,SSL/TLS 依附证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
- HTTPS 协定是由 SSL/TLS+HTTP 协定构建的可进行加密传输、身份认证的网络协议,要比 http 协定平安。
- HTTPS 协定的次要作用能够分为两种:一种是建设一个信息安全通道,来保障数据传输的平安;另一种就是确认网站的真实性。
==HTTPS 和 HTTP 的次要区别:(★)==
- https 协定须要到 CA 申请证书,个别收费证书较少,因此须要肯定费用。
- http 是超文本传输协定,信息是明文传输,https 则是具备安全性的 ssl/tls 加密传输协定。
- http 和 https 应用的是齐全不同的连贯形式,用的端口也不一样,前者是 80,后者是 443。
- http 的连贯很简略,是无状态的。
总结:HTTPS 协定是由 SSL/TLS+HTTP 协定构建的可进行加密传输、身份认证的网络协议,比 http 协定平安。
三、Wireshark
- Wireshark 的特点
是十分风行的网络封包剖析软件;
能够截取各种网络封包,显示网络封包的详细信息,但不能批改数据包的内容或者发送数据包;
能获取 HTTP、HTTPS,然而不能解密 HTTPS,所以无奈读取 HTTPS 中的内容。 - 过滤数据包
过滤要求 | 过滤条件表达式 |
---|---|
过滤 IP 地址 | ip.addr==172.31.128.199 |
过滤源 IP 地址 | ip.src==172.31.128.199 |
过滤 目标 IP 地址 | ip.dst==172.31.128.199 |
过滤端口 | tcp.port==80 |
过滤源端口 | tcp.srcport==80 |
过滤目标端口 | tcp.dstport==80 |
过滤协定 | http |
过滤 HTTP 申请形式 GET | http.request.method==”GET” |
过滤 HTTP 申请形式 POST | http.request.method==”POST” |
四、Cookie 和 Session
Web 网站如何进行会话跟踪
艰难
HTTP 协定是无状态协定
HTTP 协定不保留客户端信息,无奈辨别每次申请的不同之处
解决办法
Cookie
- 服务器暂存放在用户计算机上的一些材料,能够让服务器用来识别用户的计算机。
- Cookie 通过在客户端记录信息确定用户身份
- 利用
保留用户的身份信息
用户在上一次浏览网站时的表单输出和操作步骤
因为 Cookie 保留在客户端所以用户能够看见,所以也能够编辑伪造,不是很平安
Session 会话
- Session 通过在服务端端记录信息确定用户身份
- 当拜访网站时,服务器会标示该访问者,给它一个 Session ID,当会话过期后就删除这个 SessionID
- Session ID 以响应的形式传递给客户端,以 Cookie 的模式保留在客户端中,客户端在后续的申请中将保留该 Session ID 值的 Cookie 回传给服务器,服务器就能够用来对客户端的身份进行验证
- Session 保留在服务器,Session 过多的时候会耗费服务器资源,所以大型网站会有专门的 Session 服务器