网络

一.常识

  • TCP/IP协议(簇):
    四层 : 链路层 - 网络层 - 传输层 - 应用层
    物理层 - 链路层 - 网络层 - 传输层 - 会话层 - 表示层 - 应用层
  • 端口 : 程序的入口,用来区分不同的程序.
  • 192.168.1.0 : 网络号 ------- 192.168.1.255 : 广播地址 -----C类地址
  • 低地址存低位数据为小端,低地址存高位数据为大端
  • 子网掩码和ip地址 按位 与 ,可以得到网络号
  • 集线器:广播找到目标ip ---- 交换机:可以记录ip地址
  • 路由器:连接不同的网络
  • ARP根据ip找mac地址,RARP根据mac地址找ip,ICMP协议用来 ping.

二.http

  • 请求报文
    包含了: 方法, URL, 版本协议, CRLF, 首部字段, 请求主体.
  • 响应报文
    包含了:版本, 状态码, 短语, CRLF, 首部字段, 响应主体.
  • http请求方式
    get,post,head,put,delete,options
  • get和post的区别
    1.get请求参数放在url后面,post放在body里面
    2.get请求的参数长度是有限制的(2048字符),post没有
    get:获取资源-->安全的不会引起服务端相关数据变化,幂等的执行一次和执行多次结果一样,可缓存的
    post:处理资源-->非安全的,非幂等的,不可缓存的
  • 三次握手:
    1.客户端发送syn
    2.服务端返回syn+1,ack
    3.客户端回复ack
    三次握手:防止客户端的重发机制
    如果网络延迟,客户端第一次发送给服务器的syn信号没有得到回复,那么客户端就可以进行重发一次;这时候服务器会给客户端发送两条 syn + ack ,导致连理了两条连接...................如果是三次握手的话,第三次握手的时候客户端就可以判断是否丢弃一个连接.
  • 四次挥手:
    1.客户端发送syn
    2.服务端发送ack
    3.服务端发送确认断开连接fin,ack
    4.客户端回复ack
    因为全双工的特性,需要两方都释放
  • http特点
    1.无连接 2.无状态
    保持持久连接: connection:keep-alive time:20 max:10
  • 怎么判断一个请求是否结束
    1.判断content-length
    2.判断chunked,最后会有一个空的chunked.
  • charles抓包工具原理
    利用中间人攻击的漏洞.
  • https建立连接的过程
    1.Client发送TLS版本号、支持加密算法、random number c到 Server.
    2.Server返回握手消息 商定的算法、random number s、证书到Client.
    3.Client 验证 Server的公钥.
    4.Client组装会话密钥
    5.使用Server的公钥对预主密钥进行加密传输
    6.Server通过自己的私钥解密预主密钥
    7.Server拿到预主密钥组成合成会话密钥
    8.发送加密的握手消息

三.TCP & UDP

---------------------TCP:传输控制协议
都是传输层协议:---------
---------------------UDP:用户数据报协议

  • UDP特点: 无连接, 尽最大努力交付, 面向报文原封不动的发送*
  • UDP功能: 复用多端口复用
    ----------分用一个UDP数据包可以发送给多个端口
    ----- 差错检测12字节伪首部

  • TCP特点: 面向连接, 可靠传输, 面向字节流
  • 可靠传输是指:无差错, 不丢失, 不重复, 按序到达
  • 面向字节流:不管发送方一次性提交给tcp的缓冲有多大,tcp会根据实际的情况进行划分.
  • 滑动窗口协议: 按序到达就是通过滑动窗口协议实现的
  • TCP慢启动特性:慢开始、拥塞避免 : 先发送1个,再发送2个,4个,8个,16个指数增长.
    等到16个后,开始17个,18 ,19个,,,,,,2 3个.
    等到24个后就拥塞了,然后就重新开始1个,2个,4个-----到12个....13个..
  • 快重传、快恢复

四.DNS

  • dns解析过程
    1.Client发送域名到dns服务器
    2.dns服务器返回域名对应的ip地址
    3.Client访问ip
  • DNS解析查询方式
  1. 递归查询
    "我去帮你问一下,我帮你去查"
    1.查询本地dns
    2.根域dns,返回给本地dns
    3.顶级dns,返回给根域dns
    4.权限dns,返回给顶级dns
  2. 迭代查询
    "我告诉你谁可能知道,你自己去查"
    1.查询本地dns
    2.本地dns不知道,查询顶级dns
    3.顶级dns不知道,说:根域dns会知道,你去问根域dns
    4.本地dns查询根域dns
  • DNS劫持
    钓鱼dns服务器,返回错误ip地址
  • DNS劫持和http完全没有关系
  • 怎样解决dns劫持
    1.httpDNS直接连接服务器的ip,参数有:服务器域名、Client的ip地址
    2.长连接

五.session、cookie

http无状态特点的补偿

  • cookie : 记录用户状态、区分用户;状态保存在客户端
    cookie覆盖.
    cookie删除也是通过cookie覆盖来实现的.
  • session : 记录用户状态、区分用户;状态保存在服务器端
    session需要依赖cookie实现.
  • session、cookie的关系
    1.Client发送信息到Server
    2.Server记录用户状态,生成sessionID,并把sessionID颁发给Client
    3.Client发送cookie:sessionID
    4.Server通过SessionID辨别是哪个Client.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容