计算机网络与网络是包含和被包含的关系

电话网、铁路网、人体内神经系统网络都是网络

计算机网络

是一个将分散的、具有独立功能的计算机系统,通过通信设备与路线连接起来,由功能完善的软件实现资源共享和信息传递的系统。

是一个互连(互联互通)的、自治(无主从关系)的计算机集合

功能

  1. 数据通信(保证了连通性)
  2. 资源共享(硬件,如打印机+软件+数据)
  3. 分布式处理(多台计算机各自承担同一工作任务的不同部分)
  4. 提高可靠性(替代机)
  5. 负载均衡(分布式处理—多台计算机共同承担任务)

组成:硬件+软件+协议(计算机网络的核心—一系列规则和约定的集合)

工作方式:边缘部分+核心部分

  1. 边缘部分:主机所存在的,用户直接使用,用来通信的;
    有两种通信方式C/S方式,P2P方式
  2. 核心部分:为边缘部分进行服务的,如网络、路由器等

功能组成

  1. 通信子网:实现数据通信
  2. 资源子网:实现资源共享、数据处理

image.png

分类

  1. 按分布:广域网(交换技术)、城域网、局域网(广播技术)、个人区域网(WAN、MAN、WAN、PAN)
  2. 按使用者:公用网、专用网(军队、政府、银行等拥有相应的角色和权限才可使用)
  3. 按交换技术:电路交换、报文交换、分组交换
  4. 按拓扑结构:总线型、星型、环形、网状形(常用于广域网)
  5. 按传输技术:广播式网路(共享公共通信信道)、点对点网络(使用分组存储转发路由选择的机制)

标准化工作

要实现不同厂商的硬件、软件之间相互连通,必须遵循统一的标准

分类

  1. 法定标准:由权威机构制定的,正式的合法的标准(OSI)
  2. 事实标准:某些公司产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准(TCP/IP)

RFC

因特网标准的形式

RFC上升为因特网正是标准的四个阶段

  1. 因特网草案,这个阶段只能算是一个构思,不能算是一个RFC文档
  2. 建议标准:从这个阶段开始称为RFC文档
  3. 草案标准:IETF、IAB
  4. 因特网标准

国际标准化的相关组织

  • ISO 国际标准化组织 OSI参考模型、HDLC协议
  • ITU 国际电信联盟 制定通信规则
  • IEEE 国际电气电子工程师学会 5G、IEEE802系列
  • IETF Internet工程任务组,负责因特网的相关标准的指定

以太网

基础

  • “以太网” 不是一种具体的网络, 而是一种技术标准; 它既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等
  • 以太网中的网线必须使用双绞线,传输速率有10M, 100M, 1000M等
  • 以太网是当前应用广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等

    以太网中帧的格式

计算机网络基础概念 - 图2

  • 由上图可以看出帧协议类型字段有三种值,分别对应IP、ARP、RARP(现在已经弃用)
  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的

    关于MAC地址

  • MAC地址是用来识别数据链路层中相连的结点

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

在数据链路层,存在多种异构的网络,比如以太网、令牌环网等,也就是数据链路层存在多种MTU,既多种不同的传输信道,如果只有MAC地址,在不同的网络之间是每有办法传输的,只能在MAC地址上封装一次抽象的IP地址来封装底层各种不同的网络。

MAC地址与IP地址

  • 一个数据报中的源IP地址和目的IP地址是为了标识这个数据的起点和终点
  • 源MAC地址和目的MAC地址是为了标识上一站的地址和下一站的地址
  • 在一个数据报的传输过程中,IP一直不变,而MAC地址是一直在变的

    MTU

    MAC帧中的数据长度规定为46-1500字节,ARP(地址解析协议)数据包的长度不够46字节要在后面补填充位,如果大于1500字节,必须要求网络层进行分片
    最大值1500称为以太网的最大传输单元(MTU)不同的网络类型有不同的MTU
    如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片。

    MTU&IP

    由于链路层存在MTU的限制,导致网络层的报文如果超过1500字节,就必须要对齐进行分片发送。
    将较大的IP包分成多个小包, 并给每个小包打上标签,每个小包IP协议头的 16位标识(id) 都是相同的,这样在重组的时候就知道这个小包来自于哪个报文。
    每个小包的IP协议头的3位标志字段中, 第2位MF置为0, 表示允许分片, 第3位DF来表示结束标记(当前是否是后一个小包, 是的话置为1, 否则置为0)。

到达对端时再将这些小包按顺序重组, 拼装到一起返回给传输层。一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。

MTU&UDP

  • 只要UDP报文中携带的数据超过过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个IP数据报。
  • 这些IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加。

    MTU&TCP

  • TCP报文的长度不能无限大,依然要受制于MTU, TCP的单个数据报的大消息长度称为MSS(Max Segment Size)。

  • TCP在建立连接时,首先会和对方协商MSS的大小。理想的情况下,MSS的值正好是在IP不会被分片处理的大长度(这个长度仍然是受制于数据链路层的·MTU)
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。然后双方得知对方的MSS值之后选择较小的作为最终的MSS。MSS的值就是在TCP首部的40字节变长选项中(kind=2)。
  • **MSS = MTU - TCP首部 - IP首部**,既TCP报文的数据长度