一、网络
网络是现代互联网文明的基础,起源于美国(ARPANET)。
网络伴随着计算机技术的发展而不断演进。CPU等大规模集成电路成本降低、性能提升,加上智能手机的普及,使移动互联网在当今时代处于主导地位。
二、物理层
物理层:负责物理连接,使用网线、光纤等介质进行数据传输。
传输数据通过电压(或光信号、电磁波)来实现:高电压表示1,低电压表示0。
传输介质种类包括:
-
铜导线(双绞线、同轴电缆)
-
光纤(光信号传输)
-
电磁波(WiFi无线网络)
-
红外传输(短距离通信)
物理层的本质:定义了一系列协议标准,将物理现象(电压、光信号、电磁波)转换为数字信号(0和1)。
三、数据链路层
数据链路层:MAC地址存在于网卡上,网卡在出厂时就被赋予一个全球唯一的MAC地址。
网络层:IP地址是人类为大规模网络传输而设计的虚拟地址。
特殊IP地址:
-
0.0.0.0:代表所有IP地址(通常用于监听所有网卡) -
127.0.0.1:本机回环地址,用于本机内部通信 -
局域网IP地址(如
192.168.x.x、10.x.x.x、172.16.x.x):仅在当前局域网内有效
数据传输过程:数据包中包含源IP、目标IP、源MAC、目标MAC和数据信息。在传输过程中,每一跳(经过一个路由器)都会更换源MAC和目标MAC,但源IP和目标IP保持不变。只要具备源IP和目标IP,借助网络层、数据链路层和物理层的协同工作,就能将数据顺利传输到目标电脑(前提是网络连通)。
每个需要网络通信的程序会被分配一个端口号(在网卡层面区分)。完整的数据包包含:源端口、目标端口、源IP、目标IP、源MAC、目标MAC、数据信息。
四、传输层
传输层:以UDP协议为例。
UDP发送100个数据包时,理想情况是 1,2,3,...,100 按顺序到达。
序号(Sequence Number) 的作用就是解决数据包的顺序问题,让接收方能按正确顺序重组数据。
五、ACK
ACK(Acknowledgment,确认应答):保证发送方知道接收方已经收到数据。
例如:发送方发第4包,如果一直收不到ACK4,就触发超时重发。
典型的 1请求-1应答 模式:
-
发1 → 收ACK1 → 发2 → 收ACK2 → 发3 → 收ACK3 → ...
一旦发现某个包一直没收到ACK,就重发该包。
六、三握四挥
上述1请求-1应答的模式是简易TCP的雏形,但效率较低。
优化方案:
-
累计应答:分组发送 1,2,3,4,5,6,7,接收方回复 "ACK7",表示 1~7 全部收到了。这种方式比逐个应答效率高。
-
滑动窗口:控制传输速率,允许发送方在未收到确认的情况下连续发送多个数据包,提高吞吐量。
-
TCP慢启动机制:发送速率从1开始,呈指数增长:1 → 2 → 4 → 8 → 16 → 32。
-
拥塞避免:达到阈值后进入线性增长(如16 → 17 → 18 → 19),一旦发生丢包则回滚,降低速率重新试探。
-
CRC纠错码:用于检测数据传输过程中是否出现错误。
TCP是面向连接的可靠传输协议,通过三次握手建立连接,四次挥手断开连接。
三次握手(建立连接):
-
A → B:发送 SYN(请求建立连接)
-
B 收到后知道 A 能发。B → A:回复 SYN+ACK
-
A 收到后知道:自己能发、B能发、自己能收、B能收。A → B:发送 ACK
此时B也确认了所有通信能力,连接建立成功。
四次挥手(断开连接):
-
A → B:发送 FIN,表示 A 的数据已经发送完毕
-
B → A:回复 ACK,表示知道 A 发完了
-
B → A:发送 FIN,表示 B 的数据也发送完毕(等待一段时间后发出)
-
A → B:回复 ACK,B 收到后确认断开成功
489



被折叠的 条评论
为什么被折叠?



