计算机网络基础笔记

一、计算机网络概述

(一)定义

IEEE 定义为一组自治计算机互联的集合。

(二)基本功能

  1. 资源共享

    • 包括软件资源和硬件资源。

  2. 分布式处理与负载均衡

    • 可将海量任务分散到全球各地计算机。

    • 通过部署服务器,让不同地域用户看到距离最近服务器上相同的界面。

  3. 综合信息服务

    • 集成各种网络应用。

(三)网络演进

经历主机互联、局域网、互联网、因特网阶段。

(四)网络类型

  1. 按覆盖范围

    • 局域网(LAN)

      • 范围在几千米内。

      • 特点:方便管理配置、简洁规整、延迟小、传输速率高、可靠。

      • 与其他网络区别在于物理范围、拓扑结构、传输技术。

    • 城域网(MAN)

      • 覆盖几十公里城区,采用 IP 技术、MPLS/SR 技术。

    • 广域网(WAN)

      • 距离远,可跨国、跨区。

  2. 拓扑结构

    • 总线型 Bus、星型 Star、环型 Ring、网状 Mesh。

    • image-20241122160456309

  3. 交换方式

    • 电路交换

      • 基于电话网,发送和接收节点创建独占数据传输通道,通信结束或断开连接才释放。

      • 优点:延迟小、线路建立无资源抢占和冲突、实现数据透明传输、吞吐量大。

      • 缺点:带宽固定、网络资源利用率低、初始连接建立慢。

    • 分组交换

      • 以分组为单位存储转发,将信息划分为分组,含接收方和发送方地址标识,传送设备根据地址转发。

      • 优点:多路复用、网络资源利用率高。

        • 动态复用技术传送各个分组,提高线路利用率

        • 保证用户不能长时间独占线路,充分利用信道带宽

      • 缺点:延迟大、实时性差、设备功能复杂。

        • 数据分割,逐一对分组转发,引入更大端到端延迟

        • 分组载有而外地址信息,占用更多带宽资源

        • 设备需要处理寻址,转发等能力,加大了复杂程度

(五)性能指标

  1. 带宽(bandwidth)

    • 一定时间内从一个节点传送到另一个节点的数据量,单位 bps。

  2. 延迟(delay)

    • 网络上数据从一个节点传送到另一个节点经历的时间,包括传播延迟、交换延迟、访问延迟、队列延迟。

(六)协议标准与标准化组织

二、网络的模型

(一)OSI 参考模型

image-20241122160645247

  1. 层次结构

    • 物理层

      • 在终端设备之间传输比特流,不理会数据的含义格式,只能看到01

      • 传输比特流,规定物理设备互连,涉及机械、电气、功能、规程特性。

      • 介质有双绞线、同轴电缆、光纤、无线电信号;设备有调制解调器 Modem。

    • 数据链路层

      • 在特定介质或链路上传递数据。

      • 功能:

        • 编码、识别帧;

          • 关心比特次序,结构含义;将比特编成帧,从一些列比特中识别帧,将帧解开给网络层

        • 建立、维持、释放数据链路;

          • 建立时保持安全性;

          • 传输时维持数据链路;

          • 结束后释放数据链路

        • 传输资源控制;

          • 数据链路层协议对资源分配裁决

        • 流量控制;

          • 防止发送数据过快导致接收方缓存空间溢出出现拥塞,及时控制发送方速率

        • 差错控制;

          • 以帧为单位实施差错检测

        • 寻址;

          • 能标识介质上所有节点,并能寻址目的节点

        • 标识上层数据。

          • 透明传输的方式传输网络层包

          • 为了在同一条链路上支持多总网络层协议,发送方要在帧的控制信息中标识包所属的网络层协议--接收方才能正确将包交给上层协议处理

      • 数量链路层标准

        • 局域网数据链路层标准

          • IEEE802.1-802.5

          • LLC逻辑链路控制

          • MAC介质访问控制

        • 广域网数据链路层标准

          • HDLC高级数据链路控制

            面向同步的数据链路层协议
            使用帧字符和校验和的同步串行链路的数据链路封装方法
          • PPP点到点协议

            支持同步和异步连接,支持多种网络层协议
    • 网络层

      • 选择路径转发数据包。

      • 功能:

        • 编址:为每个节点分配网络地址

        • 路由选择:网络层设备计算路由后按照路由信息进行转发

        • 拥塞控制:负责对网络上的拥塞进行控制

        • 异种网络互联:能工作在多种链路和介质类型上

      • 网络层 IP 地址

        • 全局唯一,含网络地址和主机地址。

      • 协议:

        • 可路由协议

          定义数据包内各个字段的格式和用途,对数据进行网络层封装(如 IP)

        • 路由协议

          在路由器之间传递信息,计算路由形成路由表,为可路由协议提供选择路径(RIP/OSPF/BGP..)

    • 传输层

      • 为会话提供无差错的传送链路,保证传递信息无误

      • 功能:

        • 分段上层数据:接收会话层数据传输给网络层,如果数据过大分割成段传输

        • 建立端到端连接:双方主机应用程序之间通过对方地址信息之间进行对话,不用考虑中间节点

        • 差错校验重传:检测数据流乱序,丢失,更正错误,验证是否全部收到

        • 透明可靠传输

        • 流量控制

      • 协议:TCP 和 UDP。

    • 会话层

      • 提供会话服务,建立会话关系,保持畅通,决定通信中断及重新发送位置。

      • 协议:SQL、NFS、RPC 等。

    • 表示层

      • 关注传输信息语义和语法,加密、压缩数据。

    • 应用层

      • 提供软件接口使程序使用网络服务。

  2. 对等通信

    image-20241122161426268

  3. 封装与解封装

    image-20241122161438741

(二)TCP/IP 模型

image-20241122161505620

  1. 层次结构

    • 网络接口层

      • 处理传输介质相关细节,包括物理线路、接口和链路层通信。

      • 主要协议:以太网、HDLC、PPP。

    • 网络层

      • 负责数据包送达目的地,包括路由和路由维护。

      • 主要协议:IP、ICMP、IGMP,使用 ICMP/IGMP 协助管理网络。

    • 传输层

      • 提供端到端通信,进行数据完整性校验、差错重传和数据重新排序。

      • 主要协议:TCP、UDP。

    • 应用层

      • 处理特定应用程序细节,实现远程访问、资源共享。

      • 主要协议:Telnet、FTP/TFTP、SMTP/POP3、SNMP/HTTP。

三、局域网基本原理

(一)概述

(二)以太网技术基础

  1. 以太网技术介绍

    • 概念

      • 冲突域:连接在同一共享介质上的节点集合,节点竞争带宽,一个节点发报文其他节点能收到。

      • CSMA/CD(载波监听多路访问 / 冲突检测):

        • 终端设备不断检测共享线路的状态

          • 线路空闲--发送数据

            有另外一个设备同时发送数据
            数据冲突--信号不稳定-马上停止发送;终端发送一连串干扰脉冲等待一段事件再发送;干扰脉冲--通知其他设备线路产生冲突
          • 线路不空闲--一直等待

    • 共享式以太网

      • 所有终端主机在同一冲突域,共享总线带宽,采用 CSMA/CD 技术解决冲突域问题。

    • 交换式以太网

      • 交换机端口独立冲突域,终端主机独占端口带宽,通过端口隔离冲突域。

  2. MAC 地址

    image-20241122161831796

    • 48 位二进制,常用 12 位十六进制表示,含 24 位 OUI 和 24 位 EUI,有单播、组播、广播(全 F)三种方式。

  3. 传输介质

    • 双绞线

      image-20241122161850537

    • 光介质

      • 多模光纤

        • 较粗的纤芯,传输多种不同波长不同角度的光

        • 衰耗大,距离通常几千米内

        • 成本低

      • 单模光纤

        • 纤芯与光波长相同,传达单一波长的激光

        • 衰耗小,传输距离可达数千米

        • 成本高

(三)WLAN 基础

计算机网络与无线通信技术结合,用射频(RF)技术取代双绞线,部署简单、移动方便、使用便捷。

image-20241122162007252

四、IP 基本原理

(一)IP 协议概述

  1. IP 相关协议

    img

    • IP:负责网络层寻址、路由选择、分段及包重组。

    • ARP:把网络层地址解析成物理地址。

    • RARP:把物理地址解析成网络地址。

    • ICMP:定义网络层控制和传递消息功能,报告错误等信息,提供网络诊断功能。

    • IGMP:负责管理 IP 组播组。

  2. IP 主要作用

    • 表示节点和链路:用唯一的IP地址标识每一个节点,用唯一的IP网络号标识每一个链路

    • 寻址和转发:确定节点所在的网络位置,进而确定节点所在的位置,IP路由器选择适当的路径将IP包转发到目的节点

    • 适应各种数据链路:根据链路的MTU多IP包进行分片和重组,为了通过实际的数据链路传递信息,须建立IP地址到数据链路层地址的映射

  3. IP 网络结构

    • IP网络由多个网段构成,每一个网段对应一个链路

    • 路由器负责将网段连接起来,适配链路层协议,再网络之间转发数据包

    • 路由器的功能

      • 连接分离的网络

      • 链路层协议适配,适配各种数据链路的协议和速率

      • 在网络之间转发数据包

        需要运行网关到网关协议GGP交换路由信息和控制信息IP网络包转发是逐跳进行的,每一个路由器或主机的转发决策都是独立的,依据存储自身的路由表中的路由

  4. IP 头部封装格式

(二)IP 地址和地址映射

  1. IP 地址特点

    • 与链路类型、设备硬件无关,由管理员分配,是逻辑地址。

  2. 网络号和主机号

    • 网络号区分不同 IP 网络,主机号标识网络内节点。

  3. IP 地址分类

    img

    • A类:第一个八位段以0开始;首位取值范围1-126

      1.0.0.0-126.255.255.255

    • B类:第一个八位段以10开始;首位取值范围128-191

      128.0.0.0-191.255.255.255

    • C类:第一个八位段以110开始;首位取值192-223

      192.0.0.0-223.255.255.255

    • D类:第一个八位段以1110开始;首位取值224-239

      组播地址

    • E类:第一个八位段以11110开头,保留研究

  4. 特殊 IP 地址

    img

    • 网络地址:主机位全0,代表特定网段

    • 广播地址:主机位全1,代表特定网段所有节点

    • 环回地址:127开头

    • 网络号主机号全0:代表所有网络,常用指定默认路由

    • 网络号主机号全1:全网广播地址,代表所有节点

(三)ARP

ARP详细概念+不同场景实现原理_arp代理实际使用场景-CSDN博客

  • ARP(Address Resolution Protocol,地址解析协议)

    • 用于根据目的IP地址来解析出MAC地址,进行二层通信.

    • 工作原理

      • 通过广播发送ARP查询请求来请求目的IP的MAC地址,与发送方处在同一个广播域的主机收到该请求后,如果确认查询的目的IP是本机,则单播回应本机的MAC地址;发送方接收到ARP回应后,把该IP和MAC地址写入本机ARP缓存表,下次再与IP进行二层通信则直接使用表中记录来进行;

      • 如果发现查询的IP不是本机,则不回应;

    • 使用场景:

      • 如果目的IP和本机IP处于同一网段,则ARP请求查询的就是目的IP的MAC地址;

      • 如果目的IP和本机IP不属于同一网段

        • 本机存在到达目的IP的路由时,则ARP请求查询的就是该路由下一跳的MAC地址

        • 如果没有明细路由,就查询缺省路由的下一跳(网关)的MAC地址

  • RARP(逆向ARP协议)

    • 根据本机的MAC地址查询出本机的IP地址,一般常见的场景是用于无盘工作站,无盘终端需要通过自己的MAC地址向服务器请求IP地址后才能进行系统引导;

  • 免费ARP

    • 主动使用自己的IP地址作为目标地址发送ARP请求

    • 主要三种作用

      • 用于检查网络中是否有主机和本机的IP地址重复

        给以太网接口设置IP地址时会自动发送免费ARP报文,在DHCP场景客户端在使用DHCP服务器分配的IP地址时也会发送一个免费ARP报文进行地址的冲突检测
      • 用于通告本机新的MAC地址

        当主机更换网卡改变了自己的MAC地址后,为了保证网络的可靠性,有必要在ARP表项老化前,及时向网络中其他设备通告自己的MAC地址的变化
      • 在VRRP备份组中通告主备发生变化

        在VRRP备份组中,当主备设备发生倒换的时候,新的主备设备需要及时向同一网段中的其他设备通告自己状态的变化
  • ARP报文:

    • image-20241022131641516

      image-20241022132000471

        ARP报文分为两种:ARP请求和ARP应答。当主机需要知道某个IP地址对应的MAC地址时,它会发送一个ARP请求,广播给局域网中的所有主机。而知道该IP地址对应MAC地址的主机会发送一个ARP应答,将自己的MAC地址告知请求方。

      • OP:长度2字节 1表示ARP请求报文,2表示ARP应答报文

  • ARP表项

    • 动态ARP表项:由ARP协议动态解析获得,超过一个老化时间(180s)未被使用则会自动删除

    • 静态ARP表项:通过管理员手工配置,不会被老化;优先级高于动态ARP表项,可直接覆盖动态

  • RARP(逆向ARP协议)

    • 根据本机的MAC地址查询出本机的IP地址,一般常见的场景是用于无盘工作站,无盘终端需要通过自己的MAC地址向服务器请求IP地址后才能进行系统引导;

  • 免费ARP

    • 主动使用自己的IP地址作为目标地址发送ARP请求

    • 主要三种作用

      • 用于检查网络中是否有主机和本机的IP的地址重复

      • 用于通告本机新的MAC地址

      • 在VRRP备份组中通告主备发生变化

  • 代理ARP

    img

(四)IP 包转发

  1. 主机单播 IP 包发送

    img

    • 若目的地址所处网络号与本机所处网络号相同

      则目的处于直连网段,解析目的 IP地址对应的硬件地址,将IP包以此硬件地址为目的地址封装成帧发送给目的主机

    • 若处于不同网段

      根据默认网关IP地址解析出默认网关的硬件地址,将IP包以此硬件地址为目的封装成帧发送给默认网关

  2. 路由器单播 IP 包转发

    img

    • 路由器收到一个IP包-检测目的地址

      • 如果为本机则解封装交给上层协议

      • 如果目的不为本机,而是处于某个直连的网段,路由器可以直接通信,则解析该目的主机IP的硬件地址,封装成帧发送给目的主机

      • 如果目的处于不同网段则将IP包交给下一跳路由器,由下一跳转发给目的主机

    • 若目的地址所处网络号与本机任一接口的网络号相同,则目的处于相应接口直连网段

    • 路由器通过查找路由信息判断下一跳路由器地址

  3. 主机接收 IP 包

    img

    • 接收

      • 目的IP地址等于自己IP地址

      • 目的IP地址是一个广播地址

      • 目的IP地址是一个组播地址,本机某个服务处于此组播组

  4. 广播风暴

    • 路由器默认不转发广播包。

(五)ICMP

  • 互联网控制消息协议

  • 定义了错误报告和其他关于IP数据包处理情况的消息

  • 可以用于报告IP数据包传递过程中的错误,失败等信息,提供网络诊断功能

  • ICMP消息

    • ICMP差错消息

    • ICMP查询消息

  • ICMP消息含义

    • 目的不可达(destination unreachable)

      • 目的主机关机/不存在/源不满足需求/分段太大封装不了帧..--路由器检测错误

    • 回波请求(echo request)

      • 测试目的站是否可达

    • 回波响应(echo reply)

      • 对回波请求作响应时发送

    • 参数问题(parameter problem)

      • 包含有问题的IP头和一个指向出错字段的指针

    • 重定向(redirect)

      • 路由器直到其他一些路由器能更快将分组投递,为了方便以后路由,以及今后应当将具有相同目的地址的包发向那里,运行主机动态更新路由表,适应网络条件变化

    • 源抑制(source quench)

      • 速率不匹配导致速率慢的主机拥塞,丢弃一些数据包

      • 源主机通过高层得知丢失了一些包会不断重新发送这些包使得更加拥挤

      • 使源站暂停发送

    • 超时(time exceeded)

      • 当IP包中TTL字段减到0或分片重组定时器到期,此包或任何未重组的分片将从网络中删除

      • 删除分组的路由器向源发送超时(time exceeded)消息说明消息未被投递

    • 时间戳请求和时间戳应答(timestamp request and timestamp reply)

      • 时间戳分组使主机估计它到另一个主机一次往返需要的时间

      • 源主机发送有发送时刻(源时间戳)的timestamp request消息

      • 目的主机收到后创建一个含有源时间戳和目的主机接收时间戳以及目的主机传输时间戳的timestamp reply消息

      • 源主机收到后同时间记录分组到达的时刻--预估IP包投送效率

  • 应用

    • ping

      • 测试网络连通性

      • 主机向目的发送icmp echo request消息,封装在IP包内,目的地址为目的主机IP

      • 目的主机向源发送回icmp echo replay消息,源主机收到后得知目的主机可达

      • 假定中间某个路由器没有到达网络的路由,会向源主机返回icmp destination unreachable消息

五、TCP 和 UDP 基本原理

(一)TCP

  1. 特点

    • 三次握手

      • 建立可靠连接。

    • 端口号

      • 通过端口号标识上层协议和服务,实现网络通道多路复用。

    • 完整性校验

      • 通过对协议和载荷数据计算校验和checksum保证接收方能检测传输中的差错。

    • 确认机制

      • 对于正确收到的数据,接收方通过显示应答告诉发送方。

      • 超出一段时间后,发送方将重传没有被确认的段。

    • 序列号

      • 发送的所有数据都拥有唯一序列号,唯一标识每一个段,明确每个段在数据流中的位置。

    • 窗口机制

      • 可调节窗口,TCP接收方可以通告期望的发送速度,控制数据的流量。

  2. 封装与头格式

    img

    img

    1. 源端口

      • 通信初始化端口,随机生成,标识报文的返回地址。

    2. 目的端口

      • 定义传输的目的,指明接收方计算机上的应用程序接口。

    3. 序列号

      • 大的数据分成小的数据段。

        • 标识TCP源端向目的设备发送的字节流,表示这个报文段中的第一个数据字节。

        • 对每个字节进行计数,第一个序列号随机,后面必须连续。

    4. 确认号

      • 标识期望收到下一个段的第一个字节,并声明此前数据都已经正确无误的收到。

        • 确认号是上一次成功收到的数据字节序列号加1。

        • 收到确认号的源主机会直到特定段已经被收到,字段只在ACK标志设置时才有效。

    5. 数据偏移

      • 偏移量--重组摆放。

    6. 保留

    7. 控制位

      • URG紧急指针字段标志

        • 紧急指针有效 - 有紧急数据。

      • ACK确认字段标志

        • 数据包是否含有确认性质。

          • 一般第一个数据包没有,后面都有。

      • PSH推功能

        • 请求紧迫位,尽快处理。

      • RST重置连接

        • 重新建立连接。

      • SYN同步序列号

      • FIN数据传输完毕

        • 终止连接。

    8. 窗口

      • 流量控制,动态调整窗口大小。

    9. 校验和

    10. 紧急指针

      • 数据包里的紧急数据。

    11. 选项

    12. 数据

    13. 填充

  3. 端口号

    img

    1. TCP/UDP采用端口号标识上层的应用程序,使得这些程序可以复用网络通道。

      1. IP协议用6标识TCP。

      2. 17标识UDP。

    2. TCP/UDP端口号访问0 - 65535。

      1. 1 - 1023给众所周知的服务使用。

      2. 大于1023的端口没有统一管理。

  4. TCP连接的建立

    img

    1. 三次握手方式建立可靠连接。

      • SYN(同步段)来描述一个连接的三次握手消息。

    2. 过程

      • 主机A向主机B发送:SYN(seq = a)。

        • SYN置位1,序列号seq随机a。

        • 主机B收到消息检查数据包SYN置位1--A在向我建立连接。

      • 主机B向主机A发送:SYN(seq = b,ack = a + 1)。

        • SYN置位1,序列号seq随机b; ack置位1--有确认性质。

        • 主机B收到数据包,SYN置位1--B在向我建立连接,确认号a + 1代表a + 1前的所有都已经全部收到,下次发送信息以a + 1开始发送。

      • 主机A向主机B发送:SYN(seq = a + 1,ack = b + 1)。

        • 发第二次数据a + 1开始 ; 确认b + 1前的所有都已经全部收到,下次发送信息以b + 1开始发送。

  5. TCP连接的拆除

    img

    过程

    • 四次挥手。

    • 主机A发送FIN(seq = p)。

      • FIN置位1代表终止连接信息。

    • 主机B发送ACK(ack = p + 1)。

      • ack置位1确认p + 1之前终止。

    • 主机B发送FIN(seq = q)。

      • FIN置位1代表终止连接信息。

    • 主机B发送ACK(ack = q + 1)。

      • ack置位1确认q + 1之前终止。

  6. TCP可靠传输机制

    传一批,确认一批

    img

  7. 滑动窗口

    img

  8. 重传

    img

(二)UDP

  1. UDP封装

    img

  2. UDP头格式

    img

  1. 源端口

  2. 目的端口

  3. 长度

    • 表明包括UDP头和数据在内的整个UDP数据包长度。

  4. 校验和

    • 基于部分IP头信息,UDP头和载荷数据内容计算得到,用于检测传输过程中出现的错误。

  1. TCP与UDP对比

    img

    1. UDP没有任何可靠性保证,基于UDP的应用和服务通常工作于可靠性较高的网络环境下'

    2. UDP优势

      1. 实现简单占用资源少

      2. 带宽浪费少

      3. 延迟小

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐