我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star。链接如下:https://github.com/crisxuan/bestJavaer

独立模式网络互联模式:

在独立模式下,每个人都需要排队等待其他人在一个机器上完成工作后,其他用户才能使用。这样的数据是单独管理的。现在切换到了网络互联模式,在这种模式下,每个人都能独立的使用计算机,甚至还会有一个服务器,来为老大哥、cxuan 和 sonsong 提供服务。这样的数据是集中管理的。

WAN(Wide Area Network, 广域网)LAN(Local area Network, 局域网):

上面是局域网,一般用在狭小区域内的网络,一个社区、一栋楼、办公室经常使用局域网。距离较远的地方组成的网络一般是广域网。最初,只是固定的几台计算机相连在一起形成计算机网络。这种网络一般是私有的,这几台计算机之外的计算机无法访问。随着时代的发展,人们开始尝试在私有网络上搭建更大的私有网络,逐渐又发展演变为互联网,现在我们每个人几乎都能够享有互联网带来的便利。

计算机网络发展历程:

批处理(atch Processing):

批处理就是事先将数据装入卡带或者磁带,并且由计算机按照一定的顺序进行读入。当时这种计算机的价格比较昂贵,并不是每个人都能够使用的,这也就客观暗示着,只有专门的操作员才能使用计算机,用户把程序提交给操作员,由操作员排队执行程序,等一段时间后,用户再来提取结果。这种计算机的高效性并没有很好的体现,甚至不如手动运算快。

分时系统(Time Sharing System):

一人一机独占性:分时系统出现以来,计算机的可用性得到了极大的改善。分时系统的出现意味着计算机越来越贴近我们的生活。还有一点需要注意:分时系统的出现促进了像是 BASIC 这种人机交互语言的诞生。分时系统的出现同时促进者计算机网络的出现。

计算机通信:

在分时系统中,每个终端与计算机相连,这种独占性的方式并不是计算机之间的通信,因为每个人还是在独立的使用计算机。到了 20 世纪 70 年代,计算机性能有了高速发展,同时体积也变得越来越小,使用计算机的门槛变得更低,越来越多的用户可以使用计算机。没有一个计算机是信息孤岛促使着计算机网络的出现和发展。

计算机网络的诞生:

0世纪80年代,一种能够互连多种计算机的网络随之诞生。它能够让各式各样的计算机相连,从大型的超级计算机或主机到小型电脑。这一网络的出现标志着计算机网络的高速发展。随着互联网的普及,电子邮件(E-mail)和万维网(WWW,World Wide Web)等应用也逐渐兴起。

然而,随着互联网的发展,网络安全问题也日益凸显。正如互联网具有两面性,它既方便了用户,也为不法分子提供了便利。计算机病毒、信息泄漏、网络诈骗等问题层出不穷。在现实生活中,我们通常会通过反击来保护自己,但在互联网中,你被攻击时通常无力还击,只能防御。这是因为精通计算机和互联网的人很少,而防御黑客攻击需要专业知识和技能。

此外,公司和企业往往容易成为不法分子攻击的目标。因此,为了保护自己的网络安全,公司或企业需要建立安全的互联网连接。在互联网中,各种信息传递和管理都需要遵循一定的规则和协议。这些规则称为网络协议。

网络协议就是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流需要遵循一定的规矩一样,计算机之间的相互通信也需要共同遵守一定的规则。没有网络协议的互联网就像一个混乱的社会一样,没有人的行为受到法律约束。同样地,在互联网中,端系统也不能随意发送信息,而是需要受到通信协议的约束。

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。除了 HTTP 协议外,还有 IP、TCP、UDP、DNS 等其他协议。这些协议各自有不同的主要用途和适用范围。例如,TCP/IP 是主要用于互联网和局域网;IPX/SPX 主要用于个人电脑局域网;AppleTalk 主要用于苹果公司现有产品互联;ISO 在制定标准化的 OSI 之前,对网络体系结构相关的问题进行了充分的探讨,最终提出了作为通信协议设计指标的 OSI 参考模型。这一模型将通信协议中必要的功能分为了7层,通过分层使复杂协议变得简单化。

TCP/IP协议簇是互联网通信协议的基础,它由四个层次组成。应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。由于数据链路层和物理层的内容很相似,所以在TCP/IP协议中它们被归并在网络接口层一个层次里。我们的主要研究对象就是TCP/IP的四层协议。

下面是一些常见的TCP/IP协议:

- IP协议:互联网协议(Internet Protocol)

- ICMP协议:Internet Control Message Protocol错误侦测与回报机制

- ARP协议:地址解析协议Address Resolution Protocol

- TCP协议:传输控制协议Transmission Control Protocol

- UDP协议:用户数据报协议User Datagram Protocol

- FTP协议:文件传输协议File Transfer Protocol

- DNS协议:域名系统协议Domain Name System

- SMTP协议:简单邮件传输协议Simple Mail Transfer Protocol

- SLIP协议:串行线路网际协议(Serial Line Internet Protocol) 点对点(Point-to-Point)。

网络核心概念之一是传输方式,根据传输方式可以将网络分为两种:面向连接型和面向无连接型。面向连接型中,在发送数据之前,需要在主机之间建立一条通信线路。而面向无连接型的网络中,则不需要建立这条通信线路,数据包可以直接传输。

面向无连接型通信不要求建立和断开连接,发送方可以在任何时候发送数据。接收端也不知道自己何时从哪里接收到数据。

分组交换是一种通信方式,它将报文(Message)分成分组(Packets),通过通信链路(communication links)进行传输。在分组交换中,分组交换机(switch packets)负责转发分组。

存储转发传输是另一种通信方式,它指的就是在转发分组的第一个比特前,交换机必须要接受到整个分组。下面是一个存储转发传输的示意图:

由图可以看出,分组 1、2、3 向交换器进行分组传输,但是交换机还没有收到分组1 发送的比特,因此不会立即进行转发。相反,交换机会先把分组缓存在本地,等待收到完整的分组后再进行转发。这就像考试作弊一样,一个学霸需要经过学渣 A 给学渣 B 传答案,学渣 A 在收到答案后才会直接把卷子传过去。

排队时延和分组丢失是存储转发传输中的两个重要概念。当多个分组同时发送并到达交换机时,它们会按照顺序到达并被输出到缓存和队列中。在这个过程中,可能会产生排队时延和分组丢失的问题。

除了上述情况外,存储转发时延还可能导致数据包在链路输出缓冲区中排队等待发送。丢包(packet loss)是指部分或全部数据包在传输过程中未能成功到达接收端的情况。

下面是一个简单的分组交换网络示意图:

在这个网络中,分组由三位数据平板展示,平板的宽度表示着分组数据的大小。所有的分组都有相同的宽度,因此也就有相同的数据包大小。

我们可以通过一个情景模拟来说明这个问题:

假设主机 A 和主机 B 要向主机 E 发送分组,首先通过 100 Mbps 以太网链路将数据包发送到第一台路由器,然后路由器将这些数据包定向到 15 Mbps 的链路。如果在较短的时间间隔内,数据包到达路由器的速率超过了 15 Mbps,则在数据包在链路输出缓冲区中排队之前,路由器上会发生拥塞,然后再传输到链路上。例如,如果主机 A 和主机 B 同时发送了 5 个数据包,那么这些数据包中的大多数将花费一些时间在队列中等待。实际上,这种情况与许多普通情况完全相似,例如排队等候银行出纳员或在收费站前等候时。

为了解决排队和丢包的问题,转发表和路由器选择协议被引入。转发表用于确定每个分组应该发送到哪个端口;而路由器选择协议则用于在多条通信链路之间选择最优路径。这样可以避免因多条通信链路同时发送分组而导致的排队和丢包问题。

IP转发表(forwarding table)是一种路由选择协议,它用于存储路由器中的路由表信息,以便在转发数据包时快速查找目标地址。IP转发表通常包含源IP地址、目的IP地址、下一跳IP地址等信息。

电路交换是一种网络通信技术,它使用预先建立的电路来传输数据。在电路交换中,数据包在发送前需要与目标节点建立连接,然后在数据传输完成后断开连接。这种方式可以确保数据的可靠传输,但同时也会导致较高的延迟和资源占用率。

分组交换是一种基于报文的通信技术,它将数据分割成小的报文单元进行传输。在分组交换中,每个报文都可以独立地选择路径进行传输,并且可以选择不同的传输速度和带宽。这种方式可以提高传输效率和灵活性,但也会导致更高的延迟和丢包率。

下面显示了一个电路交换网络:

```scss

+-----------------+ +------------+ +---------------+

| | | | | |

| Source |---->| Destination|---->| Router A |

| (Node 1) | | (Node 2) | | |

+-----------------+ +------------+ +---------------+

|

v

+-------------------+

| Router B |

v

+---------------+

| | Destination|

v +-------------------+

| | (Node 3) |

v +-------------------+

| | |

v +-------------------+

| | |

v +-------------------+

| | Destination|

v +-------------------+

| | (Node 4) |

v +-------------------+

+-------------------------+

|

v

+-------+-------+

| Node X | Node Y |

+-------+-------+

```

在网络通信中,可以根据目标地址的数量对通信进行分类,主要包括单播、广播、多播和任播。

1. 单播(Unicast)

单播最大的特点就是一对一,早期的固定电话就是单播的一个例子。单播示意图如下:

2. 广播(Broadcast)

广播体操是一种广泛应用的广播方式。

3. 多播(Multicast)

多播与广播很类似,也是将消息发送给多个接收主机,不同之处在于多播需要限定在某一组主机作为接收端。

4. 任播(Anycast)

任播是在特定的多台主机中选出一个接收端的通信方式。虽然和多播很相似,但是行为与多播不同,任播是从许多目标机群中选出一台最符合网络条件的主机作为目标主机发送消息。然后被选中的特定主机将返回一个单播信号,然后再与目标主机进行通信。

物理媒介方面,主要有双绞铜线、无屏蔽双绞线、同轴电缆和光纤。其中,双绞铜线和同轴电缆都是由两个铜导体组成,而无屏蔽双绞线和光纤则具有更高的传输速率和抗干扰能力。

双绞铜线实物图:

同轴电缆实物图:

无屏蔽双绞线实物图:

光纤实物图:

一般长途电话网络全面使用光纤,光纤也广泛应用于因特网的主干。此外,无线电信道也是计算机网络中的重要组成部分,它承载电磁频谱中的信号,具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力。常见的无线电信道有陆地无线电信道和卫星无线电信道,分别通过地面站和卫星实现地球之间的通信。

后记:这是计算机网络的第一篇文章,也是属于基础前置知识,后面会陆续更新计算机网络的内容。如果文章还不错,希望小伙伴们可以点赞、在看、留言、分享,这就是最好的白嫖。另外,我输出了六本 PDF,全集 PDF 如下。