网络基础知识


本节重点

  1. 了解网络发展背景, 对局域网/广域网的概念有基本认识;
  2. 了解网络协议的意义, 重点理解TCP/IP五层结构模型;
  3. 学习网络传输的基本流程, 理解封装和分用;

一、 计算机网络背景

关于您提到的“天朝特色”的广域网,这实际上是指中国的互联网环境。虽然从技术上来说,中国互联网也是一个广域网,但由于政策、文化和其他因素的影响,它呈现出一些独特的特征。例如,中国对互联网内容进行了严格的审查和过滤,同时也在积极推动本土互联网企业的发展和创新。这些因素使得中国的互联网环境与其他国家的互联网环境有所不同。

总之,计算机网络的发展经历了从独立到互联、从局部到全球的演变过程。随着技术的不断进步和应用需求的不断增长,未来的计算机网络将更加智能、高效和安全。

1. 网络发展

  1. 独立模式
    • 这是计算机网络的早期阶段,每台计算机都是孤立的,没有与其他计算机直接连接的能力。它们只能单独执行任务,无法共享数据或资源。
      在这里插入图片描述
  2. 网络互联
    • 随着技术的发展,人们开始将多台计算机连接在一起,形成了简单的网络。这些网络允许计算机之间共享数据、文件和打印机等资源。这种互联方式主要通过直接电缆连接或使用集线器等简单设备进行。
      在这里插入图片描述
  3. 局域网(LAN)
    • 随着计算机数量的增加,网络规模也相应扩大。局域网(Local Area Network)是指在一个特定区域内(通常是同一建筑或同一校园内)的计算机互联形成的网络。局域网使用交换机和路由器等设备,实现更高效的数据传输和资源共享。
      在这里插入图片描述
  4. 广域网(WAN)
    • 广域网(Wide Area Network)是指跨越较大地理范围(如城市、国家甚至全球)的计算机互联网络。广域网通常利用公共电信网络(如电话线、光纤等)来实现远程计算机之间的连接和数据传输。互联网(Internet)就是一个典型的广域网,它将全球范围内的计算机连接在一起,实现了信息的全球共享。
      在这里插入图片描述
      所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.

2. 认识协议

“协议”是一种约定,它规定了通信双方在进行信息交换时必须遵守的规则和格式。在计算机通信中,这种协议至关重要,因为它确保了不同设备或系统之间能够正确地理解彼此发送的信息。

高小琴例子:
以高小琴的例子来说,如果两个人要使用一种特殊的暗号或手势来进行沟通,那么他们就必须事先约定好这些暗号或手势代表的含义。否则,即使他们使用了暗号或手势,也无法有效地传达信息,因为双方对这些暗号或手势的解释可能完全不同。

在这里插入图片描述
在计算机通信中,光信号和电信号通过“频率”和“强弱”来表示0和1这样的信息。然而,不同的计算机可能使用不同的方式来表示这些数据,或者它们可能按照不同的顺序或格式来组织这些数据。因此,为了确保计算机之间能够正确地进行通信,就需要一种协议来规定双方如何发送和接收数据。

思考: 只要通信的两台主机, 约定好协议就可以了么?
答案是不完全正确。虽然通信的两台主机之间需要约定好协议,但这只是通信过程中的一部分。在实际的网络通信中,数据可能需要经过多个中间设备(如路由器、交换机等)才能到达目标主机。这些中间设备也需要理解和遵循相同的协议,以确保数据能够正确地被传输和处理。

为了确保不同厂商生产的计算机和网络设备能够相互顺畅地通信,需要制定一系列的网络协议,这些协议构成了网络通信的“共同语言”。这些协议规定了数据的格式、传输方式、错误处理等方面,确保了各种设备和系统都能够按照统一的标准进行通信。

这就像在方言众多的地区,人们需要一种通用语言(如普通话)来进行跨地区的交流。同样,在网络世界中,网络协议就是计算机和设备之间的“通用语言”,它确保了信息的准确、高效和安全的传输。

此外,不同的计算机生产厂商、操作系统和网络硬件设备可能会使用不同的技术和标准。为了确保这些不同厂商生产的计算机能够相互顺畅地通信,就需要一个共同的标准来统一大家的做法。这个标准就是网络协议。网络协议不仅规定了数据的格式和传输方式,还规定了如何建立连接、如何管理错误等各个方面的细节。

二、 网络协议初识

1. 协议分层

打电话例子

在这里插入图片描述
协议分层在通信领域中具有极其重要的意义,它类似于生活中的“打电话”这一常见动作。为了更好地理解协议分层的概念,我们可以借助“打电话”这个例子来进行说明。

当两个人通过电话进行交谈时,尽管表面上看起来是直接的语音交流,但实际上这个过程涉及了多个层次的协议和技术的协同工作。首先,人们使用的语言(如汉语、英语等)是一种协议,它规定了如何表达思想、传递信息。这是协议分层中的一个层次,我们可以称之为“语言层”。

然而,电话交流并不仅仅依赖于语言。在电话通信的过程中,还需要依赖各种通信设备(如电话机、交换机、传输线路等)来传递语音信号。这些设备之间的工作方式和接口标准,构成了通信过程中的另一个层次,即“通信设备层”。

在这个例子中,语言层负责信息的表达和传递,而通信设备层则负责将这些信息转换为电信号,并通过电话网络进行传输。这两个层次相互独立又相互依赖,共同实现了电话通信的功能。

类比到网络通信中,协议分层也是将复杂的通信过程划分为多个独立的层次,每个层次都有其特定的功能和任务。例如,在应用层,我们处理各种网络应用程序的数据;在传输层,我们负责数据的可靠传输;在网络层,我们处理数据的路由和转发;在链路层和物理层,我们处理数据的编码、解码以及实际的信号传输。

通过协议分层,我们可以将复杂的网络通信问题分解为一系列相对简单的问题,每个层次都可以独立地设计、实现和维护。这种分层的结构不仅提高了网络通信的灵活性、可靠性和可维护性,还使得不同厂商生产的设备和系统能够相互兼容和协作。

因此,就像打电话这个例子所展示的那样,协议分层是网络通信中不可或缺的一部分,它使得复杂的通信过程变得有序、高效和可靠。
在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次.
分层最大的好处在于 “封装” . 面向对象例子

2. OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解.

OSI七层模型如图:
在这里插入图片描述

3. TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.

与OSI七层模型的对应关系:
在这里插入图片描述
物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.
一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);
参考资料
TCP/IP四层模型和OSI七层模型的概念
集线器:
集线器,英文称为“Hub”,是一种数据通信设备,主要负责将一个局域网中的各个网络设备连接在一起。其工作原理可以简单描述为数据传输的中继作用。当一个设备发送数据包时,集线器会接收到该数据包并将其广播到所有连接的设备上。每个设备都会收到这个数据包,但只有数据包的目标设备会响应。

集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型的第一层,即“物理层”。此外,集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,并采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。

在结构上,集线器有多种类型,如未管理的集线器、堆叠式集线器和底盘集线器等。未管理的集线器通过以太网总线提供中央网络连接,以星形的形式连接起来,主要用于小型网络,如家庭或小型办公室。堆叠式集线器可以通过直接连接多个转发器来扩展网络,具有成本低和简单易行的优点。底盘集线器则是一种模块化的设备,可以插入多种类型的模块,提供更高的灵活性和可扩展性。

集线器在局域网中得到了广泛的应用,尤其是在星型与树型网络拓扑结构中。在家庭网络、小型办公室网络、服务器室以及学校或大型组织中,集线器都扮演着重要的角色,使得多个设备可以在同一个网络上进行通信和共享资源。

不过,集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的“智能记忆”能力和“学习”能力。它也不具备交换机所具有的MAC地址表,发送数据时都是没有针对性的,而是采用广播方式发送。因此,在某些需要高安全性和高效性的网络环境中,可能需要考虑使用其他类型的网络设备,如交换机。

以太网名字的由来:
以太网的名字来源于物理学中的“以太假说”。在19世纪,科学家们普遍认为光是通过一种叫做以太的物质进行传播的。他们提出,宇宙空间并不是真空的,而是填充满了一种叫做“以太”的物质,这种物质能够作为光传播的媒介。然而,后来的实验证明,“以太”这种物质实际上是不存在的。

在计算机科学和网络技术发展的早期,局域网开始兴起。在局域网命名的时候,人们为了纪念之前的“以太假说”,同时也因为局域网具有传播信息的能力,与“以太”在物理学上曾经被认为的通信能力相契合,于是就将局域网命名为“以太网”。

因此,以太网的名字既是对过去科学假说的致敬,也是对局域网技术的一种形象描述。现在,以太网已经成为了主流的计算机网络技术,为人类传递着大量的数据和信息。

三、 网络传输基本流程

1. 同局域网的两台主机通信

同一个网段内的两台主机进行文件传输.
在这里插入图片描述
数据包在发送前需要经过协议栈的封装过程,而在接收时则需要通过协议栈进行解包和分用。以下是这一过程的简要描述:

数据包封装

  1. 应用层:首先,用户数据被交给应用层处理。应用层根据所使用的应用层协议(如HTTP、FTP等),为数据添加相应的应用层报头信息。

  2. 传输层:封装好的应用层数据随后被传递到传输层。传输层(如TCP或UDP)根据其协议规则,为数据添加传输层报头,包含诸如端口号、序列号等关键信息。

  3. 网络层:接着,传输层数据被交给网络层。网络层(如IP)负责为数据添加网络层报头,包括源IP地址、目的IP地址以及生存时间(TTL)等字段。

  4. 链路层:最后,网络层数据传递到链路层。链路层(如以太网)为数据添加链路层报头(如MAC地址等),并封装成帧,以便在物理网络上传输。

经过这一系列封装过程,数据被逐步“打包”成适合在网络中传输的格式。每一层添加的报头信息都对该层协议的处理至关重要。

数据包解包与分用

  1. 链路层:当数据包到达目的主机时,首先由链路层接收。链路层解析并提取出链路层报头信息,然后将剩余的数据(即网络层数据)传递给网络层。

  2. 网络层:网络层接收到数据后,解析网络层报头,提取出诸如源/目的IP地址等信息,并根据需要执行路由选择等操作。随后,网络层将剩余的数据(即传输层数据)传递给传输层。

  3. 传输层:传输层解析传输层报头,识别出端口号等信息,并根据这些信息将数据传递给相应的应用进程。此时,传输层报头被剥离,仅剩下应用层数据。

  4. 应用层:最终,应用层接收到传输层传递的数据,并解析应用层报头,从而恢复出原始的用户数据。至此,数据的解包与分用过程完成。

在整个过程中,每一层都负责处理其自己的报头信息,并将数据传递给上一层。这种分层处理的方式确保了数据的正确传输和高效处理。不同协议层对数据包有不同的称谓,如传输层的“段”(segment)、网络层的“数据报”(datagram)和链路层的“帧”(frame),这些称谓反映了数据包在不同层次的结构和功能。

下图为数据封装的过程
在这里插入图片描述
下图为数据分用的过程
在这里插入图片描述

什么是报头?

在计算机网络协议中,报头是位于数据包开始部分的一种数据结构,它包含了关于数据包的元信息,如源地址、目标地址、数据长度和协议类型等。这些信息对于网络设备在传输、路由和处理数据包时至关重要。报头的作用是帮助网络设备识别数据包的来源、目的地和所遵循的协议,从而能够正确地进行路由、转发和处理。

报头和有效载荷

当对端主机接收到数据时,它会按照协议栈的顺序,从底层开始逐层进行数据的解包与分用。在这个过程中,每一层的协议仅关注与当前层相对应的报头信息,并对其进行处理。而报头之后的数据,即除了当前层报头之外的内容,被称为“有效载荷”。这些有效载荷对于当前层协议而言是未知的,因此会直接传递给上一层进行处理。

重要的是要理解,上层协议在封装数据时添加的报头信息,在解包过程中,对于下层协议来说,这些报头信息实际上就构成了有效载荷。举例来说,应用层在封装数据时添加的报头,在数据到达对端主机并逐层解包时,对于传输层、网络层以及链路层来说,这些应用层报头信息就是它们各自处理时的有效载荷。

简而言之,每一层协议在解包过程中只关注自己的报头信息,而将其余部分作为有效载荷传递给上一层。这样,数据能够逐层被解包,并最终在应用层得到完整的处理。

如何把报头和有效载荷分离

报头与有效载荷的分离是数据解包过程中的关键步骤。为了实现这一步骤,首先需要明确报头与有效载荷之间的界限,而这通常依赖于报头大小的确定。报头大小可以通过两种方式获取:一种是定长报头,即报头的大小是预先设定的固定值;另一种是自描述字段,即报头中包含一个字段,用于指示报头的实际长度。

在解包过程中,每一层协议都需要从数据中提取出对应的报头信息。为了做到这一点,协议栈中的每一层都需要知道报头的大小。一旦确定了报头的大小,就可以轻松地将报头与有效载荷进行分离。有效载荷即为报头之后的数据部分,它包含了实际传输的信息内容。

这种分离机制是协议栈能够正确解析和处理数据的基础。每一层协议在解包时都会根据报头的大小,将报头从数据中提取出来,然后将剩余的有效载荷传递给上一层进行进一步处理。这样,数据就能够逐层被解包,最终在应用层得到完整和正确的处理。

当前层如何知道应该将有效载荷交付给上层的哪个协议?

当前层知道应该将有效载荷交付给上层的哪个协议,主要依赖于报头中的特定字段信息。每种协议在封装数据时,都会在报头中添加一个字段,用于指示有效载荷应该交付给上层的哪个协议。当数据到达当前层进行解包时,该层会读取报头中的这个字段,根据字段的值来确定应该将有效载荷传递给上层的哪个协议。这个过程被称为分用。

局域网内传输数据时,该局域网内的所有主机都能收到

在局域网(如以太网)中,当主机A想要发送数据给主机B时,实际上该局域网内的所有主机在物理层都能接收到这些数据。这是因为局域网通常采用广播方式传输数据,即数据帧会在整个网络段上进行传输。然而,不是所有主机都会处理这些数据。

当主机接收到数据帧时,它们会检查数据帧中的目标地址(通常是MAC地址)来确定该数据帧是否是发送给自己的。如果目标地址与主机的MAC地址不匹配,主机就会忽略这些数据并将其丢弃。只有目标地址与主机MAC地址相匹配的主机(在这个例子中是主机B)才会处理这些数据,并将其提交给上层协议栈进行进一步处理。

因此,尽管局域网内的所有主机在物理层都能接收到数据,但只有目标主机才会实际处理这些数据。这种机制确保了数据能够准确、有效地从发送方传输到接收方,同时避免了不必要的处理和干扰。

什么是碰撞?

碰撞是指在同一局域网(碰撞域)中,多台主机同时发送数据时,它们的数据帧在共享的通信信道上相互干扰,导致数据损坏或传输失败的现象。由于局域网中的所有主机使用共同的通信信道进行通信,如果同时发送数据,这些数据帧可能会发生冲突,造成数据的错误或丢失。碰撞是局域网通信中需要避免的问题,通常通过一些技术手段(如CSMA/CD协议)来检测和解决,以确保数据能够准确、可靠地传输。

如何判断发送出去的数据是否发生了碰撞?

主机通过发送数据后自我接收并对比的方式来判断是否发生了碰撞。当主机将数据发送至局域网时,由于局域网内的所有主机都能收到数据,发送主机也能收到自己发送的数据。发送主机将接收到的数据与原始发送的数据进行对比,如果两者不一致,则表明在传输过程中发生了碰撞,即有其他主机同时发送数据导致了信号干扰。这种自我检测和对比的机制使主机能够得知其发送的数据是否成功传输或是否发生了碰撞。

发生碰撞后如何处理?

发生碰撞后,主机会执行“碰撞避免”算法来处理。简单来说,当主机发现发送出去的数据产生了碰撞,它会选择等待一段时间后再次重新发送该数据。这种等待和重发的机制有助于避免数据在局域网中发生连续的碰撞,从而提高数据传输的效率和成功率。在网络通信压力较小的情况下,碰撞的概率通常较低,这得益于计算机的高速处理能力和网络设备的优化。但尽管如此,碰撞避免算法仍然是确保局域网中数据传输可靠性的重要措施之一。

每个主机如何判断该数据是否是发送给自己的?

每个主机通过比对MAC数据帧中的目的MAC地址与自己的MAC地址来判断该数据是否是发送给自己的。每个计算机网卡都有一个唯一的MAC地址,发送方在发送数据帧时,会在报头中指定目的MAC地址。主机收到数据帧后,会检查目的MAC地址是否与自己的MAC地址匹配,如果不匹配则丢弃数据帧,只有匹配时才会继续处理有效载荷。通过这种方法,局域网中的数据帧可以准确地传送到指定的主机或进行广播。

与碰撞相关的一种局域网攻击机制

与碰撞相关的局域网攻击机制涉及在局域网内故意发送大量无用数据,导致其他主机发送数据时发生碰撞,进而使局域网陷入瘫痪状态。实施这种攻击的主机必须能够绕过“碰撞避免”算法,以便持续发送垃圾数据而不中断。当该主机发送的数据引起碰撞时,若遵循碰撞避免算法,它自己会暂停发送,从而无法持续进行攻击。因此,这种攻击的关键在于攻击者主机能够避免执行碰撞避免算法,持续干扰局域网的正常通信。这种攻击机制利用了局域网通信的脆弱性,对网络安全构成严重威胁。

2. 跨网络的两台主机通信

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
跨局域网的两台主机之间进行通信时,通常需要通过路由器进行连接和转发。路由器能够连接并识别多个局域网,每个局域网内的主机都认为路由器是该局域网内的一台可通信的主机。当局域网1中的主机A想要与局域网2中的主机H通信时,主机A会先将数据发送给路由器。路由器接收到数据后,会根据网络层的信息判断目标地址(即主机H的IP地址)所在的局域网,并将数据转发到相应的局域网2。这样,主机H就能从局域网2中接收到主机A发送的数据。简而言之,路由器作为中介,实现了不同局域网之间主机的通信。
在这里插入图片描述

四、 网络中的地址管理

1. 认识IP地址

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

2. 认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

争不过朝夕,又念着往昔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值