web安全——基础知识(计算机网络part1)_啦啦啦啦啦啦啦噜噜的博客-CSDN博客_web安全基础知识
宏观:
一、一些基本概念
计算机网络、网络协议
计算机网络结构、Internet结构
电路交换、多路复用
报文交换和分组交换(分组交换更好)
速率、带宽、延迟、时延带宽积、丢包率、吞吐量
二、OSI七层模型
OSI七层模型及各层功能概述_Java小白白又白的博客-CSDN博客_osi参考模型分为哪几层?各层的功能是什么?
OSI七层模型详解_小鹏_加油的博客-CSDN博客_osi七层模型
整体结构:
- 物理层:实现每一个比特的传输
- 数据链路层:相邻网络节点间传递帧(组帧,物理寻址,流量控制,差错控制,访问接入控制)
- 网络层:源主机到目的主机的数据分组交付(逻辑寻址,路由-选路径,分组转发)
- 传输层:源-目的 端-端 进程间 完整报文传输(分段与重组,SAP寻址,连接控制,流量控制,差错控制)
- 会话层:对话控制-建立维护、同步(薄所以不单独存在)
- 表示层:处理交换信息的语义和语法问题(数据表达转化,加密解密,压缩解压缩,非独立)
- 应用层:支持用户通过用户代理(如 浏览器)或网络接口使用网络(服务)
(典型服务:文件传输-FTP 电子邮件-SMTP Web-HTTP)
TCP/IP参考模型:架构在IP之上(能封装、传输IP分组就能成为网络的一部分)实用
5层参考模型:实际上的~
三、网络应用:
应用层体系结构:
- 客户机/服务器结构(Client-Server, C/S) --web
- 点对点结构(Peer to peer, P2P) --文件共享
- 混合结构(Hybrid) --文件传输P2P 文件搜索C/S
网络进程间通信:
- 利用套接字 Socket 发送/接收消息
- 寻址进程:进程的标识符 ~ IP地址(寻址主机)+ 端口号
- 遵循应用层协议(公开协议 / 私有协议)
- 对传输服务的需求:Internet 提供的传输服务 -- TCP服务、UDP服务
微观:
四、Web:
1.概述:
- 构成:网页、网页互相链接
- 网页:包含多个对象:HTML文件、JPEG图片、视频文件、动态脚本等
每个网页会有一个基本的HTML文件(包含对其他对象引用的链接) - web对象的寻址(区分网页):URL统一资源定位器
格式:(协议): //(主机的域名或IP地址):(端口号)/(path路径) - 遵循HTTP协议(超文本传输协议HyperText Transfer Protocol),C/S结构, 使用TCP传输服务
- HTTP传输协议特点:无状态(对事物处理没有记忆能力)
无连接(每次连接只处理一个请求)
媒体独立(任何类型的数据都可以通过HTTP发送)
(从学长视频中摘抄的)
2.HTTP连接类型:<TCP连接>
非持久性连接过程:
- 客户端发起TCP连接请求->服务器接受请求并通知客户端->
- 客户端将HTTP请求消息(包含表示客户端需要对象的URL地址)通过TCP连接的套接字发出->
- 服务器收到解析再通过套接字发回响应信息->
- 服务器关闭TCP连接->
- 客户端收到响应信息,解析html文件,显示html文件->
- 为每一个jpeg对象重复步骤1-5
持久性连接:发送响应后服务器保持TCP连接的打开,后续HTTP消息仍可以通过这个连接发送
无流水的持久性连接(客户端只有收到前一个响应后才发送新的请求)
带有流水机制(只要遇到一个引用对象就尽快发出请求)
ps. RTT:从客户端发送一个很小的数据包到服务器并返回所经历的时间。
3.HTTP消息格式:请求消息/响应消息
- 请求消息:ASCII码
结构:(请求行) GET / POST / HEAD + URL + HTTP的版本
(头部行 可拓展的)主机地址// 浏览器// 连接// 接受的语言//(名:数据 空行结束)
消息体 - 上传输入的方法:POST方法:使用post会把表格填写的数据放在消息体中
URL方法:使用GET方法 通过请求行的URL上传 - 响应消息:第一行状态行:~~~200 OK、404Not Found (查RFC)
4.Cookie技术:
某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据
5.web缓存 / 代理服务器技术
在不访问服务器的前提下满足客户端的HTTP请求
五、Email应用:
构成:邮件客户端、邮件服务器、SMTP协议
SMTP协议:
- 握手、消息的传输、关闭
- 命令/响应交互模式: 命令:ASCII文本、响应:状态代码和语句
-
交互实例:
Email消息格式:
- 基本格式:头部行header(To From Subject)+消息体body(ASCII字符)
- 多媒体文件扩展:MIME(在邮件头部增加额外的行来声明MIME的内容类型)
- 邮件访问协议:POP、IMAP、HTTP
- POP3协议:认证阶段:客户端~user:用户名~pass:密码 服务器~+OK~-ERR
事务阶段:List列出消息数量 Retr用编号获取消息 Dele删除消息 Quit退出
模式:下载并删除模式、下载并保持模式
(POP3是一个无状态协议) - IMAP协议:所有消息保存在服务器上
允许用户利用文件夹组织消息
支持跨会话的用户状态
(IMAP是有状态协议)
六、DNS服务:
- DNS:Domain Name System 域名解析系统(把域名翻译成IP地址)
- 解决互联网上主机/路由器的识别问题:IP地址、域名
- DNS采用分布式、层级式服务器
- 根域名服务器:最高层
顶级域名服务器TLD:顶级域名和国家顶级域名
权威域名服务器:组织的域名解析服务器
本地域名服务器:不严格属于层级体系 每个ISP有一个本地域名服务器(默认域名解析服务器)
作为代理将DNS查询转发层级式域名解析服务器 - 迭代查询:被查询服务器返回域名解析服务器的名字
- 递归查询:将域名解析的任务交给所联系的服务器
- DNS记录和消息格式:资源记录 (name, value, type, ttl )
Type=A Name:主机域名 Value:IP地址
Type=NS Name:域 Value:该域权威域名解析服务器的主机域名
Type=CNAME Name:某一真实域名的别名 Value:真实域名
Type=MX Value:与name相对应的邮件服务器 - DNS协议:查询和回复 消息格式相同
消息头部:identification:16号查询编号,回复使用相同的编号
flag:查询或回复,期望递归,递归可用,权威回答 - 注册域名:在域名管理机构注册域名 提供你的权威域名解析服务器的名字和IP地址
域名管理机构向com顶级域名解析服务器插入两条记录:
(域名,域名解析服务器的名字,NS)
(域名解析服务器的名字,IP地址,A)
七、P2P架构
- 特点:没有服务器,任意端系统之间直接通信,节点阶段性接入Internet,节点可能更换IP地址
- 文件分发比C/S架构更快
- 典型例子BT协议:BitTorrent
torrent:交换同一个文件的文件块的节点组
tracker:跟踪参加torrent的节点
文件划分为256KB的chunk
节点加入torrent:没有trunk但会逐渐积累 向tracker注册以获得节点清单 与某些节点“邻居”建立联系
下载的同时,节点需要向其他节点上传chunk
节点可能加入或离开
获取chunk:给定任意时刻,不同的节点持有文件的不同chunk集合 节点(Alice)定期查询每个邻居所持有的chunk列表 节点发送请求获取缺失的chunk
发送chunk:tit-for-tat Alice向速率最快的4个邻居发送chunk 每10秒重新评估top4 每30秒随机选择一个其他节点发送chunk - 索引技术:消息到节点位置的索引
集中式索引:节点加入时通知中央服务器IP地址和内容 某个节点查找文件建立连接请求文件
内容和文件传输是分布式的,但是内容定位是高度集中式的
问题:单点失效问题、性能瓶颈、版权问题
泛洪式查询:完全分布式架构 每个节点对且只对它共享的文件进行索引
覆盖网络:节点X和Y之间如果有TCP连接,那么构成一个边。所有的活动节点和边构成覆盖网络,边是虚拟链路。
查询消息通过已有的TCP连接发送 节点转发查询消息 如果查询命中则利用反向路径发回查询节点
层次式覆盖网络:结合上面两种的优点
每个节点或者是一个超级节点,或者被分配一个超级节点,相互之间通过TCP连接
超级节点负责跟踪子节点的内容 - P2P案例应用:Skype
传输层:
传输层服务:
- 本质上:为运行在不同主机(端系统)上的进程提供了一种逻辑通信机制(端到端的 进程之间)
- 发送方:将从应用层接收的消息分成一个或多个的segment,并向下传给网络层
接收方:将从网络层接收到的segment组装成消息,并上交给应用层 - 提供多种传输层协议:Internet上的TCP(可靠)和UDP(尽力而为)
多路复用和多路分用:
- why:某层的一个协议对应上层的多个协议(实体),则需要复用(分用)
- 分用是有多个接收端,复用是发送端
UDP协议:
- 特点:基于IP协议(复用/分用 + 简单的错误校验)
在传输层进行错误检测:端到端的原则
没有错误恢复,尽力而为的原则
无连接:发送方和接收方不需要握手 每个UDP段的处理独立于其他段 - 与TCP优点:无需建立连接(减少延迟)实现简单(无需维护连接状态)头部开销少
没有拥塞控制(可以更好地控制发送时间和速率) - 应用:常用于流媒体应用(容忍丢失 速率敏感)还用于DNS SNMP
在UDP上应用层能实现可靠数据传输 -
报文段格式:
-
UDP校验和(checksum):检测UDP段在传输中是否发生错误(如位翻转)
方法:
发送方:将段的内容视为16比特的整数,计算所有的整数的和,进位加在和的后面,将得到的值按位取反,得到校验和
接收方:计算收到的段的校验和比对,不相等出错,相等未检测出错误(不一定无错)
可靠数据传输原理(rdt):
- 特点:不错、不丢、不乱
- 可靠数据传输协议基本结构:接口
- 利用状态机(FSM)刻画传输协议(每一个状态之间的变迁都会被准确的定义)
- Rdt1.0 可靠信道上的可靠数据传播:
- Rdt2.0 产生位错误的信道(比特错误):ACK NAK
- Rdt2.1-2.2 解决重复 增加序列号:
- Rdt3.0 丢失分组->定时器 等待合理时间
流水线机制滑动窗口协议:
从Rdt3.0提高资源利用率