临渊阁

战战兢兢,如临深渊,如履薄冰

0%

TCP-IP

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欺骗