网络是怎样连接的

微信读书
有基础看这个会很快,不看很细的情况下,一天足够看完了。
耗时:3天

笔记

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
《网络是怎样连接的》

户根勤
228个笔记

第五章 内容提要

◆ 从在浏览器中输入网址开始,一路追踪了到显示出网页的内容为止的整个过程,以图配文,讲解了网络的全貌


第一十章 探索之旅路线图

◆ 2024/02/26发表想法

2024-02-26 11:34:26 路线图

原文:探索之旅路线图[插图]

◆ 探索之旅路线图[插图]


第一十一章 网络是怎样连接的

◆ [插图]各章的结构


第一十三章 1.1 生成HTTP请求消息

◆ 网址,准确来说应该叫URL[插图]

◆ 除了“http:”,网址还可以以其他一些文字开头,例如“ftp:”“file:”“mailto:”[插图]等。

◆ [插图]图1.1 URL的各种格式

◆ [插图]图1.2 Web浏览器解析URL的过程


第一十四章 1.2 向DNS服务器查询Web服务器的IP地址

◆ 全0:表示整个子网全1:表示向子网上所有设备发送包,即“广播”

◆ 相比IP地址来说,网址中还是使用服务器名称比较好

◆ 向DNS服务器发送消息时,我们当然也需要知道DNS服务器的IP地址


第一十五章 1.3 全世界DNS服务器的大接力

◆ [插图]图1.14 DNS服务器的基本工作

◆ [插图]图1.16 DNS服务器之间的查询操作

◆ 查询的域名不存在时,“不存在”这一响应结果也会被缓存。


第一十六章 1.4 委托协议栈发送消息

◆ 2024/02/26发表想法

2024-02-26 13:29:50 HTTP 1.1,所有请求完成后,浏览器主动断开连接

原文:对于同一台服务器来说,重复连接和断开显然是效率很低的,因此后来人们又设计出了能够在一次连接中收发多个请求和响应的方法。在HTTP版本1.1中就可以使用这种方法,在这种情况下,当所有数据都请求完成后,浏览器会主动触发断开连接的操作。

◆ 对于同一台服务器来说,重复连接和断开显然是效率很低的,因此后来人们又设计出了能够在一次连接中收发多个请求和响应的方法。在HTTP版本1.1中就可以使用这种方法,在这种情况下,当所有数据都请求完成后,浏览器会主动触发断开连接的操作。


第一十七章 CoIumn网络术语其实很简单

◆ 2024/02/26发表想法

2024-02-26 13:33:53 思路出结果

原文:词汇是人类创造的,如果能理解词汇创造者的思路,也就能理解这个词的真正含义。

◆ 词汇是人类创造的,如果能理解词汇创造者的思路,也就能理解这个词的真正含义。


第二十章 2.2 连接服务器

◆ 2024/02/26发表想法

2024-02-26 14:59:10 连接,为了知道与谁进行通信

原文:“我想和你开始通信,我的IP地址是xxx.xxx.xxx.xxx,端口号是yyyy。”可见,客户端向服务器传达开始通信的请求,也是连接操作的目的之一。

◆ “我想和你开始通信,我的IP地址是xxx.xxx.xxx.xxx,端口号是yyyy。”可见,客户端向服务器传达开始通信的请求,也是连接操作的目的之一。


第二十一章 2.3 收发数据

◆ MTU表示一个网络包的最大长度,在以太网中一般是1500字节

◆ 是否成功收到

◆ 没收到时进行重发

◆ 返回ACK号的等待时间(这个等待时间叫超时时间)。

◆ 2024/02/26发表想法

2024-02-26 15:46:41 滑动窗口解决ack等待问题

原文:滑动窗口,就是在发送一个包之后,不等待ACK号返回,而是直接发送后续的一系列包。这样一来,等待ACK号的这段时间就被有效利用起来了。

◆ 滑动窗口,就是在发送一个包之后,不等待ACK号返回,而是直接发送后续的一系列包。这样一来,等待ACK号的这段时间就被有效利用起来了。

◆ 包也会被暂存在接收缓冲区中

◆ 2024/02/26发表想法

2024-02-26 15:49:12 缓存区暂存。溢出则不接收

原文:缓冲区溢出之后,后面的数据就进不来了,因此接收方就收不到后面的包了,这就和中途出错的结果是一样的,也就意味着超出了接收方处理能力。

◆ 缓冲区溢出之后,后面的数据就进不来了,因此接收方就收不到后面的包了,这就和中途出错的结果是一样的,也就意味着超出了接收方处理能力。

◆ 2024/02/26发表想法

2024-02-26 16:58:39 接收方取出缓冲区,才通知发送方更新窗口大小

原文:什么时候需要更新窗口大小呢?当收到的数据刚刚开始填入缓冲区时,其实没必要每次都向发送方更新窗口大小,因为只要发送方在每次发送数据时减掉已发送的数据长度就可以自行计算出当前窗口的剩余长度。因此,更新窗口大小的时机应该是接收方从缓冲区中取出数据传递给应用程序的时候。这个操作是接收方应用程序发出请求时才会进行的,而发送方不知道什么时候会进行这样的操作,因此当接收方将数据传递给应用程序,导致接收缓冲区剩余容量增加时,就需要告知发送方,这就是更新窗口大小的时机。

◆ 什么时候需要更新窗口大小呢?当收到的数据刚刚开始填入缓冲区时,其实没必要每次都向发送方更新窗口大小,因为只要发送方在每次发送数据时减掉已发送的数据长度就可以自行计算出当前窗口的剩余长度。因此,更新窗口大小的时机应该是接收方从缓冲区中取出数据传递给应用程序的时候。这个操作是接收方应用程序发出请求时才会进行的,而发送方不知道什么时候会进行这样的操作,因此当接收方将数据传递给应用程序,导致接收缓冲区剩余容量增加时,就需要告知发送方,这就是更新窗口大小的时机。

◆ 两种通知合并在一个包里面发送了。举个例子,在等待发送ACK号的时候正好需要更新窗口,这时就可以把ACK号和窗口更新放在一个包里发送,从而减少包的数量。

◆ 2024/02/26发表想法

2024-02-26 17:03:01 多ack,只发最后一个。最后位置在哪里。

原文:当需要连续发送ACK号时,只要发送最后一个ACK号就可以了,中间的可以全部省略

◆ 当需要连续发送ACK号时,只要发送最后一个ACK号就可以了,中间的可以全部省略

◆ 2024/02/26发表想法

2024-02-26 17:12:43 协议栈接收数据总结

原文:总结一下[插图]。首先,协议栈会检查收到的数据块和TCP头部的内容,判断是否有数据丢失,如果没有问题则返回ACK号。然后,协议栈将数据块暂存到接收缓冲区中,并将数据块按顺序连接起来还原出原始的数据,最后将数据交给应用程序。具体来说,协议栈会将接收到的数据复制到应用程序指定的内存地址中,然后将控制流程交回应用程序。将数据交给应用程序之后,协议栈还需要找到合适的时机向发送方发送窗口更新[插图]。

◆ 总结一下[插图]。首先,协议栈会检查收到的数据块和TCP头部的内容,判断是否有数据丢失,如果没有问题则返回ACK号。然后,协议栈将数据块暂存到接收缓冲区中,并将数据块按顺序连接起来还原出原始的数据,最后将数据交给应用程序。具体来说,协议栈会将接收到的数据复制到应用程序指定的内存地址中,然后将控制流程交回应用程序。将数据交给应用程序之后,协议栈还需要找到合适的时机向发送方发送窗口更新[插图]。


第二十二章 2.4 从服务器断开并删除套接字

◆ 协议栈在设计上允许任何一方先发起断开过程

◆ 首先,服务器一方的应用程序会调用Socket库的close程序。然后,服务器的协议栈会生成包含断开信息的TCP头部,具体来说就是将控制位中的FIN比特设为1。

◆ 当收到服务器发来的FIN为1的TCP头部时,客户端的协议栈会将自己的套接字标记为进入断开操作状态。然后,为了告知服务器已收到FIN为1的包,客户端会向服务器返回一个ACK号(图2.12②)

◆ 2024/02/26发表想法

2024-02-26 17:17:40 不能马上删除Socket,防止FIN跑到新套接字

原文:如果别的应用程序要创建套接字,新套接字碰巧又被分配了同一个端口号[插图],而服务器重发的FIN正好到达,会怎么样呢?本来这个FIN是要发给刚刚删除的那个套接字的,但新套接字具有相同的端口号,于是这个FIN就会错误地跑到新套接字里面,新套接字就开始执行断开操作了。之所以不马上删除套接字,就是为了防止这样的误操作。

◆ 如果别的应用程序要创建套接字,新套接字碰巧又被分配了同一个端口号[插图],而服务器重发的FIN正好到达,会怎么样呢?本来这个FIN是要发给刚刚删除的那个套接字的,但新套接字具有相同的端口号,于是这个FIN就会错误地跑到新套接字里面,新套接字就开始执行断开操作了。之所以不马上删除套接字,就是为了防止这样的误操作。


第二十三章 2.5 IP与以太网的包收发操作

◆ 头部后面就是委托方要发送给对方的数据,也就相当于快递包裹里的货物。

◆ IP和以太网的分工,其中以太网的部分也可以替换成其他的东西,例如无线局域网、ADSL、FTTH等,它们都可以替代以太网的角色帮助IP协议来传输网络包

◆ (1)MAC头部:以太网用的头部,包含MAC地址(2)IP头部:IP用的头部,包含IP地址

◆ 传递给网卡的网络包是由一连串0和1组成的数字信息,网卡会将这些数字信息转换为电信号或光信号,并通过网线(或光纤)发送出去,然后这些信号就会到达集线器、路由器等转发设备,再由转发设备一步一步地送达接收方。

◆ 目标地址和子网掩码[插图]都是0.0.0.0,这表示默认网关,如果其他所有条目都无法匹配,就会自动匹配这一行

◆ 在以太网中,有一种叫作广播的方法,可以把包发给连接在同一以太网中的所有设备。ARP就是利用广播对所有设备提问:“××这个IP地址是谁的?请把你的MAC地址告诉我。”然后就会有人回答:“这个IP地址是我的,我的MAC地址是××××。”

◆ 查询结果放到一块叫作ARP缓存

◆ 交换式集线器[插图]的结构普及开来,现在我们说的以太网指的都是这样的结构。这个结构看上去和(b)很像,但其实里面有一个重要的变化,即信号会发送给所有设备这一性质变了,现在信号只会流到根据MAC地址指定的设备,而不会到达其他设备了。

◆ 。IP生成的网络包只是存放在内存中的一串数字信息

◆ 2024/02/26发表想法

2024-02-26 18:00:35 网卡:IP网络包 转为 光信号

原文:负责执行这一操作的是网卡,但网卡也无法单独工作,要控制网卡还需要网卡驱动程序。驱动程序不只有网卡才有,键盘、鼠标、显卡、声卡等各种硬件设备都有。当然,不同厂商和型号的网卡在结构上有所不同,因此网卡驱动程序也是厂商开发的专用程序[插图]。

◆ 负责执行这一操作的是网卡,但网卡也无法单独工作,要控制网卡还需要网卡驱动程序。驱动程序不只有网卡才有,键盘、鼠标、显卡、声卡等各种硬件设备都有。当然,不同厂商和型号的网卡在结构上有所不同,因此网卡驱动程序也是厂商开发的专用程序[插图]。

◆ 发送信号的操作分为两种,一种是使用集线器的半双工模式,另一种是使用交换机的全双工[插图]模式。

◆ 2024/02/26发表想法

2024-02-26 18:20:09 半双工,信号碰撞,等待时间随机数

原文:在使用集线器的半双工模式中,一旦发生这种情况,两组信号就会相互叠加,无法彼此区分出来,这就是所谓的信号碰撞。这种情况下,继续发送信号是没有意义的,因此发送操作会终止。为了通知其他设备当前线路已发生碰撞,还会发送一段时间的阻塞信号[插图],然后所有的发送操作会全部停止。等待一段时间之后,网络中的设备会尝试重新发送信号。但如果所有设备的等待时间都相同,那肯定还会发生碰撞,因此必须让等待的时间相互错开。具体来说,等待时间是根据MAC地址生成一个随机数计算出来的。

◆ 在使用集线器的半双工模式中,一旦发生这种情况,两组信号就会相互叠加,无法彼此区分出来,这就是所谓的信号碰撞。这种情况下,继续发送信号是没有意义的,因此发送操作会终止。为了通知其他设备当前线路已发生碰撞,还会发送一段时间的阻塞信号[插图],然后所有的发送操作会全部停止。等待一段时间之后,网络中的设备会尝试重新发送信号。但如果所有设备的等待时间都相同,那肯定还会发生碰撞,因此必须让等待的时间相互错开。具体来说,等待时间是根据MAC地址生成一个随机数计算出来的。

◆ 每次发生碰撞就将等待时间延长一倍,最多重试10次

◆ 2024/02/26发表想法

2024-02-26 18:21:19 全双工,不会碰撞

原文:在全双工模式中,发送和接收可以同时进行,不会发生碰撞。

◆ 在全双工模式中,发送和接收可以同时进行,不会发生碰撞。

◆ 2024/02/26发表想法

2024-02-26 18:23:08 网卡,中断

原文:我们需要一种机制能够打断计算机正在执行的任务,让计算机注意到网卡中发生的事情,这种机制就是中断。

◆ 我们需要一种机制能够打断计算机正在执行的任务,让计算机注意到网卡中发生的事情,这种机制就是中断。

◆ 2024/02/26发表想法

2024-02-26 18:23:35 中断过程

原文:中断的工作过程是这样的。首先,网卡向扩展总线中的中断信号线发送信号,该信号线通过计算机中的中断控制器连接到CPU。当产生中断信号时,CPU会暂时挂起正在处理的任务,切换到操作系统中的中断处理程序[插图]。然后,中断处理程序会调用网卡驱动,控制网卡执行相应的接收操作。

◆ 2024/02/26发表想法

2024-02-26 18:25:37 网络包:分片、重组

原文:网线和局域网中只能传输小包,因此需要将大的包切分成多个小包。如果接收到的包是经过分片的,那么IP模块会将它们还原成原始的包。分片的包会在IP头部的标志字段中进行标记,当收到分片的包时,IP模块会将其暂存在内部的内存空间中,然后等待IP头部中具有相同ID的包全部到达,这是因为同一个包的所有分片都具有相同的ID。此外,IP头部还有一个分片偏移量(fragment offset)字段,它表示当前分片在整个包中所处的位置。根据这些信息,在所有分片全部收到之后,就可以将它们还原成原始的包,这个操作叫作分片重组。

◆ 网线和局域网中只能传输小包,因此需要将大的包切分成多个小包。如果接收到的包是经过分片的,那么IP模块会将它们还原成原始的包。分片的包会在IP头部的标志字段中进行标记,当收到分片的包时,IP模块会将其暂存在内部的内存空间中,然后等待IP头部中具有相同ID的包全部到达,这是因为同一个包的所有分片都具有相同的ID。此外,IP头部还有一个分片偏移量(fragment offset)字段,它表示当前分片在整个包中所处的位置。根据这些信息,在所有分片全部收到之后,就可以将它们还原成原始的包,这个操作叫作分片重组。


第二十四章 2.6 UDP协议的收发操作

◆ 2024/02/26发表想法

2024-02-26 18:26:42 TCP复杂:高效、可靠地发送。

原文:为什么要设计得如此复杂呢?因为我们需要将数据高效且可靠地发送给对方。

◆ 为什么要设计得如此复杂呢?因为我们需要将数据高效且可靠地发送给对方。

◆ 为了实现高效的传输,我们要避免重发已经送达的包,而是只重发那些出错的或者未送达的包。

◆ 音频和视频数据中缺少了某些包并不会产生严重的问题,只是会产生一些失真或者卡顿而已,一般都是可以接受的[插图]。在这些无需重发数据,或者是重发了也没什么意义的情况下,使用UDP发送数据的效率会更高。


第二十六章 第3章 从网络到网络设备——探索集线器、交换机和路由器

◆ 2024/02/27发表想法

2024-02-27 15:08:08 读完本章,还是不太懂。

https://www.bilibili.com/video/BV1Ey4y127Su/
直到看了 B站一个视频,太顶了。
集线器hub, 交换机 switch,路由器router

集线器:不知具体设备 ===> 交换机(具体设备,MAC,减少流量)
【创建网络】


路由器:IP连接。
【连接网络】


原文:从网络到网络设备——探索集线器、交换机和路由器

◆ 路由器比交换机问世时间更早

◆ (协议栈)会对丢弃的包进行重发


第二十七章 3.1 信号在网线和集线器中传输

◆ 家里用的路由器已经集成了集线器和交换机的功能

◆ 信号在网线的传输过程中,能量会逐渐损失。网线越长,信号衰减就越严重。

◆ 局域网网线使用的是双绞线,其中“双绞”的意思就是以两根信号线为一组缠绕在一起,这种拧麻花一样的设计是为了抑制噪声的影响。

◆ 2024/02/27发表想法

2024-02-27 11:33:16 噪声电流=电磁波接触金属导体

原文:噪声是如何产生的。产生噪声的原因是网线周围的电磁波,当电磁波接触到金属等导体时,在其中就会产生电流。因此,如果网线周围存在电磁波,就会在网线中产生和原本的信号不同的电流。由于信号本身也是一种带有电压变化的电流,其本质和噪声产生的电流是一样的,所以信号和噪声的电流就会混杂在一起,导致信号的波形发生失真,这就是噪声的影响。

◆ 噪声是如何产生的。产生噪声的原因是网线周围的电磁波,当电磁波接触到金属等导体时,在其中就会产生电流。因此,如果网线周围存在电磁波,就会在网线中产生和原本的信号不同的电流。由于信号本身也是一种带有电压变化的电流,其本质和噪声产生的电流是一样的,所以信号和噪声的电流就会混杂在一起,导致信号的波形发生失真,这就是噪声的影响。

◆ 信号线是用金属做成的,当电磁波接触到信号线时,会沿电磁波传播的右旋方向产生电流,这种电流会导致波形发生失真。如果我们将信号线缠绕在一起,信号线就变成了螺旋形,其中两根信号线中产生的噪声电流方向就会相反,从而使得噪声电流相互抵消,噪声就得到了抑制

◆ 信号线之间加入隔板保持距离,以及在外面包裹可阻挡电磁波的金属屏蔽网

◆ 2024/02/27发表想法

2024-02-27 11:37:40 集线器 广播,遵循以太网架构

原文:当信号到达集线器后,会被广播到整个网络中。以太网的基本架构[插图]就是将包发到所有的设备,然后由设备根据接收方MAC地址来判断应该接收哪些包,而集线器就是这一架构的忠实体现,它就是负责按照以太网的基本架构将信号广播出去

◆ 当信号到达集线器后,会被广播到整个网络中。以太网的基本架构[插图]就是将包发到所有的设备,然后由设备根据接收方MAC地址来判断应该接收哪些包,而集线器就是这一架构的忠实体现,它就是负责按照以太网的基本架构将信号广播出去

◆ 2024/02/27发表想法

2024-02-27 11:44:55 根据头部判断是不是自己,是接收,否忽略。

原文:设备在收到信号之后会通过MAC头部中的接收方MAC地址判断是不是发给自己的,如果是发给自己的就接受,否则就忽略[插图]。

◆ 设备在收到信号之后会通过MAC头部中的接收方MAC地址判断是不是发给自己的,如果是发给自己的就接受,否则就忽略[插图]。


第二十八章 3.2 交换机的包转发操作

◆ [插图]。但交换机的工作方式和网卡有一点不同。网卡本身具有MAC地址,并通过核对收到的包的接收方MAC地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方MAC地址,而是直接接收所有的包并存放到缓冲区中。因此,和网卡不同,交换机的端口不具有MAC地址[插图]。

◆ 2024/02/27发表想法

2024-02-27 11:50:00 交换机不核对MAC,直接存放缓存区。网卡有MAC,是自己接收,否则忽略。

原文:[插图]。但交换机的工作方式和网卡有一点不同。网卡本身具有MAC地址,并通过核对收到的包的接收方MAC地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方MAC地址,而是直接接收所有的包并存放到缓冲区中。因此,和网卡不同,交换机的端口不具有MAC地址[插图]。

◆ MAC地址表主要包含两个信息,一个是设备的MAC地址,另一个是该设备连接在交换机的哪个端口上。

◆ 发送方MAC地址写入地址表,以后当收到发往这个地址的包时,交换机就可以将它转发到正确的端口了。

◆ 包转发到原来的端口,通信就会出错,因此必须想办法删除那些过时的记录。

◆ 重启一下交换机就可以重置地址表

◆ 交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。

◆ 以太网的设计本来就是将包发送到整个网络的,然后只有相应的接收者才接收包,而其他设备则会忽略这个包。

◆ 2024/02/27发表想法

2024-02-27 13:11:30 双绞线,避免碰撞。全双工。

原文:使用双绞线时,发送和接收的信号线是各自独立的[插图],因此在双绞线中信号不会发生碰撞。网线连接的另一端,即交换机端口和网卡的PHY(MAU)模块以及MAC模块,其内部发送和接收电路也是各自独立的,信号也不会发生碰撞。因此,只要不用集线器,就可以避免信号碰撞了。

◆ 使用双绞线时,发送和接收的信号线是各自独立的[插图],因此在双绞线中信号不会发生碰撞。网线连接的另一端,即交换机端口和网卡的PHY(MAU)模块以及MAC模块,其内部发送和接收电路也是各自独立的,信号也不会发生碰撞。因此,只要不用集线器,就可以避免信号碰撞了。

◆ 2024/02/27发表想法

2024-02-27 13:13:53 以太网,脉冲信号填充。

原文:在以太网中,当没有数据在传输时,网络中会填充一种被称为连接脉冲的脉冲信号。在没有数据信号时就填充连接脉冲,这使得网络中一直都有一定的信号流过,从而能够检测对方是否在正常工作,或者说网线有没有正常连接。

◆ 在以太网中,当没有数据在传输时,网络中会填充一种被称为连接脉冲的脉冲信号。在没有数据信号时就填充连接脉冲,这使得网络中一直都有一定的信号流过,从而能够检测对方是否在正常工作,或者说网线有没有正常连接。

◆ 集线器会将输入的信号广播到所有的端口,如果同时输入多个信号就会发生碰撞,无法同时传输多路信号,因此从设备整体的转发能力来看,交换机要高于集线器。


第二十九章 3.3 路由器的包转发操作

◆ 因为路由器是基于IP设计的,而交换机是基于以太网设计的[插图]。

◆ 转发模块负责判断包的转发目的地,端口模块负责包的收发操作。

◆ 路由器转发模块和端口模块的关系,就相当于协议栈的IP模块和网卡之间的关系。因此,大家可以将路由器的转发模块想象成IP模块,将端口模块想象成网卡。

◆ 路由器的端口具有MAC地址[插图],因此它就能够成为以太网的发送方和接收方

◆ 端口还具有IP地址,从这个意义上来说,它和计算机的网卡是一样的

◆ 2024/02/27发表想法

2024-02-27 14:06:55 路由器接收以太网包,查询到转发目标,再把包以太网转发。(交换机只进行转发,不会成为发送或接收方)

原文:首先路由器端口会接收发给自己的以太网包[插图],然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。这一点和交换机是不同的,交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方。

◆ 首先路由器端口会接收发给自己的以太网包[插图],然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。这一点和交换机是不同的,交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方。

◆ 路由器的各个端口都具有MAC地址和IP地址。

◆ 路由器的端口都具有MAC地址,只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃。

◆ 跃点计数越小说明该路由越近

◆ 路由表中子网掩码为0.0.0.0的记录表示“默认路由”。

◆ IP头部中的TTL(Time to Live,生存时间)字段

◆ 防止包在一个地方陷入死循环

◆ 现在的互联网即便访问一台位于地球另一侧的服务器,最多也只需要经过几十个路由器,因此只要包被正确转发,就可以在过期之前到达目的地。

◆ 如果输出端口的MTU足够大,那么就可以不分片直接发送;如果输出端口的MTU太小,那么就需要将包按照这个MTU进行分片,但在此之前还需要看一下IP头部中的标志字段,确认是否可以分片[插图]。

◆ 按照输出端口MTU对数据进行依次拆分

◆ 2024/02/27发表想法

2024-02-27 14:04:12 以太网=MAC,IP外面包MAC头部。先路由器,再以太网。

原文:路由器是基于IP设计的,而交换机是基于以太网设计的,因此IP与以太网的关系也就是路由器与交换机的关系。换句话说,路由器将包的传输工作委托给交换机来进行[插图]。

◆ 路由器是基于IP设计的,而交换机是基于以太网设计的,因此IP与以太网的关系也就是路由器与交换机的关系。换句话说,路由器将包的传输工作委托给交换机来进行[插图]。

◆ IP本身不负责包的传输,而是委托各种通信技术将包传输到下一个路由器,这样的设计是有重要意义的,即可以根据需要灵活运用各种通信技术,这也是IP的最大特点。

◆ IP(路由器)负责将包送达通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的。


第三十章 3.4 路由器的附加功能

◆ 2024/02/27发表想法

2024-02-27 14:31:12 电脑直连公网

原文:公司内网需要接入互联网的时候,应该向地址管理机构申请IP地址,并将它们分配给公司里的每台设备。换句话说,那个时候没有内网和外网的区别,所有客户端都是直接连接到互联网的。

◆ 公司内网需要接入互联网的时候,应该向地址管理机构申请IP地址,并将它们分配给公司里的每台设备。换句话说,那个时候没有内网和外网的区别,所有客户端都是直接连接到互联网的。

◆ 一旦固定地址用光

◆ A、B两家公司,它们的内网是完全独立的

◆ 规定某些地址是用于内网的,这些地址叫作私有地址,而原来的固定地址则叫作公有地址

◆ 2024/02/27发表想法

2024-02-27 14:34:30 地址转换。内网连通公网

原文:内网部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫地址转换。

◆ 内网部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫地址转换。

◆ [插图]图3.17 私有地址和公有地址分别管理

◆ 具有私有地址的设备就也可以访问互联网了。从互联网一端来看,实际的通信对象是地址转换设备(这里指的是路由器)。

◆ 改写端口号正是为了解决这个问题。客户端一方的端口号本来就是从空闲端口中随机选择的,因此改写了也不会有问题。

◆ 一个公有地址就可以对应几万个私有地址

◆ 只能向和互联网通信中使用的那个端口发送网络包,无法向其他端口发送包。也就是说,除非公司主动允许,否则是无法从互联网向公司内网发送网络包的。这种机制具有防止非法入侵的效果。

◆ 包过滤也是路由器的一个重要附加功能

◆ 2024/02/27发表想法

2024-02-27 14:47:15 路由器功能:包过滤,可以做防火墙。

原文:包过滤就是在对包进行转发时,根据MAC头部、IP头部、TCP头部的内容[插图],按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的[插图]。

◆ 包过滤就是在对包进行转发时,根据MAC头部、IP头部、TCP头部的内容[插图],按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的[插图]。


第三十三章 4.1 ADSL接入网的结构和工作方式

◆ 和家庭、公司网络一样,互联网也是通过路由器来转发包的

◆ 2024/02/27发表想法

2024-02-27 15:53:25 互联网可不是用的以太网线

原文:互联网可不能这么搞,因为你家到最近的电话局至少也有几公里的距离,而从日本连接到美国甚至要跨越太平洋,用以太网线是无法实现这种连接的。

◆ 互联网可不能这么搞,因为你家到最近的电话局至少也有几公里的距离,而从日本连接到美国甚至要跨越太平洋,用以太网线是无法实现这种连接的。

◆ 互联网也是根据路由表中的记录来判断转发目标的,但路由表记录的维护方式不同

◆ 互联网接入路由器是按照接入网规则来发送包的。

◆ 2024/02/27发表想法

2024-02-27 16:23:55 手机是如何接入互联网的呢?

手机通常不使用上述提到的接入网方式。手机上网主要依赖的是无线通信技术,比如:

3G/4G/5G网络:这些都是移动通信技术的不同代,每一代的速度和连接质量都有所提升。就像你有一辆车,最开始是3G的小轿车,到了4G变成了跑车,而5G则是超级跑车,速度飞快。

Wi-Fi:这更像是在家里或咖啡店里的一个小型无线网络区域。只要你的手机进入这个区域,就可以通过这个小网络连接到互联网,速度也很快。

所以,当我们在家里、公司或是公共场所使用手机上网时,大多数情况下是通过Wi-Fi接入互联网的。而在户外或是没有Wi-Fi的情况下,手机则通过3G/4G/5G网络来接入互联网。

原文:所谓接入网,就是指连接互联网与家庭、公司网络的通信线路[插图]。一般家用的接入网方式包括ADSL[插图]、FTTH[插图]、CATV、电话线、ISDN等,公司则还可能使用专线

◆ 2024/02/27发表想法

2024-02-27 16:23:24 ADSL,全称为“非对称数字用户线”,是一种利用现有的铜质电话线来提供高速上网服务的技术。

原文:ADSL

◆ ADSL

◆ 2024/02/27发表想法

2024-02-27 16:14:17 上传、下载。频段不同,波数量不同,速度不同

原文:ADSL技术中,上行方向(用户到互联网)和下行方向(互联网到用户)的传输速率是不同的,原因也在这里。如果上行使用26个频段,下行则可以使用95个或者223个频段,波的数量不同,导致了上下行速率不同。

◆ ADSL技术中,上行方向(用户到互联网)和下行方向(互联网到用户)的传输速率是不同的,原因也在这里。如果上行使用26个频段,下行则可以使用95个或者223个频段,波的数量不同,导致了上下行速率不同。

◆ 下行使用的频段较高,这些信号容易衰减而且更容易受到噪声的影响,因此这些频段可能只能表示较少的比特数,或者干脆无法传输信号。距离越远,频率越高,这种情况也就越显著,因此如果你家距离电话局太远,速率就会下降。

◆ 由于电话线必须进入很多住宅和大楼,所以电话局附近就会集结数量庞大的电缆,这么多电缆要通过电线杆引入电话局是非常不现实的,电话局周围得密密麻麻地立满了电线杆,而且电线杆上架设过多的电缆,还会产生防灾方面的问题。因此,在电话局附近,电话线都是埋在地下的。由于电话局附近的地下电缆很多,集中埋设电缆的地方就形成了一条地道,这部分称为电缆隧道


第三十四章 4.2 光纤接入网(FTTH)

◆ 光纤的结构如图4.9所示,它是由一种双层结构的纤维状透明材质(玻璃和塑料)构成的,通过在里面的纤芯中传导光信号来传输数字信息(图4.10)。ADSL信号是由多个频段的信号组成的,比较复杂,但光信号却非常简单,亮表示1,暗表示0。[插图]

◆ 先将数字信息转换成电信号,然后再将电信号转换成光信号。这里的电信号非常简单,1用高电压表示,0用低电压表示。将这样的电信号输入LED、激光二极管等光源后,这些光源就会根据信号电压的变化发光,高电压发光亮,低电压发光暗。这样的光信号在光纤中传导之后,就可以通过光纤到达接收端。接收端有可以感应光线的光敏元件,光敏元件可以根据光的亮度产生不同的电压。当光信号照射到上面时,光亮的时候就产生高电压,光暗的时候就产生低电压,这样就将光信号转换成了电信号。最后再将电信号转换成数字信息,我们就接收到数据了。

◆ [插图]图4.10 光通信的原理

◆ 不同材质的光纤其透光率和折射率也不同,纤芯的直径等因素也会影响光的传导

◆ 纤芯的直径对光的传导影响很大

◆ 如果周围没有障碍物,水面上的波纹会一直呈同心圆状扩散出去,但如果遇到两侧的墙壁,波纹就会被反射回来。这时,向墙壁前进的波和从墙壁反射回来的波就会相互叠加,其中相位相同的波相互加强,相位不同的波相互抵消。

◆ 单模和多模实际上表示相位一致的角度有一个还是多个

◆ 反射角越大的光线反射次数越多,走过的距离也就越长

◆ 2024/02/27发表想法

2024-02-27 16:40:14 单模光纤不失真不严重

原文:单模光纤则不会出现这样的问题。因为在纤芯传导的光线只有一条,不会因为行进距离的差异产生时间差,所以即便光纤很长,也不会产生严重的失真。

◆ 单模光纤则不会出现这样的问题。因为在纤芯传导的光线只有一条,不会因为行进距离的差异产生时间差,所以即便光纤很长,也不会产生严重的失真。

◆ FTTH属于后者,因此主要使用单模光纤。

◆ 用户端的光纤收发器[插图]将以太网的电信号转换成光信号。

◆ 光信号通过连接到光纤收发器的光纤直接到达BAS前面的多路光纤收发器。

◆ 多路光纤收发器将光信号转换成电信号,BAS的端口接收之后,将包转发到互联网内部。

◆ 2024/02/27发表想法

2024-02-27 17:20:27 上行下行混合:不同波长光(波分复用),棱镜原理分离

原文:前往互联网的上行光信号和前往用户的下行光信号在光纤中混合在一起,信号会变得无法识别,因此我们需要对它们进行区分,办法是上行和下行信号采用不同波长的光。波长不同的光混合后可通过棱镜原理进行分离,因此光纤中的上行和下行信号即便混合起来也可以识别。像这样在一条光纤中使用不同的波长传输多个光信号的方式叫作波分复用。

◆ 前往互联网的上行光信号和前往用户的下行光信号在光纤中混合在一起,信号会变得无法识别,因此我们需要对它们进行区分,办法是上行和下行信号采用不同波长的光。波长不同的光混合后可通过棱镜原理进行分离,因此光纤中的上行和下行信号即便混合起来也可以识别。像这样在一条光纤中使用不同的波长传输多个光信号的方式叫作波分复用。


第三十六章 4.4 网络运营商的内部

◆ ADSL、FTTH等接入网是与用户签约的运营商设备相连的,这些设备称为POP[插图],互联网的入口就位于这里。

◆ NOC[插图]是运营商的核心设备,从POP传来的网络包都会集中到这里

◆ 只有有限的几家大型运营商才拥有光纤

◆ 光纤租用服务

◆ 一条光纤并不是只能传输一条语音数据,光纤是可以复用的,一条语音数据只占其通信能力的一部分


第三十七章 4.5 跨越运营商的网络包

◆ 网络包需要先发到服务器所在的运营商,这些信息也可以在路由表中找到,这是因为运营商的路由器和其他运营商的路由器也在交换路由信息

◆ 暂且认为路由表中能找到对方运营商的路由信息,这时网络包会被转发到对方运营商的路由器。

◆ 2024/02/27发表想法

2024-02-27 17:52:40 路由信息交换(不同运营商)

原文:获得对方的路由信息之后,我们也需要将自身的路由信息告知对方。这样一来,对方也可以将发往我们所在子网的包转发过来。这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为BGP[插图]。

◆ 获得对方的路由信息之后,我们也需要将自身的路由信息告知对方。这样一来,对方也可以将发往我们所在子网的包转发过来。这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为BGP[插图]。

◆ 2024/02/27发表想法

2024-02-27 17:53:59 互联网路由交换,最短路由=收费,阻塞

原文:互联网中不能单纯采用最短路由,而是需要一种能够阻止某些来源的网络包的机制,互联网的路由交换机制就具有这样的功能。

◆ 互联网中不能单纯采用最短路由,而是需要一种能够阻止某些来源的网络包的机制,互联网的路由交换机制就具有这样的功能。

◆ 如果一个运营商走不过去,可以走另一个运营商,无论网络包要发送到什么地方,都会确保能够获取相应的路由信息。如果某个运营商做不到这一点,那它也就该倒闭了。

◆ IX

◆ [插图]图4.27 IX的必要性

◆ 自主发电设备

◆ 抗震

◆ IX的核心是具有大量高速以太网[插图]端口的二层交换机

◆ 路由器发送网络包时,先通过ARP查询下一个路由器的MAC地址,然后将其写入MAC头部发送出去即可


第三十八章 CoIumn网络术语其实很简单

◆ 服务器也可以当路由器来用吗?队长:这有什么大惊小怪的,只要有相应的软件,计算机什么都能干。

◆ 只要安装了路由器软件,计算机也可以当路由器来用。

◆ 现在的计算机也可以当路由器用哦。Linux等UNIX系操作系统都内置了路由功能,Windows Server版本也具有路由功能。

◆ 让昂贵的计算机做这么简单的事太浪费了,有人就想,如果设计一种专用设备,是不是能节省成本呢?于是就有了路由器。

◆ 这是以前的事了,现在情况又不一样了。现在使用专用硬件不是为了降低成本,而是为了提高性能。

◆ 计算机需要用软件来处理网络包的转发对吧?

◆ 专用硬件可以通过芯片实现非常快速的处理,因此性能更好。

◆ 用于连接网络运营商的线路

◆ 分离器

◆ .BAS具有身份认证、向客户端下发IP地址等配置信息的功能


第三十九章 第5章 服务器端的局域网中有什么玄机

◆ 服务器到底放在哪里呢?

◆ 防火墙是通过怎样的机制保护服务器的呢?

◆ 随着访问量的增加,Web服务器的处理能力会不够用,对于访问量很大的大型网站来说,必须要考虑到这一点。如何应对这个问题

◆ 多台Web服务器来分担负载

◆ 除了在服务器端部署缓存服务器之外,在客户端也可以部署缓存服务器

◆ 内容分发服务是从缓存服务器发展而来的,它在互联网中部署很多缓存服务器,并将用户的访问引导到最近的缓存服务器上。

◆ 如何才能找到离用户最近的缓存服务器呢?如何将用户的访问引导到这台服务器上呢?


第四十章 5.1 Web服务器的部署地点

◆ 防火墙的作用类似于海关,它只允许发往指定服务器的指定应用程序的网络包通过,从而屏蔽其他不允许通过的包。


第四十一章 5.2 防火墙的结构和原理

◆ 包过滤的规则

◆ 端口号限定

◆ 控制位判断

◆ 第一个包的TCP控制位中SYN为1,而ACK为0

◆ 2024/02/28发表想法

2024-02-28 07:26:52 阻止TCP连接

原文:如果这第一个包是从Web服务器发往互联网的,那么我们就阻止它(图5.2表中的第2行)。这样设置之后,当然也不会收到对方返回的第二个响应包,TCP连接操作就失败了。

◆ 如果这第一个包是从Web服务器发往互联网的,那么我们就阻止它(图5.2表中的第2行)。这样设置之后,当然也不会收到对方返回的第二个响应包,TCP连接操作就失败了。

◆ DNS服务器的访问。DNS查询使用的是UDP协议,而UDP与TCP不同,它没有连接操作,因此无法像TCP一样根据控制位来判断访问方向。

◆ 只需要设置是否允许地址转换就可以了。

◆ 这个包会被丢弃并被记录下来

◆ 非法入侵的痕迹

◆ Web服务器在收到含有特定数据的包时会引起宕机

◆ 只有检查包的内容才能识别这种风险,因此防火墙对这种情况无能为力。


第四十二章 5.3 通过将请求平均分配给多台服务器来平衡负载

◆ 使用多台服务器来分担负载的方法更有效。这种架构统称为分布式架构

◆ 我们有3台服务器,那么每台服务器的访问量会减少到三分之一,负载也就减轻了

◆ DNS服务器来分配

◆ 轮询(round-robin),通过这种方式可以将访问平均分配给所有的服务器。

◆ 即便Web服务器宕机了,它依然可能会返回这台服务器的IP地址[插图]。

◆ 负载均衡器的IP地址代替Web服务器的实际地址注册到DNS服务器上

◆ 客户端会认为负载均衡器就是一台Web服务器,并向其发送请求,然后由负载均衡器来判断将请求转发给哪台Web服务器

◆ 2024/02/28发表想法

2024-02-28 07:57:50 负载均衡到指定服务器

原文:对HTTP规格进行扩展,在HTTP头部字段中加上用来判断相关性的信息[插图]。这样,负载均衡器就可以通过这些信息来作出判断,将一系列相关的请求发送到同一台Web服务器,对于不相关的请求则发送到负载较低的服务器了。

◆ 对HTTP规格进行扩展,在HTTP头部字段中加上用来判断相关性的信息[插图]。这样,负载均衡器就可以通过这些信息来作出判断,将一系列相关的请求发送到同一台Web服务器,对于不相关的请求则发送到负载较低的服务器了。


第四十三章 5.4 使用缓存服务器分担负载

◆ 缓存服务器是一台通过代理机制对数据进行缓存的服务器。代理介于Web服务器和客户端之间,具有对Web服务器访问进行中转的功能

◆ 正向代理[插图](forward proxy)。

◆ 由于代理在转发过程中可以查看请求的内容,所以可以根据内容判断是否允许访问

◆ 2024/02/28发表想法

2024-02-28 08:05:30 代理可识别内容,包过滤防火墙只IP+port。

原文:通过代理可以禁止员工访问危险的网站,或者是与工作内容无关的网站。包过滤方式的防火墙只能根据IP地址和端口号进行判断,因此无法实现这一目的。

◆ 通过代理可以禁止员工访问危险的网站,或者是与工作内容无关的网站。包过滤方式的防火墙只能根据IP地址和端口号进行判断,因此无法实现这一目的。

◆ 根据这个网址来转发

◆ 服务器端的缓存服务器只能向事先设置好的目标进行转发

◆ URI中的目录名与Web服务器进行关联

◆ 反向代理(reverse proxy)。

◆ [插图]。使用透明代理时,用户不会察觉到代理的存在,也不会注意到HTTP消息是如何被转发的,因此大家更倾向于将透明代理说成是缓存[插图]。


第四十四章 5.5 内容分发服务

◆ 2024/02/28发表想法

2024-02-28 08:15:44 根据CDN服务器路由表,判断距离远近,选择近的IP返回。

原文:根据图5.13路由器A的路由表,可以查出路由器A到客户端DNS服务器的路由。通过互联网内部的路由表中的路由信息可以知道先通过运营商X,然后通过运营商Y,最后到达运营商Z这样的信息,通过这样的信息可以大致估算出距离。依次查询所有路由器的路由表之后,我们就可以通过比较找出哪一台路由器距离客户端DNS服务器最近。

◆ 根据图5.13路由器A的路由表,可以查出路由器A到客户端DNS服务器的路由。通过互联网内部的路由表中的路由信息可以知道先通过运营商X,然后通过运营商Y,最后到达运营商Z这样的信息,通过这样的信息可以大致估算出距离。依次查询所有路由器的路由表之后,我们就可以通过比较找出哪一台路由器距离客户端DNS服务器最近。


第四十五章 CoIumn网络术语其实很简单

◆ 局域网英文全称叫Local Area Network


第四十六章 第6章 请求到达Wdb服务器,响应返回浏览器——短短几秒的“漫长旅程”迎来终点

◆ 路由器和交换机是不考虑请求包和响应包之间的关联的,而是将它们作为独立的包来对待,因此请求和响应是有可能通过不同的路由来传输的,具体走哪条路由,是由路由器的路由表和交换机的地址表中的配置来决定的。

章节截图

概览

请添加图片描述

第1章 - 浏览器请求

请添加图片描述

第2章 - 协议栈、网卡

请添加图片描述

第3章 - 集线器、交换机、路由器

https://www.bilibili.com/video/BV1Ey4y127Su/
直到看了 B站一个视频,太顶了。
集线器hub, 交换机 switch,路由器router
(上面笔记已经有了,在这里再放一下)

请添加图片描述

第4章 - 接入网、运营商

请添加图片描述

第5章 - 服务器局域网

请添加图片描述

第6章 - 服务器处理、响应

请添加图片描述

网络包的旅程

请添加图片描述