计算机网络概论(一) | 青训营笔记

153 阅读17分钟

目标

  • 建立对计算机网络的整体认知
    • 对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。
  • 可以在后续的实际工作中能高效解决网络问题。

1 内容介绍

  • 通过一个示例建立对计算机网络的整体认识
  • 建立对网络协议分层的认知
  • 分析方法
    • 自底向上
      • 从简单开始,逐渐变复杂
      • 将模块逐步拼凑成一个系统
    • 自顶向下
      • 从复杂开始,逐渐变简单
      • 从复杂的系统问题入手,拆分为模块问题

2 蟹堡王帝国

  • 介绍网络
    • 富含计网知识的小故事(从图片也可能看出来)
    • 三步走策略

image.png

3 计网概述

3.1 网络

3.1.1 网络组成部分

  • 主机:客户端和服务端
  • 路由器
  • 网络协议

3.1.2 网络结构

  • 即网络的网络

  • 结合蟹堡王故事

    • 比奇堡和小区网络(本地网络)
    • 北京和上海分店+比奇堡:三个本地网络节点的网络
    • 全国通信网络:本地网络的网络
  • 概念说明

    • 本地网络(Local Area Network,简称 LAN)

      • 定义:一个相对较小的地理范围内(例如家庭、学校、公司或办公楼)的计算机和其他设备通过网络媒介相互连接的系统。
      • 功能或目的:实现这些设备间的资源共享、数据传输和通信。
      • 特点:
        • 范围有限:通常覆盖一个较小的地理区域,家里或公司
        • 高速传输:相较于广域网(WAN),本地网络内的数据传输速度通常较快。
        • 私有所有:lan通常由组织或个人拥有和管理。
        • 设备多样:本地网络内可能包括计算机、打印机、服务器、网络存储设备等各种设备。
        • 通信协议:本地网络通常使用 Ethernet(以太网)或 WiFi(无线局域网)作为通信协议。
      • 优点
        • 便捷地共享资源(如打印机、文件和应用程序),便于设备之间的协作,从而提高工作效率
        • 便捷的共享本身就是对通信成本的降低
    • 本地网络节点(Local Network Node)是指在本地网络(中的一个设备,例如计算机、服务器、打印机或路由器等。

      • 每个节点在网络中都有一个唯一的地址,通常称为IP地址
        • IP地址用于在网络中识别和定位特定的设备,帮助网络设备将信息发送到正确的目的地。
    • 本地网络节点之间的通信通常通过交换机(Switch)或路由器(Router)实现。

      • 交换机主要负责在同一局域网内设备之间转发数据包
      • 路由器主要负责在不同网络之间转发数据包,如在本地网络和互联网之间。
    • 在本地网络内,节点之间可以通过有线(如以太网)或无线(如Wi-Fi)连接相互通信。

    • 有线和无线的区别(便捷性和稳定快捷性的区分)

      • 使用有线连接时,设备之间通过网线连接,传输速度较快且稳定
      • 而无线连接则无需网线,更加便捷,但可能受到环境因素影响,导致传输速度波动。
  • 子网划分

    • 由来
      • 在一个大型组织或企业环境中,通常会使用子网划分(subnetting)对本地网络进行划分。

      • 目的:将一个大的网络根据实际需求划分为多个较小的子网络,以实现更好的网络管理、降低网络拥塞和提高安全性。

      • 方式:通过对IP地址进行按位与操作来实现的,使用子网掩码(subnet mask)可以确定一个IP地址属于哪个子网。

      • 在子网划分后,同一子网内的设备可以直接通信,而跨子网通信需要通过路由器(router)实现。

3.1.3 区域网络、城域网和广域网

    1. 区域网络(Metropolitan Area Network,简称 MAN):区域网络覆盖一个城市或城市群,比本地网络(LAN)的范围更大,但比广域网(WAN)小。
    • 典型的应用场景包括连接同一城市内的多个企业办公楼、大学校园、政府机构等。
    • 区域网络通常使用高速光纤或其他高速传输介质,可以提供较高的数据传输速率。
    1. 城域网(Campus Area Network,简称 CAN):城域网是指覆盖一个学校、大学或企业园区范围内的计算机网络,城域网的规模介于本地网络(LAN)和区域网络(MAN)之间。
    • 城域网通常由多个相互连接的局域网组成,以实现资源共享、通信和数据传输。
    • 城域网可以使用有线(如以太网)和无线(如 Wi-Fi)连接。
    1. 广域网(Wide Area Network,简称 WAN):广域网覆盖一个很大的地理区域,如国家、地区甚至全球。广域网通过远程通信链路和中继设备连接多个本地网络、区域网络和城域网。
    • 典型的广域网应用包括互联网、电话公司的网络和大型企业的全球网络。
    • 广域网的数据传输速率通常较低,因为它们需要跨越更大的距离并涉及更多的中继设备。

3.1.4 电路交换&分组交换

  • 两种不同的网络通信技术,在传输数据时采用不同的方法和机制。
  1. 电路交换(Circuit Switching): 电路交换最早用于电话系统,主要用于语音通信。
    • 在电路交换中,通信双方之间建立一条固定的、专用的物理通信路径。
    • 在通话过程中,这条路径会一直被保留,直到通话结束。
    • 电路交换主要用于实时通信,如电话系统

电路交换的主要特点:

  • 连续性:由于通信双方之间有一条专用的通信路径,因此数据传输具有连续性和实时性,适用于实时通信,如电话通话。
  • 低效:在通信过程中,即使没有数据传输,通信路径也会一直被占用。这可能导致资源浪费,尤其在数据传输量不大的情况下。
  • 通话建立时间较长:在建立通话之前,需要为通信双方分配一条物理路径,这个过程可能需要较长的时间。
  1. 分组交换(Packet Switching): 分组交换是现代计算机网络(如互联网)中主要使用的通信技术。
    • 在分组交换中,数据被切分成多个数据包(或称分组),每个数据包独立传输。
    • 数据包在网络中根据最佳路由选择相应的路径,最终在目的地重新组装成原始数据。
    • 分组交换则广泛应用于现代计算机网络,如互联网。分组交换具有更高的资源利用率和更强的适应性,因此在大多数场景下,分组交换是更优的选择

分组交换的主要特点:

  • 高效:数据包在网络中独立传输,可以根据网络拥塞情况动态选择最佳路径。这样可以实现更高效的资源利用和更快的数据传输速率。
  • 弹性:由于数据包可以通过不同的路径传输,因此分组交换网络具有较强的抗干扰能力和容错性。
  • 适用于多种应用:分组交换可以处理多种类型的数据(如文本、图像、音频和视频),非常适合复杂的计算机网络应用。

3.1.5 网络分层

  • 计算机网络的七层结构通常指的是 OSI(Open Systems Interconnection)模型,即开放式系统互联模型。
  • OSI 模型是一个用于描述网络协议的分层架构,它将网络通信过程划分为七个层次,每层负责处理不同的通信任务。
  • 从底层到顶层,这些层次分别是:
  1. 物理层(Physical Layer): 物理层负责处理与物理介质(如电缆、光纤等)相关的通信任务,包括数据的比特流传输、信号编码、硬件接口等。在这一层,数据以比特(bit)为单位进行传输。
  2. 数据链路层(Data Link Layer): 数据链路层负责建立、维护和断开数据链路,以确保从源到目的地的可靠数据传输。此外,数据链路层还负责进行错误检测和流量控制。在这一层,数据以帧(frame)为单位进行传输。
  3. 网络层(Network Layer): 网络层负责处理网络寻址和路由选择,以确定数据包从源节点到目的节点的最佳路径。网络层使用 IP 地址进行寻址。此外,网络层还负责处理分组和重组数据包。在这一层,数据以数据包(packet)为单位进行传输。
  4. 传输层(Transport Layer): 传输层负责提供端到端的通信服务,包括数据的分段、传输、重组和确认。传输层还负责处理流量控制和差错控制。常见的传输层协议有 TCP(传输控制协议)和 UDP(用户数据报协议)。
  5. 会话层(Session Layer): 会话层负责建立、管理和断开网络中的通信会话。会话层通过会话标识符来区分不同的通信会话,以确保数据流向正确的目的地。
  6. 表示层(Presentation Layer): 表示层负责处理数据的表示和编码问题,以确保发送方和接收方的数据格式兼容。此外,表示层还负责进行数据加密和解密、数据压缩和解压缩等操作。
  7. 应用层(Application Layer): 应用层是网络协议栈的最顶层,负责处理与特定应用程序相关的通信任务。应用层协议通常与用户直接交互,例如 HTTP(超文本传输协议)、FTP(文件传输协议)和 SMTP(简单邮件传输协议)等。
  • 在学习教学中,网络模型经常会简化为五层模型,实际应用中,tcp/ip协议的四层模型更为实用,课程中的五层其实说的大致是4层。
  • 五层模型与 OSI 七层模型的主要区别在于它将会话层、表示层和应用层合并为一个层次,并将物理层和数据链路层合并为一个层次。
  1. 物理层数据链路层(Physical and Data Link Layers): 这个层次结合了 OSI 模型中的物理层和数据链路层,负责处理数据链路的建立、维护和断开,以及物理介质上的比特流传输和信号编码等任务。
  2. 网络层(Network Layer): 网络层与 OSI 模型中的网络层相同,负责处理网络寻址和路由选择,以确定数据包从源节点到目的节点的最佳路径。
  3. 传输层(Transport Layer): 传输层与 OSI 模型中的传输层相同,负责提供端到端的通信服务,包括数据的分段、传输、重组和确认。传输层还负责处理流量控制和差错控制。
  4. 应用层(Application Layer): 这个层次结合了 OSI 模型中的会话层、表示层和应用层,负责处理与特定应用程序相关的通信任务,以及数据的表示和编码问题。
  • 五层模型相对于七层模型更加简洁,同时涵盖了网络通信的主要功能。

  • 五层模型的应用可以简化网络协议的设计和实现,便于网络设备和协议的互操作。

  • 用现实的例子说明:

    • 快递员(快递公司类比应用层)不关心包裹内容
    • 卡车司机(类比传输层)不关心车厢里拉的是什么
    • 高速公路(类比网络层)不关心开的什么车

3.1.6 网络协议

  • 网络基础协议是指在计算机网络中实现各种功能的一组规定。
  • 这些规定描述了数据在网络中的传输方式、格式和处理过程。
  1. IP(Internet Protocol,互联网协议): IP 是网络层的主要协议,负责处理网络寻址和数据包在网络中的传输。IP 使用 32 位(IPv4)或 128 位(IPv6)的地址来唯一标识网络中的每个设备。IP 协议可以在不同类型的网络和设备之间提供互通性。
  2. ICMP(Internet Control Message Protocol,互联网控制报文协议): ICMP 是 IP 协议的一个辅助协议,用于在网络中传输控制和错误信息。ICMP 的典型应用场景包括网络故障诊断(如 ping 命令)和路由器之间的通信。
  3. ARP(Address Resolution Protocol,地址解析协议): ARP 是一种数据链路层协议,用于将网络层的 IP 地址映射到数据链路层的物理地址(如 MAC 地址)。ARP 协议使得 IP 数据包可以在本地网络中正确传输到目的设备。
  4. TCP(Transmission Control Protocol,传输控制协议): TCP 是传输层的主要协议,提供了面向连接的、可靠的数据传输服务。TCP 通过握手过程建立连接,使用序列号和确认机制确保数据的可靠传输,以及使用滑动窗口机制实现流量控制。
  5. UDP(User Datagram Protocol,用户数据报协议): UDP 也是传输层的一种协议,但与 TCP 不同,它提供的是无连接的、不可靠的数据传输服务。UDP 的优势在于它的传输开销较小,适用于实时性要求较高、允许丢包的应用场景,如实时语音和视频通信。
  6. DNS(Domain Name System,域名系统): DNS 是应用层的一种协议,用于将人类可读的域名解析为 IP 地址。DNS 使得用户可以通过域名访问网站和网络服务,而无需记住复杂的 IP 地址。
  7. HTTP(Hypertext Transfer Protocol,超文本传输协议): HTTP 是应用层的一种协议,用于在客户端(如浏览器)和服务器之间传输超文本和其他资源。HTTP 是互联网上最常用的协议,构成了万维网(WWW)的基础。
  8. FTP(File Transfer Protocol,文件传输协议): FTP 是应用层的一种协议,用于在客户端和服务器之间传输文件。FTP 协议支持对文件的上传、下载、删除、重命名等操作,并提供了对文件访问权限的控制功能。它通常用于在用户和服务器之间共享文件和管理网站内容。
  9. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议): SMTP 是应用层的一种协议,用于在邮件服务器之间或客户端到邮件服务器之间发送电子邮件。SMTP 只负责邮件的发送,而接收邮件则需要使用 POP3(邮局协议3)或 IMAP(互联网消息访问协议)等其他协议。
  10. DHCP(Dynamic Host Configuration Protocol,动态主机配置协议): DHCP 是应用层的一种协议,用于为网络中的设备动态分配 IP 地址和其他网络配置信息。DHCP 使得网络管理员可以集中管理 IP 地址分配,简化了网络配置和管理工作。
  11. SSL/TLS(Secure Sockets Layer/Transport Layer Security,安全套接层/传输层安全): SSL 和 TLS 是应用层的加密协议,用于在客户端和服务器之间建立安全的通信通道。SSL/TLS 可以保护数据的完整性和隐私,防止窃听和篡改。广泛应用于安全敏感的场景,如在线支付、登录验证等。

协议的存在依赖于连接

  • 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
  • image.png

3.1.7 标头和载荷

  • 在计算机网络中,数据通常按照协议的格式进行封装和传输。
    • 一个数据包或帧通常分为两部分:标头(Header)和载荷(Payload)。
    • 标头和载荷分别承担不同的作用,共同实现数据在网络中的传输和处理。
  1. 标头(Header): 标头是数据包或帧的开头部分,包含了用于处理和传输数据的控制信息。标头中的信息根据不同的协议和网络层次而有所不同。

一般来说,标头包含了如下信息:

  • 源地址和目的地址:标头中通常包含了发送方和接收方的地址信息,如 IP 地址、MAC 地址等。这些地址信息用于确保数据正确传输到目的地。
  • 协议类型:标头中还包含了协议类型信息,以标识数据包属于哪个协议。这有助于网络设备正确处理和转发数据包。
  • 序列号和确认号:对于面向连接的协议(如 TCP),标头中还包含了序列号和确认号,用于实现可靠数据传输和流量控制。
  • 校验和:标头中通常包含了校验和信息,用于检测数据在传输过程中是否发生错误。
  • 其他控制信息:标头中还可能包含其他控制信息,如数据包的生命周期、优先级、标志位等。
  1. 载荷(Payload): 载荷是数据包或帧的主体部分,包含了实际要传输的数据。载荷的内容根据不同的应用和场景而有所不同。
    • 举例来说,在传输文件时,载荷中包含了文件的内容;在传输网页时,载荷中包含了 HTML、CSS 和 JavaScript 等网页元素。
    • 在数据传输过程中,数据包或帧会经过多个网络层次。每个层次都可能为数据添加自己的标头,形成嵌套的结构,这种嵌套结构有时被称为“封装”(Encapsulation)。
    • 当数据到达目的地时,每个网络层次会依次去除相应的标头,还原出原始的数据。这个过程被称为“解封装”(Decapsulation)。

image.png

了解标头和载荷的概念有助于理解计算机网络中数据包的结构和传输过程,在网络调试和故障诊断时,分析标头中的信息对于定位问题和解决问题具有重要意义

3.1.8 HTTP协议示例:应用层——HTTP协议头部

  • HTTP(超文本传输协议)是应用层的一个协议,用于在客户端(如浏览器)和服务器之间传输超文本和其他资源。
  • HTTP 协议的请求和响应消息都包含头部(Header)信息,用于描述和控制消息的传输和处理
    • 本地帧头部: image.png
    • ip协议头部 image.png
    • TCP协议头部 image.png
    • http协议头部 image.png
    • TCP协议格式 image.png

总结

image.png

  • 对于四种网络的区别主要体现在覆盖范围、传输速率和管理复杂性。
  • 不同类型的网络适用于不同的应用场景,如资源共享、通信和数据传输
  • 对于自己重复学习计网感到十分开心,狠狠地恶补了知识,努力学牢基础
  • 很开心自己的学习有所产出,以后复习时候也可以拿自己文章来复习

参考