计算机网络查漏补缺

这篇文章相对来说就是自己复习总结了,可能知识点就不是特别成体系,想到哪补哪吧。

  • 协议相关

  • 应用层协议
  1. HTTP/HTTPS协议:前者占用的80端口,后者是443端口;后者采用SSL(安全套接字层),以及加密算法/证书来保护安全性,相对来说在传输上花费的时间更长。SSL能用于所有基于TCP的应用上,因此二者都采用了TCP作为支撑。 
  2. SMTP协议:(1)端口号:25 (2)用途:7位ASCII码,用于邮件传输 (3)SMTP协议是一个推协议,即专注于传输,而取回邮件需要靠POP3(第三版邮局协议-Post Office Protocol-Version 3)
  3. FTP协议: (1)端口号:21  (2)用途:文件传输 (3)特点:带外传输,即有两条并行的TCP连接,一条是控制连接用于传输在主机间传输控制信息;另一条是数据连接,用于实际传输一个文件的数据信息。
  4. HTTP协议: (1)HTTP还是一个无状态协议。 (2)可以选择持续连接和非持续连接;持续连接可以一个接一个的发送请求而不必等待回答。 (3)是带内控制协议,因为它不像FTP有一条独立的控制连接用于传输控制信息。 (4)HTTP是拉协议
  5. HTTPS建立过程:1)客户端发起 https 请求(就是用户在浏览器里输入一个 https 网址,然后连接到 server的 443 端口)   2)服务端的配置(采用 https 协议的服务器必须要有一塔数字证书,可以自己制作,也可以向组织申请,这套证书就是一对公钥和私钥)。    3)传输证书(这个证书就是公钥,只是包含了很多信息)      4)客户端解析证书(由客户端 tls 完成,首先验证公钥是否有效,若发现异常,则弹出一个警示框,提示证书存在问题,若无问题,则生成一个随机值,然后用证书对随机值进行加密)    5)传输加密信息(这里传输的是加密后的随机值,目的是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密了)      6)服务端解密信息(服务端用私钥解密后得到了客户端传来的随机值,then 把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全)     7)传输加密的信息8)客户端解密信息,用随机数来解。

  • 传输层协议

  • TCP协议和UDP协议的区别
  1. TCP提供可靠传输服务;UDP不提供不必要的服务
  2. TCP提供吞吐量(最小传输带宽)/定时服务(游戏方面),流控制(即发送方不会淹没接收方)
  3. 安全性,如前面提到的SSL,就是运行在TCP上面的。
  4. TCP报头固定长度为20字节,UDP报头为8字节(源/目的端口号、长度、检验和)
  5. TCP提供流量控制,通过滑动窗口协议对双方维护一个接收窗口,使得发送方同时发送的分组数量受限于窗口 大小,而窗口大小受限于接收方缓存大小;这种传递依赖关系使得发送方不会淹没接收方。
  6. TCP提供拥塞控制,是端到端拥塞控制。有两个主要版本Tahoe/Reno;共同点是它们在遇到超时的情况下都是将窗口大小置为1,阈值置为1/2;区别是Reno在冗余ACK的情况下,将窗口大小置为窗口大小的一半+3MSS,即CWND=SSh/2+3mss。
  7. UDP提供差错检验但不提供差错恢复。
  8. 传输层是端到端传输,即比如我上百度,是我的端系统(主机),到百度服务器之一的端,忽略了中途经过的其他路由啊,CDN啥的,是一种逻辑抽象。端到端是建立在网络层点到点上面的。

  • TCP协议三次握手
  1. 为啥不是两次?TCP是可靠传输,而且是全双工的。两次只能保证客户端到服务端是通的,但不能保证服务端到客户端是可靠的。形象化就是:客户端:你好了没;服务端:我好了,你好了没。——此时客户端因为只有两次握手,所以不会应答,则不能保证是通的。
  2. 为啥不是四次? 因为三次就能保证,在两次的基础上是全双工而且是可靠的,多来一次纯属浪费- -
  3. ACK和Seq,ACK是确认号,发过去就是下一次握手Seq号,同时也是上一次传过来的Seq+1;Seq=ACK。
  • TCP协议四次挥手:
  1. 同样的,因为是全双工,所以要两条路径的传输都关闭;客户机和服务机都可以提出关闭请求。
  2. 开始是一方提出关闭,发出Fin,另一方回传ack,表示收到关闭请求,这时候发送方到接收方的路径已经关闭不再传输资源;这已经是两次握手了。接下来是继续由接收方传送未传输完的数据,在传输完成后,接收方向发送方发出FIN,表示我这里传完了;发送方发出ACK,表示收到,并会定时等待2个MSS(最大报文长度)的时间,到时间后如果没有重传要求,那么TCP连接就在经历四次握手后顺利关闭。
  3. 定时关闭:为什么要等待2个MSS?因为TCP有差错恢复,就是回退N步和选择重传的结合;一个MSS是最坏情况(超时),那么重新发送;这一来一回就需要两个MSS保证ACK被对方正确收到,这样才能完全关闭。
  • 网络层协议
  1. 主要就是和IP相关的,比如IP/IPX/ICMP等等。。。
  2. IP协议:尽力而为的服务,实际上还是不可靠的。
  3. 子网划分:这个基本都是一些计算题,就不单列出来了。有几个子网,看向主机位借了几位,比如是一个C类地址,/28,那就是28-24=4位,借来了4位主机位;子网=2^4=16个子网,主机数=256/16-2=14个主机地址(广播不能用)。
  4. NAT协议,从私有地址转换为公网地址;DHCP动态主机配置,这个不用多说。
  5. ICMP,控制报文协议,主要用于差错报告和回显请求。
  • 链路层协议
  1. MAC协议:注意以太网帧是含有目的MAC地址的
  2. 多路访问协议:(1)信道划分协议 (2)随机接入协议 (3)轮流协议
  3. 信道划分协议:(1)频分多路复用 (2)时分多路复用 (3)CDMA 码分多址 信道划分协议的前两者的缺点是:受限于R/N的平均速率,还有就是假设多个节点中仅有少量一两个节点需要传输分组,表现很差。  优点:避免了冲突碰撞
  4. 随机接入协议:(1)纯ALOHA协议 (2)时隙ALOHA (3)载波侦听 CSMA (4)带碰撞检测的载波侦听 (CSMA/CD)最常用  优点:单点通信效果好,多了就效率下降。
  5. 时隙ALOHA和纯ALOHA的区别:(1)纯ALOHA是有帧就传,碰撞就重传,说白了就刚。 (2)时隙ALOHA比较文雅,有帧先不急着传,等下一帧开始传;如果下一帧没有碰撞,就成功传出去;否则继续等待下一帧,以概率p进行重传。  (3)共同点:对信道划分协议不擅长的——单点通信情况表现良好。
  6. CSMA/CD:特点,更加文雅,传之前先侦听信道,有没有要传的,没有的情况再传。如果传到一半,发现诶,有其他人要传,立即停止传输。
  7. 轮流协议:(1)轮询协议  (2)令牌传递协议
  8. 轮询协议:指定一个为主节点,由主节点轮询其他节点,它能传输的最大帧数量。消除了随机接入协议的碰撞和空时隙;缺点是如果出现主节点单点故障,全部拉闸,还有就是单点通信性能不行。
  9. 令牌协议:谁拿到令牌(虎符),谁就能调兵遣将。

  • 算法相关

  • 可靠传输RDT3.0流水线协议:
  1. 流水线差错恢复两种基本方法:回退N步和选择重传
  2. 个人觉得这种区别有些像串中的普通解法和KMP算法的区别,一个是会回溯,另外一个是会利用已知条件,总是在增长。
  3. 回退N步:又被称为“滑动窗口协议”,即限制已发送和未发送的分组数量为N,原因之一是TCP还提供流量控制,发送方不会淹没接收方。 从失序后的分组全部会被丢弃并重新发送。
  4. 选择重传:并不是万金油,如果窗口长度太大,在某些失序情况下,不能判断究竟是重传还是后面分组的初次传输。
  5. TCP采用的是回退N步和选择重传的混合。
  6. 触发重传有两种可能:超时、触发三个冗余ACK;前者性质更恶劣一些。
  • 拥塞控制原理
  1. 拥塞控制有两种方法:端到端拥塞控制、网络辅助的拥塞控制(异步传输方式ATM中的可用比特率(ABR))

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值