TCP/IP协议族
| 协议族 | 例子 |
|---|---|
| 应用层 | HTTP,FTP,DNS |
| 运输层 | UDP,TCP |
| 网际层/网络层 | IP,ICMP |
| 网络接口层 | 。。。 |
各层的内容
应用层
HTTP 80
- 1.0 非持久连接
- 1.1 持久连接
- 不带流水线的:接收完再发新的
- 带流水线的:不管,一块发(时间更短)
- GET,POST,HEAD(不返回,一般用于控制),PUT(文件上载),DELETE(删除)
- web缓存
FTP 21
- 带外发送信息(控制连接21,数据连接20)
- 两种连接模式:‘服务器’主动(客户端发PORT),被动(发PASV)(原因:很多内部网络禁止外部连接)
- 两种传输模式:ASCII,二进制
SMTP 25
- 三个组成部分:服务器(外出报文队列),用户代理(相当于客户端软件),邮件协议(发送,收取)
发送 SMTP协议
- 要点:持久连接,邮件消息是7-bit ASCII,用单独一行. 结束
- MIME(多用途因特网邮件扩展),可以发特殊字符或二级制文件,base64(广泛使用)编码
接收 POP,IMAP,HTTP协议
- POP3 110:授权(认证),事务处理,更新:无状态,简单
- IMAP 143:文件夹与文件id映射,比较复杂
DNS 53
- 分布式数据库,域名/地址转换
- root / com, org, edu / google.com
- 有13台根域名服务器(还有非常多镜像)
- 查询方法:递归查询,迭代查询(由本地DNS一个一个问),本地缓存(用TTL记录到期时间)
- DNS记录:存储资源记录(RR,四元组(name, value, type, TTL) )
- type:A(Address)直接存地址,CNAME(canonical)存别名,NS(代表是个域名服务器)记录它管理的域名,MX(mail exchange)记录邮件服务器
- 注册域名需要提供自己的基本权威域名服务器(可以用别人的)和辅助的(要有NS记录和A记录)
P2P
- 泛洪,超级节点
- DHT:分布式数据库(Hash表)
socket
- 可以基于TCP(面向连接)和UDP
运输层
多路复用与多路分解
- 多个上层应用同一个下层接口
- 基于ip地址和端口实现
UDP
- 面向报文(原封不动的转交)
- 可能会丢失,传递的报文可能乱序,长度最高为64K(超过需要在应用层手动分包),但速度快,延时低
- 校验和(internet校验和):分成16比特段进行累加(如果产生进位再加回到结果上),最后取反
可靠数据传输原理
- 有限状态机:描述对象在生命周期内所经历的状态序列,和如何响应来自外界的各种事件(常用来做研究)
- 流水线传输:回退N步,选择性重传
TCP
- 使用流水线传输
- 报文:序号,确认号,数据偏移,标识,窗口,校验和,紧急指针,可选(最长到40字节)
- 标识:SYN(用于连接请求),FIN(用于关闭连接),ACK(确认,为1时确认号才有效),RST(复位,表示关闭并重连),URG(紧急数据,为1时,紧急指针才有效),PSH(立刻发送)
- 序号:数据段中第一个字节在数据流中的位置
- 确认号:用于确认对方数据(可以和序号同时发送)
- 窗口:用来控制流量(发送速度),用接收方控制发送方
- 超时值:用RTT(指数加权移动平均)确定超时值
- ACK返回最后收到的地址
- 三次握手:发SYN并指定初始序号,服务器发SYN和ACK并指定服务器初始序号(与客户端的无关),客户端返回ACK(可能包含数据)
- 四次挥手:客户发FIN,服务器发ACK(进入半连接),服务器发FIN,客户回ACK (四次因为服务器,客户各两次)
- 拥塞控制:网络线路拥堵,
网络层
- 提供两种服务:虚电路(面向连接,淘汰了),数据报(非连接)
- 网络层协议:路由协议(构建路由表),IP协议(管理数据报),ICMP协议(错误处理)
IP
- ARP(地址解析协议),ICMP(网际控制报文协议),IGMP(网际组管理协议)
- 分片
- MTU:数据链路帧的数据区的最大字节数
- ID号表示相同分组数据报,标志位表示分片,偏移量以字节为单位
- 早期分为5类
- 现在是CIDR(无类别域间路由选择)技术
- 网络部分可以任意长
- 子网掩码:1:表示网络位,0表示主机位,表示如何划分子网
- DHCP(属于应用层,使用UDP):获取IP,默认网关,DNS服务器地址,网络掩码
- NAT
- 路由算法:确定一个分组从源路由器(源主机默认路由)到目的路由器(目的主机)所经路径的算法
- 链路状态路由算法LS(全局路由算法)必须知道所有链路费用
- 距离向量路由算法DV(分布式路由算法)迭代计算
各层相关的安全问题
应用层
明文传输漏洞
- HTTP,FTP,SMTP 默认以明文传输
- DNS明文传输,可能导致DNS劫持,但由于速度问题,未普及加密
运输层
TCP
- TCP泛洪
网络层
ARP欺骗
- arp欺骗