第七章 Internet基本原理

夙愿已清 提交于 2020-11-24 18:33:56

主要内容

  1. 概况
  2. 网络协议
  3. 路由协议
  4. 传输层协议
  5. 常用的接入技术

7.1 概述

Internet (因特网) 全球最大的,开放的、众多网络相互连接而成的特定的计算机网络,前身美国ARPPANET

1986年,美国国家科学基金会(NSF)利用ARPPANET发展起来的TCP/IP协议集,建立了NSFnet广域网,连接100多所大学机构

NSFnet与1990年6月彻底取代ARPPNET而成为Internet主干网

 

7.2

不同结构的网络实现互联,首先要解决的就是统一编制问题

每个子网,每个主机分配一个全球唯一的地址,就是IP地址

Internet总,由NIC(Internet ‘s Network Information Center)统一负责IP的规划(分层分管不同区域)

 

IP地址的组成:网络号+主机号

地址表示采用点分隔的十进制表示法,如166.111.68.3

分为5类:A类,B类,C类、D类、E类

 

子网

为了便于管理和使用,可以将网络分为若干供内部使用的部分,称为子网。

 

子网怎么划分?

从主机号部分拿出几位作为子网号

在原来IP地址结构的基础上增加一级结构的方法称为子网划分

 

子网划分后,如何识别不同的子网?

子网掩码,与地址做与运算确定子网号

 

2.IP分组及转发

使用TCP/IP协议的网络层传输的基本数据单元(PDU)称为IP分组

通过IP分组完成不可靠、无连接的数据传输

IP分组由分组头(IP头)和数据区两部分组成

 

IP分组格式

IP头包括20个字节的固定部分和变长部分(最长40字节)的可选部分

  • 版本域(VERS):4比特,表示与IP分组对应的IP协议版本号,目前广泛使用的是IPv4
  • 头部长度(HLEN):IP分组头长度,最小为5,最大为15,单位为32位(最小20字节,最多60字节)
  • 服务类型域(Type of Service ,TOS):(IPv4没有用)
    3个优先级位
    3个标志位:D(Delay) 延时,T(Throughput)吞吐量,R(Reliability)可靠性
    2个保留位

  • 总长度:占16bit ,指IP分组头和数据部分的总长度,单位:字节,因此数据报最大长度位65535字节
  • 标识域:占16bit,用于唯一标识IP分组,用哪个与IP分组的分段和重组
  • 标志位:
    DF(Don't Fragment):指明IP分组是允许分段,DF=0时允许
    MF(More Fragment):指明是否有后续分段,MF=0表示最后一个分片
  • 段偏移量(Fragment offset)
    用于标明报文片在原始分组中的位置,分段和重组必用
    除最后一个段外的所有段的长度必须是8字节(基本段长)的倍数
  • 生存期(Time to live)
    8比特,指明IP分组在网络中传输的最长时间。IP包每经过一个路由器TTL减1,为0则分组被丢弃。
  • 协议域(Protocol)
    上层位哪种传输协议,TCP、UDP等
  • 头校验和(Header checksum)
    只对IP报头进行校验,不校验数据部分
    算法:每16位求反,循环相加(进位加在末尾),和再求反
    有简单算法(??)
  • 源地址(Source address)和目的地址(Destination address) 32位IP地址
  • 选项(Options)
    变长,长度为4字节的倍数,不够则填充,最长为40字节

 

IP分组的转发

每个IP分组包含目的主机的IP地址

IP地址中的网络地址唯一标识Internet中的一个物理网络

所有连接到相同物理网络的主机和路由器共享其地址中的网络地址部分,它们在这个网络上可以直接通信

Internet中的每个物理网络至少有一个与之相连的路由器

 路由器总是具有两个或者两个以上的IP地址,路由器的每一个接口都有一个不同网络号的IP地址

 

7.2.2与IP地址相关的一组协议

ARP

地址解析协议,解决网络层地址(IP地址)与数据链路层地址(MAC地址)的映射问题

查看本机ARP表 :arp -a

 

检查测试目的IP是否在本自网内?

是,则通过ARP协议获取目的IP的MAC地址,封装802.3帧,广播发出。

否,则首先读取本机设置的网关IP,通过ARP协议获取网关的MAC地址,广播发出帧。

网关收到帧后,解析帧,取出IP分组,获取目的IP地址,并通过路由表获取下一跳的IP地址(或接口),再通过ARP协议获取下一跳IP地址的MAC地址,封装802.3帧,广播...直到出口网关(B所在子网)

网关收到802.3帧后,解析,取出IP分组,通过ARP协议获取目的IP的MAC地址,封装802.3帧,广播发出

目的PC收到802.3帧后,解析IP分组,取出UDP/TCP报文,转交给上层应用。

在路由器转发分组时,源IP和目的IP始终不变,而源MAC和目的MAC每次转发都会改变

 

RARP

反向地址解析协议:用于将一个已知的MAC地址映射到IP地址

 

BOOTP

引导协议,是一种基于UDP的协议

主要用于无盘工作站从服务器得到自己的IP地址、服务器的IP地址、启动映像文件名、网关IP等。工作原理与RARP类似

 

DHCP(Dynamic Host Configuartion Protocol)

动态地址配置协议,DHCP是BOOTP的扩展,基于客户/服务器模式的,提供了一种动态指定IP地址的配置参数的机制

工作原理:

  • 寻找DHCP服务器
  • 提供IP租用地址
  • 接收IP租用

 

7.2.3  ICMP

网际控制报文协议(Internet Control Message Protocol)

是IP层协议,用来发送差错报告和控制信息

在IP路由的过程中,若主机或路由器发生异常,便可利用ICMP来传送相关的信息。

分组格式:

 

ICMP分组是封装在IP分组的数据部分进行传输的

 

PING命令

Packet Internet Grope ,因特网包探索器,用于测试网络连接量的程序

Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答

一般的,连续发送4个32字节的ICMP回声请求包,根据是否收到回声应答、以及回声相应时间判断网络的连通性

 

PING测试

Ping本机IP:检测本机网卡配置是否正常(从网卡出去又回来)。

Ping网关:检测网关路由器是否正常。

Ping远程IP

 

注意:有些网络设备会拒绝接收Ping包,可以设置 

 

7.2.4 IGMP

Internet 组管理协议,IP层协议,是一种节省带宽的技术,它把一个数据流同时传送给许多个接收者。

IGMP协议用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

参与ip组播的主机可以在任意位置、任意时间加入或退出直播组

IP组播通常应用在视频点播、网络会议等场合

IGMP协议版本

  • IGMPv1
    允许主机加入组播组,但没有离开信息。路由器基于超时机制去发现其成员的离开。
  • IGMPv2
    包含了离开信息,允许迅速向路由协议报告组员终止情况
  • IGMPv3
    允许主机指定它要接受或阻止的通信流量的主机对象

 

IGMP分组格式

IGMP类型

  • 类型1,由多播路由器发出的查询报文
  • 类型2,由主机发出的报告报文(主机主动发送或相应给多播路由器)

IP组播地址

IP采用D类地址来支持多播。每个D类地址代表一组主机。

D类IP地址范围在224.0.0.0到239.255.255.255之间

多播是由特殊的多播路由器来实现,各个多播路由器每分钟发送一个硬件多播信息给子网上的主机,要求他们报告其当前所属的是哪一组。

 

7.2.5 CIDR

无类域间路由 Classless InterDomain Routing

提出:

  • Internet指数增长,IP地址即将用完
  • 基于分类IP地址空间的组织浪费了大量的地址
  • B类地址很难申请,C类地址的增多使得路由器选择表暴涨

 

7.2.6 IPv6

提出

  • CIDR不能从根本上解决IP地址空间匮乏问题
  • 1990年,IETF开始IPv6的工作
  • 1993年,进一步讨论、修改后,形成IPv6
  • IPv6和IPv4不兼容,但与其他Internet协议兼容,如TCP、UDP、OSPF、BGP、DNS等
  • 地址从64位增加到128位(16字节)

设计目标 

  • 支持几乎无限大的地址空间
  • 减少路由表大小,使得路由器能更快得处理包
  • 提供更好的安全性,实现IP级安全性
  • 支持多种服务类型,并支持组播
  • 允许新旧协议共存一段时间
  • 协议必须支持可移动主机和网络

IPv6的地址表示

  • 16字节地址表示用冒号(:)隔开的8组,每组4个16位进制

IPv6的地址类型

三种基本类型

  • 单播(unicast):单播就是传统的点对点通信
  • 多播(multicast):多播是一点对多点的通信
  • 任播(anycast):这时IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付给其中一个,通常距离最近的一个。

IPv6数据报的首部

IPv6将首部长度变为固定的40字节,称为基本首部(base header)

将不必须的功能取消了,首部的字段数减少到只有8个

取消了首部的检验和字段,加快了路由器处理数据报的速度

 

IPv6分组头

  •  版本:值为6
  • 通信量:区分不同IPv6数据报的类别或优先级
  • 流标号:流是互联网上从特定源点到特定终点的一系列数据报,所有数据同一个流的数据报都具有同样的流标号
  • 有效载荷长度:指示IP包中40字节包头后面部分的长度,最大值64KB
  • 下一个首部:指示扩展包头,若是最后一个包头,则只是传输协议类型(TCP/UDP)
  • 跳数限制:IP包的生存时间
  • 源地址:16字节定长地址
  • 目标地址:16字节定长地址

 

 IPv6分组扩展包头

 

IPv4到IPv6过渡

  • 双协议栈 Dual stack approach
    同时安装两种协议,并可完成协议间的互相转换
  • 隧道技术 Tunneling
    IPv6分组作为IPv4分组的负载在IPv4路由器间传送

 

双协议栈 源地址和目标地址保持不变

隧道技术封装了新的源地址和目的地址

 

 

7.3 Internet 路由协议

7.3.1  Internet 路由基本概念

  • 为了便于管理,Internet将整个互联网络划分为相对较小的自治系统(AS ,autonomous system)
  • 一个自治系统内的所有网络通常属于一个行政单位(例如一所公司、大学或政府部门)
  • 一个自治系统的所有路由器在本自治系统内必须是连通的

 

Internet 路由协议分类

  • 内部网关协议IGP interior gateway protocol
    自治系统AS内使用的路由算法,RIP、OSPF
  • 外部网关协议EGP
    exterior gateway protocol
    自治系统AS之间使用的路由算法,BGP

 

RIP 路由信息协议 Routing Information Protocol

是一种分布式的基于距离向量的路由选择协议

距离的定义

  • RIP使用条数度量来衡量到达目的站的距离,不能同时使用多种度量,比如时延等
  • RIP允许一条路径最多只能包含15个路由器
  • “距离”的最大值为16时即相当于不可达。课件RIP只适用于小型互联网

三个要点

  • 仅和相邻路由器交换信息
  • 交换信息是当前本路由器所知道的全部信息,即自己的路由表
  • 按固定时间间隔交换路由信息,如30s

报文格式

 

优缺点

  • 实现简单,开销小
  • 网路故障时,要经过较长时间才能将此信息传送到所有路由器
  • 限制了网络的规模,它能使用的最大距离为15
  • 路由器之间交换完整路由表,随着网络规模扩大,开销也就增加

 

OSPF 开放最短路径优先 Open Shortest Path First

是一种公开发表的分布式的链路状态协议

要点

  • 向本自治系统内所有路由器发送信息(洪范)
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态(即本路由器都和哪些路由器相邻,以及该链路的“度量”)
  • 支持多种距离衡量尺度,例如,物理距离,延迟等

OSPF的分层路由

  • 为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统由划分为若干个更小的范围,叫做区域(areas)
  • 每一个区域都有一个32bit的区域标识符(用点分十进制表示)
  • 设定一个主干区域(backbone area),标识符规定为0.0.0.0 ,用于连通其他各区域
  • 利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这就减少了整个网络上的通信量
  • 在一个区域内部的路由器只知道区域的完整网络拓扑,不需要知道其他区域的网络拓扑情况
  • OSPF更加适合大规模的网络路由

 

外部网关路由协议BGP

BGP是不同自治系统的路由器之间的交换路由信息的协议

BGP是一种距离向量路由算法

 

BGP发言人与会话

  • 每个自治系统的管理员要选择至少一个路由器作为该自治系统的 “BGP发言人”
  • BGP发言人往往就是BGP边界路由器
  • BGP发言人之间要交换路由信息,就要建立BGP会话(session)

IBGP和EBGP

IBGP:用来在AS内部完成BGP更新信息的交换,维护AS内部连通性

EBGP:用来建立AS之间的路由器会话

 

7.4传输层协议

引入传输层的原因

  • 消除网络层的不可靠性
  • 向上层屏蔽通信子网的实现细节
  • 弥补上层提出要求和下层提供服务间的差异(如需要有序)

 

作用范围

提供从源端主机到目的端主机的可靠传输

提供进程级的访问能力

两个主机进行通信实际上就是两个主机中的应用程序相互通信

应用程序之间的通信又称为端到端的通信

运输层的另一个重要功能就是复用和分用

 

面线连接传输层协议的设计

  • 分段和组装
    网络层PDU长度小于传输层PDU,对传输层PDU进行分段
  • 拼接和分割
    对传输层PDU进行拼接
  • 多路复用和分流
  • 流量控制和缓冲管理
  • 建立连接和释放连接

7.4.2

用户数据报协议 UDP (User Datagram Protocol)

不需要建立连接

无拥塞控制

常用于流媒体数据传输

  • 低负载
  • 速率敏感

报文格式

  • 源端口
  • 目的端口
  • 报文长度:指示数据报总长度,包括报头及数据区总长度
  • 校验和:为0表示未选校验和,全1表示校验和位0
  • 伪报头:位于UDP报头之前,用于验证UDP数据报是否被送到正确的目的节点

 

传输控制协议 TCP Transmission Control Protocol

用于提供可靠的面向连接的数据传输服务

TCP数据报长度要求小于64字节

TCP协议是面向字节流的,为每一个字节分配序号

 

TCP报头格式

  • 源端口和目的端口:各16位
  • 序号和确认号:以字节为单位编号,各32位
    每次发送的报文段的首部中的序号字段数值表示该报文段第一个字节的序号
    确认号表示接收端期望下一次收到的数据中的第一个数据字节的序号
  • TCP头的长度:4位,长度单位为32字节
  • 6位的保留域
  • 6位的标识位:置1:有效
    URG:和紧急指针配合使用,发送紧急数据
    ACK:确认号是否有效
    PSH:只是发送方和接收方将数据不做缓存,立刻发送或接收
    RST:由于不可恢复的错误重置连接
    SYN:用于连接建立指示
    FIN:用于连接释放提示
  • 窗口大小:基于可变滑动窗口的流控,指示发送方从确认号开始可以在发送窗口大小的字节流
  • 校验和:为增加可靠性,对TCP头,数据和伪头计算校验和
  • 可选项域

 

TCP连接管理

两军问题

三次握手建立连接

确认号:下次期望接收到的序号

为什么三次握手而不是两次?防止已经失效的连接请求报文段突然又传送到的目标节点,因而产生失误。

A向B发起握手请求,第一个请求由于网络问题阻塞在路上,超时。A再次发送握手请求,成功握手,并且A,B结束会话后,关闭了连接。此时第一个阻塞的请求到达B,B认为是正常连接请求(不知道是延迟到达的),此时如果B会正常回复A,若不等待A的第二次确认B就建立连接,则会产生一次不需要的连接请求,浪费资源。

 

TCP的传输策略

  • TCP窗口管理机制
    基于确认和可变窗口大小
    窗口大小为0时,正常情况下,发送方不能再发TCP段;但是,1.紧急数据可以发送 2.为防止死锁,发送方可以发送1字节的TCP段,以便让接收方重新声明确认号和窗口大小
  • 改进传输层性能
    1.发送方缓存应用程序数据,等形成较大段再发出。
    2.在没有可能进行“捎带”的情况下,接收方延迟发送确认段
  • 使用Nagle算法
    当应用程序每次向传输实体发出一个字节时,传输实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认
    使用数据发送速度快,而网速较慢的情况
  • 使用Clark算法解决傻窗口症状
    傻窗口症状:当应用程序一次从传输层实体读出一个字节时,传输层实体会产生一个一字节的窗口更新段,使得发送方只能发送一个字节
    解决办法:限制收方只有在具备一半的空缓存或最大段长的空缓存时,才产生一个窗口更新段

TCP拥塞控制

出现拥塞的两种情况

  • 快网络小缓存接收者:来不及接收
  • 慢网络大缓存接收者

导致网络拥塞的两个潜在原因:

  • 网络能力
  • 接收能力

处理快网络小缓存

  • 建立连接时声明最大可接受段长度
  • 利用可变滑动窗口协议防止出现拥塞

处理慢网络大缓存

  • 发送方维护两个窗口:接收方和拥塞窗口,发送方窗口取两个窗口的最小值发送
  • 拥塞窗口依照慢启动算法和拥塞避免算法变化

接收窗口rwnd(receiver window)

  • 接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制
  • 接收端将此窗口值放在TCP报文的首部中的窗口字段,传送给发送端

拥塞窗口cwnd(congestion window)

  • 发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制

慢启动(slow start)算法

  • 连接建立时拥塞窗口初始值为该连接允许的最大段长,不超过64K
  • 发出一个最大段长的TCP段,若正确确认,拥塞窗口变为两个最大段长
  • 发出(拥塞窗口/最大段长)个最大长度的TCP段,若都的到确认,则拥塞窗口加倍
  • 重复上一步,直至发生丢包超时事件,或拥塞窗口大于阈值

拥塞避免(congestion avoidance)算法

  • 若拥塞窗口大于阈值(预设值,如24 个最大段长24 * 64 K),从此时开始,拥塞窗口线性增长,一个RTT周期增加一个最大段长,直至发生丢包超时事件
  • 当超时事件发生后,阈值设置为当前拥塞窗口大小的一半,拥塞窗口重新设置为一个最大段长;
  • 执行慢启动算法

 

7.5 Internet 接入技术

  • 基于传统电信网的有线接入
  • 基于有线电视网络的接入
  • 基于电力网络的接入
  • 以太网接入
  • 无线接入
  • 光纤接入

PSTN  共用电话交换网(Published Switched Telephone Network)

  • 利用PSTN通过调制解调器MODEM拨号实现用户接入的方式,下行56Kbps

ISDN  综合业务数字网(integrated service digital network)

  • 采用数字传输和数字交换技术,将多种业务复用在一个统一的数字网络中进行传输和处理

xDSL技术

  • xDSL是各种DSL(DIgital Subscriber Line,数字用户线路)技术的通称
  • xDSL技术在传统的电话网的用户环路上支持对称和非对称传输模式,用于解决网络服务提供商和最终用户间“最后一公里”的传输瓶颈问题

ADSL非对称数字用户环路

  • 上行和下行带宽不对称,因此成为非对称数字用户线环路
  • 把普通的电话线分离成电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰
  • 在不影响正常电话通信的情况下可以提供最高3.5Mbps的上行速度和最高24Mbps的下行速度

ADSL虚拟拨号

  • 不同于模拟电话线上用调制解调器的拨号,而采用Point to Point Protocol over Ethernet 协议
  • 拨号后用户需输入用户名和密码,检验通过后就建立一条高速并且是“虚拟”的用户数字专线,分配相应的动态IP地址
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!