一、网络分层
从下到上:物理层,数据链路层,网络层,传输层、应用层
1、物理层
- 透明传输比特流。(透明,屏蔽掉具体传输介质和设备的差异,对比特流来说,仿佛电路不存在)。
- 确定与传输媒体接口有关的一些特性,如机械特性、电气特性、功能特性。
- 频分复用、码分复用、时分复用、波分复用、统计时分复用。
- 宽带接入:ADSL(电话线)、FTTx(光纤x)。
2、数据链路层
- 点对点的物理链路。
- 封装成帧、透明传输、差错检测。
- CRC循环冗余检验,FCS是冗余码。
- 点对点信道:点对点协议PPP,只检测差错不纠正,没有流量控制。
- 广播信道:载波监听多点接入 CSMA/CD协议,冲突检测。先监听,然后边发送边监听,总线碰撞,停止发送,退避算法,再次发送。
- MAC地址。ARP,根据IP地址获取物理地址(MAC)的一个TCP/IP协议。
广播区域网目标IP地址的ARP请求,目标收到返回,发送主机把IP和MAC存入ARP缓存 - 适配器、转发器、集线器、网桥、以太网交换机。
3、网络层
- TCP/IP 协议中的网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,不保证不出现出错,丢失,重复和失序。进程之间通信的可靠性由运输层负责。
- 子网掩码、IP、路由。
4、传输层
- 网络层为主机提供逻辑通信,而运输层为应用进程间提供端到端的逻辑通信。
- UDP 的主要特点是 ① 无连接 ② 尽最大努力交付 ③ 面向报文 ④ 无拥塞控制 ⑤ 支持一对一,一对多,多对一和多对多的交互通信 ⑥ 首部开销小(只有四个字段:源端口,目的端口,长度和检验和,8字节)
- TCP 的主要特点是 ① 面向连接 ② 每一条 TCP 连接只能是一对一的 ③ 提供可靠交付 ④ 提供全双工通信 ⑤ 面向字节流 ⑥ 首部开销大(20-60字节)
- TCP 的流量控制,拥塞控制和连接管理。三次握手,四次挥手机制。
5、应用层
- DNS、FTP、WWW、URL、HTTP、SMTP
二、一些详细知识点
1、三次握手,四次挥手
握手次数 | Client | Server |
---|---|---|
第一次握手 | 什么都不能确认 | 确认C可以发,S可以接 |
第二次握手 | 确认C接发、S接发 | 和第一次一样 |
第三次握手 | 和第二次一样 | 确认C接发、S接发 |
SYN 同步序列编号(Synchronize Sequence Numbers) 是 TCP/IP 建立连接时使用的握手信号, ACK(Acknowledgement)消息响应。
1、A向B发送FIN释放报文,并停止发数据。
2、B收到后,向A发送ACK确认报文。
3、B数据传输结束后,向A发送FIN释放报文。
4、A向B发送确认报文,B 关闭。再等待2MSL(Maximum Segment Lifetime)后,A 关闭。
等待的2MSL是为了保证最后一个ACK可以被B收到,如果ACK丢失B没收到,B会重新发送FIN,此时这个2MSL就可以让A收到B的FIN再发送ACK。这样就不会让B第二次发送的FIN出现在新连接中。
2、TCP可靠传输
- 流量控制: TCP 连接双方都有固定大小的缓冲空间,B 只允许 A 发送 B 缓冲区能接纳的数据。当 B 来不及处理 A 的数据,能提示 A 降低发送的速率,防止包丢失。
接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率,即滑动窗口。
- 拥塞控制: 当网络拥塞时,减少数据的发送。
- ARQ协议: 也为了可靠传输,每发完一个分组就停止发送,等待对方确认后再发下一个分组。
- 超时重传: TCP 发出一个段后,启动一个定时器,等待收到确认,没及时收到重发。
3、浏览器相关
URL —>显示主页过程
- 浏览器 URL 交给 DNS,查找 IP
- 向服务器发 HTTP 请求。
- 服务器处理请求,发回一个 HTML 响应。
- 浏览器解析渲染页面。
状态码:
PUT 与 POST
- PUT 具有幂等性,即发送几次返回结果都一样,所以可以用来 添加/更新 一个 Entiy,不管是否存在都会成功(Entiy 存在了更新,不存在则添加)。
- POST 没有幂等性,可以更新部分数据,可能成功,也可能因为需要更新的实体不存在而失败。