王道–计算机网络 https://bithachi.blog.csdn.net/article/details/104722679
应用层
(1)掌握DNS(域名解析)协议:名字空间;DNS指针查询(反向查找或逆向解析)基本原理、DNS缓存
(2)FTP协议(活化石):控制连接和数据连接(为什么需要这两种连接);两种工作模式(PASV+PORT);各种FTP指令和响应码;FTP断点续传,匿名FTP
(3)HTTP协议:报文格式(请求报文、响应报文、请求头各种字段、响应头各种字段);
HTTP状态码
100
200
300
400
500
(4)HTTPS协议:详细握手过程;各种算法(摘要算法、数字签名、数字证书的原理与过程)
https数字证书的验证过程-重点
https://www.cnblogs.com/funny11/p/6978908.html
常用协议
HTTP:缺省TCP80端口
HTTPS:缺省TCP443端口,在普通的HTTP与TCP层之间多了一个安全加密的夹层,称之为SSL
DNS:用于解析域名与IP地址的基于UDP/TCP 应用层协议
DHCP:用于主机动态获取IP地址、缺省网关、DNS服务器等参数的基于UDP 应用层协议
NFS:用于Unix / Linux 文件共享,基于UDP/TCP协议
NTP:用于时钟同步的基于UDP的应用层协议
SMTP:用于邮件发送的基于TCP的应用层协议
POP3:用于邮件接收的基于TCP的应用层协议
FTP -> SFTP:文件传输协议,SFTP协议是在FTP的基础上对数据进行加密,SFTP是SSH(缺省端口22)的一部分
TELNET -> SSH:telnet 是明码传输的,发送的数据被监听后不需要解密就能看到内容;ssh 是加密的,基于 SSL
传输层
Tcp怎么保证可靠性
校验和,序列号,超时重传,拥塞控制,流量控制。答得时候展开说就可以,校验和是什么,超时重传是什么,拥塞控制、流量控制的过程。
校验和
通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢弃TCP段,重新发送。TCP在计算检验和时,会在TCP首部加上一个12字节的伪首部。检验和总共计算3部分:TCP首部、TCP数据、TCP伪首部
序列号/确认应答
发送端发送信息给接收端,接收端会回应一个包;只要发送端有一个包传输, 接收端没有回应确认包(ACK包),都会重发。或者接收端的应答包,发送端没有收到也会重发数据。这就可以保证数据的完整性。
超时重传
超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间会被认为是丢包了,需要重传
我们该如何确认这个时间值呢?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JDagNyuE-1646271221658)(C:\Users\Vanuny\AppData\Roaming\Typora\typora-user-images\image-20210831222931727.png)]
超时重传的时间大概是比往返时间+抖动值还要稍大的时间
滑动窗口控制
窗口的大小就是在无需等待确认包的情况下,发送端还能发送的最大数据量。这个机制的实现就是使用了大量的缓冲区,通过对多个段进行确认应答的功能。通过下一次的确认包可以判断接收端是否已经接收到了数据,如果已经接收了就从缓冲区里面删除数据
发送窗口分为四种: 已发送且已确认, 已发送未确认, 未发送但在接受范围, 未发送且不在接受范围
接收窗口分三种,已接收并且已发送ack,未收到但是可以接收,未接收且不能接收。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j55efpiS-1646271221659)(C:\Users\Vanuny\AppData\Roaming\Typora\typora-user-images\image-20210831223315920.png)]
拥塞控制
主要是拥塞控制算法的过程。
1.慢启动
2.拥塞控制
3.拥塞发生
4.快速恢复
https://zhuanlan.zhihu.com/p/133307545
系统限流
漏桶 , 令牌桶
https://segmentfault.com/a/1190000015967922
哪些应用层协议使用了tcp
ftp(20传数据,21连接)http,smtp(发邮件,25端口),pop3(收邮件,110端口)
哪些应用层协议使用了udp
dns(53端口),snmp(管理网络的,161端口),NFS,TFTP
Tcp和udp区别
面向连接,可靠,是否多播,报文还是字节流,首部大小
http://www.jiangmen.gov.cn/bmpd/jmszwfwsjglj/ztzl/wlxxaq/xxjs/content/post_1768610.html
https://zhuanlan.zhihu.com/p/24860273
如果服务器中含有大量一直处于close_wait的tcp连接,是为什么
close_wait之后会返回一个ack给客户端,如果还在这个状态,说明服务器卡住了,耗时太长。
https://www.cnblogs.com/grey-wolf/p/10936657.html
有大量timewait怎么办
timewait快速回收和重用。快速回收:通过修改参数启用快速回收,此时timewait只有一个rto的时间。重用有两个条件,1.新连接的初始序列号比TW老连接的末序列号大。2.如果使用了时间戳,那么新到来的连接的时间戳比老连接的时间戳大。并且同一个ip和端口号的才能重用。
转发和重定向
转发是在服务器内部,把请求又发送给另一个servlet,所以外部看到的url是不变的,而且只能跳转到内部的链接;重定向是服务器向客户端发送一个指令,让客户端再次请求,所以此时地址栏会变化。
TCP抓包实验
https://chouxianyu.github.io/2019/06/12/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C-%E5%AE%9E%E9%AA%8C%EF%BC%88%E5%9B%9B%EF%BC%89TCP%E6%8A%93%E5%8C%85%E5%88%86%E6%9E%90/
网络层
IP:负责分配IP地址,提供路由
ARP:地址解析协议,将IP地址转换为物理地址
ICMP:为了提高IP数据报成功交付的机会,在IP数据报传输的过程中进行差错报告和查询,
(1)掌握IP首部格式:如16位分片标识、DF不分片标志、MF更多分片标志、13位片偏移、8位生存时间TTL、16位的首部检验和等等。
(2)掌握如何IP分片:如总长大于MTU值,画分片情况;如何避免IP分片(在应用层或传输层做限制);确定分片顺序;确定分片是否全部到达。
(3)掌握IP选路。会看路由表。Route print 。路由表每个字段的含义
(4)掌握ICMP(因特网控制报文协议):(理解为网络层和传输层的中间协议)报文格式;2种查询报文+5种差错报文。
子网掩码的作用
1、用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上;
2、用于将一个大的IP网络划分为若干小的子网络。