模块一:互联网与传输层协议

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地址


09 | TCP 实战:如何进行 TCP 抓包调试?(爷很会用!略过)