2021/2/8
1. OSI七层模型,TCP/IP四层模型,五层模型
OSI:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP:网络接口层,网际层,传输层,应用层
五层:物理层,数据链路层,网络层,传输层,应用层
2. 三次握手(TCP建立连接)
第一次握手:
客户端发送SYN=1,seq=x(随机)的报文到服务端,并进入SYN-SENT(同步已发送状态)。(这里SYN是同步位,SYN=1表示连接请求或连接接受报文,这种报文不能携带数据);
第二次握手:
服务端向客户端发送报文SYN=1,ACK=1,seq=y(随机),ack=x+1(虽然x是瞎说的,但是我要x+1表示确认),并进入SYN-RCVD(同步已确认接收)。(ACK是确认位,建立连接后的所有ACK都应为1);
第三次握手:
客户端收到服务端的报文后,再发送报文ACK=1,seq=x+1(其实这个报文段可以携带数据了,但如果不携带,则不消耗序列号,所以下一个号仍是x+1),ack=y+1(对服务端y的确认),并进入连接已建立状态。随后服务器收到该报文后也会进入连接已建立状态。
为什么是三次:防止已过期的请求报文突然传到服务器,产生错误的连接,服务器资源浪费。
3. 四次挥手(TCP连接释放)
四次:客,服,服,客
第一次挥手:FIN为终止位,表示释放连接请求,FIN=1的报文段无数据但也消耗一个序列号,seq=u是上一次传输的序列号+1,ack=v是上一次服务器发来的+1;
第二次挥手:由服务器发,所以v就是服务器之前发的+1,ack=u+1就是确认上一报文;
第三次挥手:第二次到第三次之间,客户端不给服务器发了,但是服务器仍可以给客户端发,seq=w就是表面这段时间可能又发了一些,w是最新上一个序列号+1;
第四次挥手:发送确认,服务器收到后彻底关闭,客户端等2个MSL(最长报文段寿命)后关闭。
为什么是四次:因为客户端停止给服务器发了,服务器可能还有给客户端没发完的。
4. 以太网MAC帧结构
1500字节就是在传输过程中的最大传输单元,也称为MTU,是指在传输数据过程中允许报文的最大长度。
5. 点对点协议PPP帧
注:ppp(点对点)属于广域网范畴,MAC是局域网范畴;点对点链路属于广域网了,不再是以太网(局域网)所以不用ARP协议。
6. MAC地址,IP地址,ARP协议
(1)MAC地址:也称物理地址,硬件地址
(2)IP地址:网络号+主机号
(3)ARP协议:知道IP地址寻找MAC地址,先ARP高速缓存表,再广播,收到的响应是单播;类似的有RARP,是MAC找IP。
7. IPv4地址
(1)分类编址
注意:A类网络号中0和127也不能用,所以再-2;B,C不用-2
(2)子网划分
直接分配一个B类网络有65534个主机,如果用不完会浪费,所以可以取出一部分主机号位,用于子网划分;
子网掩码 & IP地址 = 网络号;
默认子网掩码:A类网8个1,B类网16个1,C类网24个1
(3)无分类编址的IPv4
8. IP数据报首部格式
9. 网际控制报文协议ICMP(IP层)
为了提高交付成功的机会,网际层使用ICMP协议;主机或路由器使用ICMP来发送差错报告报文和询问报文。
差错报告报文有:终点不可达,源点抑制,时间超过,参数问题,改变路由
询问报文有:回送请求和回答,时间戳请求和回答
10. 如何理解IP的不可靠和无连接
不可靠:指的是不能保证数据报能成功地到达目的地。发生错误时候,丢弃该数据包,发送 ICMP 消息给信源端。
无连接:IP 不维护关于后续数据报的状态信息。可能发过去到达顺序不一样。
11. TCP拥塞控制
第一组:慢开始+拥塞避免
第二组:快重传(要求接收方不是等到发送数据时捎带确认,而是收到后立即发送确认报文;发送方一旦收到三个累计确认报文段,就对该报文立即重传,而不是等超时)
+快恢复(门限值设置为当前窗口的一半,而不是降到1)
12. TCP可靠传输
滑动窗口+累计确认
13. TCP首部格式
TCP在发送数据时,是从缓存中取出一部分或全部字节并给其添加一个首部来使其成为TCP报文段后进行发送。
TCP首部如下:
序号与确认号即seq,ack
14. 应用层协议
(1)HTTP超文本传输协议:用于客户端与服务器之间通信的万维网协议
(2)DNS域名系统:将具有特定含义的主机名(域名)转为便于机器处理的IP地址
DNS报文主要使用运输层的UDP协议封装,端口号53;
域名查询方式有递归查询,迭代查询
(3)FTP文件传输协议
FTP客户与服务器之间建立两个并行的TCP连接;
21端口用于控制连接,传输FTP相关命令;
20端口用于数据连接,文件传输时才建立,传输结束就关闭,如果非主动模式则不一定是20端口。
(4)SMTP简单邮件传送协议
基于TCP连接,端口号25;只能传送ASCll码文本。
15. NAT网络地址转换协议
所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
16. 输入网址到网页显示的整个流程
(1)输入www.baidu.com之后,通过DNS域名系统将域名解析成IP地址
先递归查询本地域名服务器,在迭代查询根、顶级、权限域名服务器
(2)基于http协议发送http请求报文
(3)浏览器接收响应报文,在浏览器渲染成页面
17. TCP一方断开
如果TCP连接中,一方异常断开,则发送方发送数据后收不到确认包,会尝试重传几次,几次失败后会发送一个RST包,会收到对方状态为CLOSED或LISTEN。