模块一:互联网与传输层协议
01 | 漫游互联网:什么是蜂窝网络
ISP本地网络服务提供商(Internet Service Provider)
交换技术的本质,就是让数据切换路径。因为,网络中的数据是以分组或封包(Packet)的形式传输,因此这个技术也称作封包交换技术(Packet Switch)。
移动网络(无线信号构成了通信链路)核心(蜂窝塔即基站) 正六边形结构
家用网络结构,家用电器蓝牙控制器,因为便宜的物联网设备不上wifi芯片上便宜的蓝牙芯片。
网络基础设施往往不能一次性传输太大的数据量,因此通常会将数据分片传输。如果一个封包损坏,只需要重发损坏的封包,而不需要重发所有数据。
02 | 传输层协议TCP:TCP为什么握手是3次,挥手是4次?
TCP(Transport Control Protocol)传输层协议,host-to-host数据的可靠传输,支持全双工,是连接导向的协议。
TCP要实现主机到主机的通信,需要知道主机的网络地址。但是tcp不负责地址到地址的传输,把ip地址交给网络层处理。
数据链路层负责信号在两个设备间传输,物理层提供最底层的传输能力(传输介质)。
连接是网络行为状态的记录(传输层概念),会话(Session)是应用的行为(应用层)。
3次握手是因为,可以同时发syn+ack,四次挥手是因为分段发送ack跟fin。
03 | TCP的封包格式:TCP为什么要粘包和拆包?
稳定性,效率(并行线路),收发数据存在缓冲区。
Sequence Number 和 Achnowledgment Number 是保证可靠性的两个关键,发送接受了多少数据。针对对方。
Checksum 是校验和,用于校验 TCP 段有没有损坏。
Data Offset偏移量,表达数据从哪个字节开始。
滑动窗口最关键的功能,保证TCP稳定性跟流量控制工具
04 | TCP的稳定性:滑动窗口和流速控制是怎么回事?
快速重传(催促机制):1,2,4到了3没到,就会多次发送3的ack,接收方收到多段3的ack会重发3.
发送、接收窗口的大小可以用来控制TCP 协议的流速。
实际操作中窗口大小单位是字节数。
05 | UDP协议:TCP协议和UDP协议的优势和劣势?
UDP(User Datagram Protocol),目标是在传输层提供直接发送报文的(Datagram)能力。Datagram是传输的最小单位。
源目端口,消息长度,Checksum校验和。
相比TCP,UDP很简单。
HTTP3.0开始使用UDP。
TCP与UDP区别:
提供可靠传输 |
提供报文交换能力 |
可靠性好 |
只管发送数据包 |
面向连接 |
无连接,随时 |
流速控制 |
无 |
比较而言慢 |
传输更快 |
不适合高速传输场景 |
流媒体,网络游戏,单次请求/返回 |
TCP/UDP边界开始模糊,理论上任何一个TCP协议构成的应用协议都可以用UDP重构。
TCP 的成功在于它给人们提供了很多现成、好用的能力。UDP 最核心的价值是灵活、轻量、传输速度快。
模块二:网络层协议
06 | IPv4 协议:路由和寻址的区别是什么?
IP协议会遇到的问题:
封包损坏(数据传输过程中被损坏);
丢包(数据发送过程中丢失);
重发(数据被重发,比如中间设备通过 2 个路径传递数据);
乱序(到达目的地时数据和发送数据不一致)。
主要问题:延迟,吞吐量 bps,丢包率
IP协议的工作原理
接收IP协议上方的host-to-host协议传来的数据,进行拆分:分片!
IP协议,给数据封包增加一个协议头。
Type Of Service 服务的类型 四种!
低延迟,高吞吐量,低丢包率,低成本
Identification(报文的 ID),发送方分配,代表顺序。
寻址:找到顶层网络——下层——再下级——定位设备
路由:目的在其他局域网中,通过网关连接,通往下个网络的路径,选择其中一个网关。
07 | IPv6 协议:Tunnel 技术是什么?
跟IPV4一样的原理。最核心的能力是确保数据可以从发送主机到达接收主机。
8个16位总共128位。16进制表示,可以省略前64bit的0,只能出现一次::./数字,只有数字位有数据其他都是0。
IPv6寻址
全局单播寻址:一对一 (定位网络中的设备)
站点前缀,48bit,ISP或者RIR分配。
子网号:16bit,用于站点内部分子网。
接口号:64bit,用于站点内部分设备。
本地单播:类似ipv4的一个内部网络,要求地址必须以fe80开头,类似我们 IPv4 中127开头的地址
很多公司还是需要一个内部网络的。这种情况在 IPv6 的设计中属于局域网络。 后面 64 位的 0,然后接上 54 位的设备编号。
分组多播:广播,将消息发送给多个接受者
IPv6 中设计了分组多播,来实现广播的能力。当 IP 地址以 8 个 1 开头,也就是ff00开头,后面会跟上一个分组的编号时,就是在进行分组多播。
任意播
本质是将消息发送给多个接收方,并选择一条最优的路径。
ipv6跟ipv4兼容情况
之间互相通信:dns查询dns64,通过nat64路由器将ipv6地址转换为ipv4。
两个ipv6被ipv4隔离:隧道!Tunnel
解决了的问题:地址耗尽,减少子网,更小的封包头体积,提升了性能
08 | 局域网:NAT 是如何工作的?
局域网数据交换(mac地址)
设备间通信的本质是设备拥有的网卡间进行通信。ITEF要求每个设备拥有一个唯一的编号MAC地址。
网卡网卡间需要交换机跟网线。
MTU,最大传输单元。链路层网络允许的最大传输数据组大小。因此IP协议要根据MTU拆分封包。
MSS,最大段大小。传输层概念
ARP(地址解析协议)
逐级缓存的设计减少arp请求。
本地—广播查询—交换机——广播给其他接口
缓存的失效时间,更新策略,数据结构
网络接口发送数据需要三个字段,源目mac跟数据。
家用路由器也具备交换机功能,但是当arp表很大,还是需要专门的交换设备。
内网,通过路由器转发,源目mac地址会变换。
连接外网(NAT技术,网络地址转换技术)
私有ip通过nat转换为公网ip发送给服务器。最核心的能力,就是能够将内网中某个 IP 地址映射到外网 IP,然后再把数据发送给外网的服务器。1.NAT需要作为一个中间层替换IP地址 2.NAT需要缓存内网IP地址,出口IP+端口的对应关系
链路层发送数据靠的是mac地址