目录
- 易混淆
- 物理层
- 数据链路层
- 网络层
- nat如何实现私有ip通信
- IP数据报 格式解析
- tcp 连接
- tcp流量控制
- 滑动窗口
- 拥塞控制
- 报文捕获 wireshark
- 路由模拟器 ensp
- cdn
- 代理服务器 VS cdn VS web cache
- 计算机有了物理地址,为什么还要有ip地址?
- 单播 多播 广播
- 传输层
- 会话层:
- 表示层
- 应用层
- 一个例子
来源:
https://blog.csdn.net/IT__learning/article/details/117827605
https://www.zhihu.com/question/19718686/answer/185348786
https://juejin.cn/post/6844904079974465544
计算机网络的目标:
一台计算机与另一台计算机可以通信
通信 = 交流 = 发数据
我的数据太大,就要分批次,一批一批的发送
煤矿的煤,一车一车的运出去
https://www.yuque.com/andanlandian/sts3a5/rczr4b#SNsow
易混淆
电信的路由器和家用的路由器 不一样
物理层
把计算机连接起来,在计算机之间传输 0 1 这样的电信号 = 将数据转化为物理信号
数据链路层
物理层的01信号是没有规律的,无法解读
数据链路层 制定一套规则来进行01的传送
例如多少个电信号为一组,每一组信号应该如何标识,才能让计算机读懂。于是,有了以太网协议
以太网协议规定,一组电信号构成一个数据包,我们把这个数据包称之为帧
一台计算机的的数据通过物理层、链路层发送给另一台计算机,究竟是谁发给谁的,计算机与计算机之间如何区分,你总得给他们一个唯一的标识吧?于是,MAC 地址出现
连入网络的每一个计算机都会有网卡
接口,该接口有一个唯一的地址 = MAC 地址。
计算机之间的数据传送,通过 MAC 地址来唯一寻找 传送
计算机传出的数据,经过网卡,就会变为以太网的帧
ARP协议帮你找MAC地址
网络层
让我们在茫茫人海中,能够找到另一台计算机在哪里,是否属于同一个子网
实际上我们所处的网络,是由无数个子网络构成的
路由器,又叫分组交换机,就是帮我们在公网里,做IP寻址
连接两个不同的网络的设备都可以叫网关,是一个概念
网关在网段内的可用ip中选一个,不过,一般用的是第1个和最后一个
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用
DNS 把域名解析为IP地址
当你接入局域网的时候,自动由这个dhcp服务器给你分配ip
NAT(网络地址转换)出现,于是专用网的IP不再占用公网IP,
解决私有ip地址无法跟外网交互
专用网 = 私有ip
1.局域网,比如,公用一个路由器的宿舍啊,家
2.部分广域网,比如军队、铁路、交通、电力等部门,拥有自己专用的通信网和计算机
nat如何实现私有ip通信
https://www.yuque.com/fcant/network/ygyqhoclkvt9wv6r
私有IP地址:
10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
192.168.0.0 - 192.168.255.255 (192.168.0.0/16)
ip/16的16是子网掩码的位数
IP协议并不提供可靠传输,ICMP协议解决该问题
因特网控制报文协议ICMP(Internet Control Message Protocol)
IP数据报 格式解析
https://c.biancheng.net/view/9801.html
tcp报文
IPV6
https://blog.csdn.net/qq_40893824/article/details/103850415
IP地址 = 网络号 + 主机号
中国 · 湖北
网络掩码 & IP = 网络地址
tcp 连接
https://www.yuque.com/liuyanntes/puc7d7/syhar1
建立连接,3次握手
关闭连接,4次握手
SYN洪泛攻击:
重复发送请求连接,仅完成前两次握手,服务器半挂起状态 ,浪费资源
RFC793文档:带有SYN标志的过程包 不可以携带数据,3次握手的前2次是不可以携带数据的,第3次可以携带数据
tcp流量控制
滑动窗口
https://www.yuque.com/huiyizenmoqian/xfg28q/kdt1sp
解决 TCP 每发送⼀个数据,都要进行一次确认应答
发送方的滑动窗口
接收方的滑动窗口:
通常窗口的大小是由接收方的窗口大小来决定的
拥塞控制
https://www.bilibili.com/video/av83688722
报文捕获 wireshark
路由模拟器 ensp
https://forum.huawei.com/enterprise/zh/thread/580883406487699456
下载地址
https://e.huawei.com/cn/ 直接搜“emsp”
https://forum.huawei.com/enterprise/zh/thread/580924417729511424
cdn
假如中国没有“墙”,小明要访问美国白宫的网站,并查看里面的视频
视频从美国过来,观感将无比卡顿
cdn解决这个问题
https://www.akamai.com/zh/glossary/what-is-a-cdn
CDN(内容交付网络),Content Delivery Network
CDN 在多个地理位置建立 入网点(pop)
CDN 将这个美国白宫的网站内容的缓存版本存储在世界各地的多个地理位置 (pop)
代理服务器 VS cdn VS web cache
参考:https://blog.csdn.net/wanderlustLee/article/details/84110051
https://www.zhihu.com/question/382841504/answer/2649877805
万维网高速缓存web cache 包含 cdn
https://www.cnblogs.com/jimodetiantang/p/9154716.html
CDN是内容分发网络(Content Delivery Network),解决用户请求响应过慢的问题。
比如用户在黑龙江,服务器在海南,用户请求的速度可能受距离、带宽的影响。
CDN将几台机器分发在全国各地,用户发出的请求会选择就近的CDN服务器进行处理
CDN 可以提前把数据存在离用户最近的数据节点,从而避免长途跋涉经过长途骨干网,最终减少骨干网负担、提高访问速度
cdn缓存是一种服务端缓存
cdn ≠ cdn缓存
反向代理
一般指Nginx,是在主服务器之外加一层代理服务器
正向代理和反向代理的关键区别在于:
前者由客户端使用,例如专用网络内的用户
而后者由互联网服务器使用
正向代理:代理端代理的是客户端。
反向代理:代理端代理的是服务端。
https://juejin.cn/post/6844903800365383687
https://juejin.cn/post/7166079111578779655
HTTP缓存机制(浏览器和CDN)
https://blog.csdn.net/Kim_Weir/article/details/88121134
没有CDN:浏览器缓存
使用了CDN:浏览器缓存+CDN缓存
计算机有了物理地址,为什么还要有ip地址?
这是一个回马枪的问题
https://mp.weixin.qq.com/s/jiPMUk6zUdOY6eKxAjNDbQ
https://www.zhihu.com/question/21546408
一个网络下的ip前缀一样,消息容易转发过来,
如果是物理地址,不同计算机的物理地址前缀差别很大,且不能修改,不易转发
单播 多播 广播
https://info.support.huawei.com/info-finder/encyclopedia/zh/组播.html
单播:一对一
单播:一对=多
广播:主机间一对所有的通讯模式
传输层
有了物理层、数据链路层、网络层,我们已经把数据成功从计算机A传送到计算机B了
计算机B里面有各种各样的应用程序,计算机该如何知道这些数据是给谁
端口(Port)出来了,我们在从计算机 A 传数据给计算表B的时候,还得指定一个端口,以供特定的应用程序
来接受处理
传输层的功能:建立端口到端口的通信
端到端 vs 点到点
https://www.cnblogs.com/beyond_dxb/p/8304093.html
传输层是领导发指令,关心开始和最终的地址 - 端对端
网络层是实现指令,一步一步实现
具体就是数据链路层 - 点对点
会话层:
通讯会话的建立与拆除
表示层
信息转为一定格式
解压缩,加密解密
应用层
虽然我们收到了传输层传来的数据,可是这些传过来的数据五花八门,有 html 格式的,有 mp4 格式的,各种各样
我们需要指定这些数据的格式规则,收到后才好解读渲染
C/S:
P2P:
TCP连接有两种工作方式:短连接方式(Short-Live Connection)和长连接方式(Long-Live Connection)
互联网包含因特网,因特网包含万维网
国际标准的互联网写法是internet,字母i一定要小写
万维网,只要应用层使用的是HTTP协议,就称为万维网(World Wide Web)
万维网使用统一资源定位符作为标识符来访问资源
一个例子
在浏览器中输入 www.baidu.com 后执行的全部过程:
在客户端浏览器中输入http://www.baidu.com,baidu.com为要访问的服务器:
1)客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层
2)在客户端的传输层,把HTTP会话请求分成报文段
,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端
3)客户端的网络层不关心应用层、传输层的东西,主要是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,不作过多的描述,无非就是通过查找路由表决定通过哪个路径到达服务器
4)客户端的链路层,包通过链路层发送到路由器,通过邻居协议ARP 查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。