B0004 计算机网络从底层到顶层

作者: 亮光 分类: 编程学习 发布时间: 2026-07-12 15:29    浏览: 3次

网络三部曲合集:
网络是怎么传输的?
网络是怎么可靠的?
网络是怎么安全的?

网络是怎么传输的?(前三层:物理层,数据链路层,网络层)

多个计算机两两互联,理论可行,成本太高,连线太乱。

集线器(物理层):

把一个计算机的数据包无脑转发到所有计算机。问题:两个计算机的数据包被所有人看到。

交换机(数据链路层):

内部维护一张MAC地址表,记录某个设备对应的端口。a发给b数据包(带上mac地址头)只能发两个人,不会所有端口全发。问题:交互机a与交换机b连接后,a要维护的MAC地址表要把端口号与b中的所有mac地址对上,维护成本太高。

路由器(网络层):

每个端口都有独立的mac地址,交换机a的端口只要多一个路由器端口的mac地址就行了。交换机的mac表维护简化了。问题:交换机a可以把发给交互机b的数据先全部发给路由器,但是如何区分发给交换机b的数据尼,总不能又回到原来把所有交换机b上的电脑mac地址都记下来吧。

IP地址:区分交换机a与交换机b上的计算机。网段(子网)不同就是不同的交换机下的设备。a发b的数据包(带上ip地址头)

路由器可以连接不同的子网,默认网关就是指路由器,当计算机a发现数据包不是发给自己网内的计算机时,就发给默认网关其实就是发给路由器。计算机a中有一个ARP表记录mac地址与IP地址对应关系。

路由器中有路由表,不同端口对应不同网段的IP子网。

路由器中也有ARP表,记录IP与mac地址的对应。

网络是怎么可靠的?(网络层)

前面是网络的前三层(物理层,数据链路层,网络层),但是计算机b中有很多进程到底发给哪个进程的尼?

开始进行可靠设计,形成传输层。

进程端口号:给计算机b中的每个进程一个端口号,区分不同进程。

停止等待协议:没有回复就重传,有回复才发下一个包。

累计应答:流水线发送,流水线应答。可能包的顺序会乱。

滑动窗口:两边发送自己的数据处理能力,调整发送接收速度。

拥塞窗口:计算机a测试网络处理包的能力。

三次握手:确认两边的状态。

数据包如何理解?(应用层)

  • 对应 OSI: 应用层 + 表示层 + 会话层
  • 核心职责: 直接面向用户和应用程序。它定义了软件之间交流的“语言”和格式,比如网页怎么排版、邮件怎么写、文件怎么下载。
  • 代表技术/协议: HTTP/HTTPS(网页浏览)、DNS(域名解析)、FTP(文件传输)、SMTP(发邮件)。
  • 通俗比喻: 你写的“信件内容”,以及你使用的语言格式。

网络是怎么安全的?(应用层的https协议)

对称加密:一把钥匙M对一把锁m。问题:钥匙怎么传递尼?

非对称加密:

两把钥匙一把锁,A钥匙加锁,只能B钥匙解锁,反之亦然。计算机a有A(私钥),B(公钥)两个钥匙,先把钥匙B(公钥)给计算机b,中间钥匙B(公钥)被人偷了没关系,b发的数据只有A(私钥)能解锁。总结:谁拿到我的公钥,谁就能安全的发数据给我。

中间人攻击:用非对称加密传对称加密的钥匙,很好。问题:第一次发送公钥时,中间人发扣留公钥,伪造一个自己的公钥,骗两边尼?

签名:在传输私钥A的公钥B前,再用一套私公钥C/D。用私钥C加密传输(公钥B)也就是签名。对方用公钥D解出公钥B也就是验证签名。之后再用私公钥A/B传输对称加密的钥匙M。问题:公钥D变成公开之后,又怎么办尼?

可信第三方:用来加密解密的C/D钥匙放在第三方。CA:证书颁发机构。

您的支持将鼓励我继续创作

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

标签云