计网最终复习

发布于 2022-07-04  20 次阅读


目录

计算机网络最终复习

Written By Landasika

绪论

①OSI参考模型和TCP/IP模型
*②五层模型
③基本的一些概念

计算机网络最基本的功能:

OSI参考模型和TCP/IP模型

OSI参考模型及其功能

  • OSI参考模型的三个主要概念:服务、接口、协议


TCP/IP的四层模型及其功能

对比

五层结构

层次 任务 传输单位 功能 硬件 协议
物理层 透明地传输比特流 比特 为数据端设备提供传送数据的通路 集线器、中继器
数据链路层 将网络层传下来的IP数据报封装成帧 ①链路连接的建立、拆除、分离 ②帧定界和帧同步 ③差错检验 交换机,网桥 PPP
网络层 ①将传输层传下来的报文段封装成分组 ②选择适当的路由,使传输层传下来的分组能够交付到目的主机 数据报 ①为传输层提供服务 ②组包和拆包 ③路由选择 ④拥塞控制 路由器 ICMP、ARP、RARP、IP、IGMP
传输层 负责主机中两个进程之间的通信 报文段(TCP)或用户数据报(UDP) ①为端到端连接提供可靠的传输服务 ②为端到端连接提供流量控制、差错控制、服务质量等管理服务 TCP、UDP
应用层 提供系统和用户的接口 ①文件传输 ②访问和管理 ③电子邮件服务 FTP、HTTP、SMTP

一些概念

  • 时延

    • 总时延=发送时延+传播时延+处理时延+排队时延
  • 时延带宽积

    • 时延带宽积=传播时延×带宽
  • 通信子网和资源子网

    • 通信子网:实现网络通信功能的设备及其软件的集合。如:中继器,集线器,网桥,路由器,
    • 资源子网:把网络中实现资源共享功能的设备及其软件的集合。如:计算机,服务器
  • 网络模型分层的目标:

    • ①提供标准语言
    • ②定义标准界面
    • ③增加功能之间的独立性
  • 因特网采用的核心技术:分组交换技术(TCP/IP)

物理层

*掌握电路交换、报文交换、分组交换的工作方式和特点
了解奈奎斯特定理和香农定理
了解中继器、集线器、通信概念

奈奎斯特定理和香农定理

https://blog.csdn.net/dallin0408/article/details/59510405

奈奎斯特定理

  • 采样定理:模拟信号转化成数字信号时,采样频率是信号频率的2倍。
  • 奈奎斯特定理:适用的情况是无噪声信道
Cmax=2×B×log(2)L
这里Cmax指的是信道的最大容量,B是信道的带宽,L还是信号电平的个数
  • 注意这个地方L和最大数据传输率有关,所以,L足够大的时候,一个码元携带无穷个bit,那么C可以无穷大

香农定理

香农定理给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。

在有随机热噪声的信道上传输数据信号时,信道容量Rmax与信道带宽W,信噪比S/N关系为:Rmax=W*log2(1+S/N)。

注意这里的log2是以2为底的对数。

类比:城市道路上的汽车的车速(业务速率)和什么有关系?

除了和自己车的动力有关之外,主要还受限于道路的宽度(带宽)和车辆多少、红灯疏密等其他干扰因素(信噪比)。

俗话说:“有线的资源是无限的,而无线的资源却是有限的。”无线信道并不是可以任意增加传送信息的速率,它受其固有规律的制约,就像城市道路上的车一样不能想开多快就开多快,还受到道路宽度、其他车辆数量等因素影响。这个规律就是香农定理。

*数据传输方式

电路交换

最主要的特点就是独占链路,在AB建立连接后,交换设备ABCD这条链路就无法被他人使用直到主机AB连接断开

过程:(建立连接。数据传输。释放连接。)
1、A发送一个建立连接的请求,通过路由选择算法到达B,B回复给A一个应答请求,连接建立
2、双方开始传输数据
3、同过程1类似,此次发送释放连接的请求,连接断开
通俗来讲就是打电话(是电话,不是手机)的过程,先打通,对方接通;搞事情;然后挂掉

分组交换

分组交换采用存储转发存储方式,将长报文切片分组,然后逐个发送。
有两种是实现形式:数据包和虚电路(具体会在网络层讲解)

报文交换

一次性发送数据块

源给A,A发现B空闲给B,不空闲暂存;B发现目的空闲,给目的
只有传输的那一段是占用的;当A给B传,只有AB这条链路被占用,其他的主机仍可以使用其他链路
通俗来讲就是发QQ的过程,不管对方在不在线你都可以发,发过去以后存着,等上线了就能看到

总结

交换方式 特点 过程 优点 缺点
电路交换 独占链路 建立连接。数据传输。释放连接。 1、传输速度快、高效。2、实时。 1、资源利用率低。2、新建连接需要占据一定的时间,甚至比通话的时间还长。
分组交换 切片分开发送 先切片,存储,发送 1、设计简单。2、资源利用率很高。 1、不具有实时性。2、存在延时。3、会造成通信阻塞。4、存在无用的重复数据。5、会出现丢包的情况。
报文交换 一次性发送整个数据块 空闲发送,不空闲等待 1、无需建立连接。2、提供多个目标。3、提高利用率 1、实时性查。2、传输时延长

数据链路层

  • 主要功能:

    ①链路连接的建立、拆除、分离 ②帧定界和帧同步 ③差错检验

  • 主要任务:

    将网络层传下来的IP数据报封装成帧:有确定无连接。无确定无连接,有确定面向连接(连接之前必须经过确定)

组帧

概念

按照一定规律将网络层递交的分组封装成帧。

方法

字符计数法

用一个特殊字符表示开始,然后用一个计数字段来表明该帧所含字节的长度。
缺点:一旦计数字段传错或者丢失,就无法实现帧同步。

*字节填充法

使用特殊的字符作为帧的开始和结束

问题:payload出现标志字符怎么办。
类似于web的绕过机制,用\转移或者构造闭合来理解就行了。
这里用ESC作为转义字符

*位填充法

差错控制

检错编码

1、奇偶校验码

在信息码后面加上一位校验码,分奇校验和偶校验。
区别就是添加上一位使得1的个数是奇数还是偶数

2、循环冗余码

首先有一个多项式。例如

然后进行模2除法,也就是减法操作的时候用异或来计算。

纠错编码

*海明码(计网不是重点,但是计组是重点)

高分笔记讲的非常详细。
这里简要说一下位数的运算。
海明码的的位数(数据码k+校验码r)加起来要小于等于2的r次方
也就是
2^r≥k+r
其中现在常用的是拓展海明码,也就是多了个第一位
所以这个公式是
2^r≥k+r+1

校验和

将需要校验的字段16bit为一组,和一组16bit的0异或

流量控制与可靠传输

流量控制

1、停止-等待流量控制

发一个包等到确认之后再发下一个包

2、滑动窗口流量控制

首先,滑动窗口分为发送窗口和接收窗口。这两个东西没有任何关系,大小没关系!
发送窗口,依次发送帧1 2 3,直到达到窗口的容量就停止,等待确认,然后收到1的确认的时候,向下滑动,移动一位到2 3 4帧
接受窗口 ,收到一个帧后,将窗口向下移动一个位置,并发送确认帧。若收到的数据帧落在了接受窗口之外,则一律丢弃该数据帧。

可靠传输机制(滑动窗口协议)

0、几个概念

  • 确认:确认是一种无数据的控制帧,可以使接收方能让发送方知道哪些内容被正确接受(告诉发送的人我已经收到了)
  • 捎带确认:将确认帧放在一个回复帧里面
  • 超时重传:超过规定时间没得到确认,就重新发送

单帧滑动窗口(停止等待协议)

相当于发送窗口和接受窗口为1的滑动窗口协议

后退N帧协议(GBN)协议

若采用n个比特对帧进行编号,其发送窗口尺寸W必须满足 1≤W≤2^n-1
接受窗口尺寸为1

  • 什么时候会后退N帧:在出现长时间没收到ack确认包的时候后退N帧
  • N的确定:只要收到ACKn,也就是第n帧的确认包,就会认为前面n-1帧全部收到了

选择重传(SR)协议

  • 发送窗口和接受窗口的尺寸都大于1,且小于等于2^n-1
  • 和滑动窗口一样
  • 每个发送缓冲区对应一个计时器,计时器超时,缓冲区的帧重传,且一旦接收方怀疑帧出错,就会发送否定帧NAK,要求重传

点到点的PPP协议


介质访问控制

静态划分信道

①频分复用

将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

②时分复用

时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。

③波分复用

波分复用就是光的频分复用。使用一根光纤来同时传输多个光载波信号。

④码分复用

各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。

*随机访问介质访问控制

ALONE协议

纯ALONE协议

简而言之:想什么时候发都行,出现冲突过一会再发
当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据
如果在一段时间内没有收到确认, 该站点就认为传输过程中发生了冲突
发送站点需要等待一段时间后再发送数据,直至发送成功

时隙ALONE协议

将时间划分为一段段等长的时隙, 规定只能在每个时隙开始时才能发送一个帧

*载波侦听多路访问【CSMA】协议

发前先听,空闲发送,冲突后随机重发

1-坚持CSMA
  • 当一个结点要发送数据时,首先侦听信道:
    如果信道空闲就立即发送数据,
    如果信道忙则等待,
    同时继续侦听直至信道空闲
    如果发生冲突,则随机等待一段时间后,再重新开始侦听信道

  • “1-坚持”的含义是指:当侦听到信道忙后,继续坚持侦听信道,当侦听到信道空闲后,发送帧的概率为 1,即立刻发送数据

非坚持CSMA

当一个结点要发送数据时,首先侦听信道:如果信道空闲就立即发送数据
如果信道忙就放弃侦听,等待一个随机的时间后再重复上述过程

p-坚持CSMA

1、首先帧听信道,如果信道忙,则等待下一个时隙再帧听
2、如果信道空闲,以概率p发送数据,以概率1-p推迟到下一个时隙
3、如果在下一个时隙信道仍然空闲,则仍以概率 p 发送数 据,以概率 1-p 推迟到下一个时隙
4、一直持续到数据发送成功或者因其他结点发送数据而检测到信道忙为止
5、若是后者,则等待一个随机的时间后再重新开始侦听

总结

\载波侦听多路访问/碰撞检测协议【CSMA/CD】

先听闲发,边听边发(区别于 CSMA 协议),冲突停发,随机重发
PPT上写的:发前先听,空闲发送,边发边听,冲突退避

  • 最多多长时间可以检测到冲突

CSMA/CA协议工作原理

发送数据之前,先检测信道是否空闲;
空闲则发出RTS(request to send),RTS包括发射端的地址,接收端的地址,下一份数据将持续发送的时间等信息;信道忙则等待; 接收端收到RTS之后,将相应CTS(Clear to Send);
接收端发送CTS之后将等待收到数据,在没有收到数据之前,不会回应其他发送端的RTS。
发送端收到CTS之后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)\qquad 接收端收到数据帧之后,将用CRC来检验数据是否正确,正确则相应ACK帧;
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数规避算法来确定随机的推迟时间);

CSMA/CD和CSMA/CA的异同点

  • 相同点:

    CSMA/CD和CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都必须进行监听。当发现信道空闲之后,才能进行接入。

  • 不同点:
    • 传输介质不同: CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网;
    • 载波检测方式不同: 因为传输介质不同,CSMA/CD和CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED),载波检测(CS)和能量载波混合检测三种检测信道空闲的方式;

      CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲入后都会进行有上限的重传,其中CSMA/CD重传的上限值为16次。

以太网

  • 以太网是一种将几台电脑连接起来,能够进行通讯的技术,也就是组建所谓的“局域网”。. 但这种技术并非只有以太网一种,还有“令牌网”、“FDDI网”等等
  • 以太网是一种广播类型的网络,而PPP网是点对点的,当然还有其他类型的网络。

以太网的结构

拓展以太网

物理层拓展

  • 使用转发器

  • 使用集线器

  • 优点
    扩大了局域网覆盖的地理范围;
    方便、灵活、造价低廉;

  • 缺点
    组成了更大的碰撞域,总的吞吐量并未提高;
    如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

    数据链路层拓展

    • 根据 MAC 帧的目的地址对收到的帧进行转发。

      当网桥收到一个帧时,并不是向所有的端口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个端口

  • 利用网桥进行拓展


多端口网桥——以太网交换机

以太网交换机实质上就是一个多端口的网桥。

虚拟局域网VLAN

  • 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组。
  • 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
  • 软件方式实现对逻辑工作组的划分与管理;

VLAN的特点
用交换机端口号;
用 MAC地址;
用网络层地址;
根据IP组播划分VLAN;
按策略划分VLAN;
按用户定义、非用户授权划分VLAN。

VLAN的优点
方便网络用户管理;
减少网络管理开销;
提供更好的安全性;
改善网络服务质量。

网络层

网络层关键功能

  • 路由(控制面)

    选择数据报从源端到目的端的路径核心:路由算法与协议

  • 转发(数据面)

    将数据报从路由器的输入接口传送到正确的输出接口

网络层的设计

面向连接服务与无连接服务

https://blog.csdn.net/weixin_42134168/article/details/118230940

  • 面向连接服务的含义是,在开始发送信息包之前发送端和接收端要进行沟通,建立直接连接,并提醒对方准备接收信息包,然后才开始进入信息包的传送过程。例如,我们打开电话时,要和某个人通话,先拿起电话,拨号码,谈话,然后挂断等过程。

  • 无连接服务的含义是,发送端简单地把信息包送到网络上,在传送信息包之前发送端和接收端没有沟通的过程,也没有对方来的确认,因而也不知道目的地是否接收到。无连接服务既没有拥挤控制功能,也没有流程控制功能。例如,在邮正系统为中,每个信件带有完整的目的地址,并且每一个信件都与其它信件不同,由系统选定的邮件的地址传递。

虚电路和数据报网络

虚电路网络

虚电路网络:在网络层提供面向连接的分组交换服务。双方通信前先虚电路建立连接,通信结束后再拆除连接。
虚电路(virtual circuit):源主机到目的主机的一条路径上建立的一条网络层逻辑连接

对于每一个路由器,都有一个对应的表。

数据报网络

数据报网络:无连接的网络服务。
源主机每要发送一个分组,就为该分组加上目的主机地址,然后将该分组推进网络,每个路由器使用分组的目的主机地址转发分组。不需要建立源到目标的“电路”

对于每一个路由器的表上,都记录到达目的主机所需的下一个路由器的序号

比较

拥塞控制算法

  • 流量感知算法:根据流量状态调整路由表,引导数据流走不想同的路
  • 准入控制:用于虚电路,一旦出现拥塞,就不再创建任何虚电路
  • 流量调节:动态调节发送速度
  • 负载丢弃:拥塞时候,丢弃一些负债来消除拥塞

服务质量问题

提高服务质量的方法

  • 过度提供资源
  • 流量整形:以均衡速度来发送数据
    • 漏桶算法:队列实现,溢出则丢弃,并且按一定速度发送
    • 令牌桶算法:漏桶保存令牌,每T秒产生一个令牌,一个分组被传送出去,必须要抓住并销毁一个令牌
  • 资源预留
  • 准入控制
  • 分组/数据包调节

*路由算法

  • 路由算法作用: 计算目标网络之间的距离
  • 优化原理:贪心算法
    • 如果路由器J在从路由器I到K的最佳路径上
    • 则从J到K的最佳路也在同一路上

静态路由

距离矢量算法

每个路由器维护一张表(级一个矢量),表中标出当前一直的到每个目标的最佳距离,以及所使用的链路。

路由表

无穷计算问题

在链路费用低时,传播速度会比链路费用上涨时传播的更快.
也就是离得近的发的先到,离得远的发的后到。

上图清晰的描数了链路费用上涨时的费用更新情况.在T0时间,dy(x) = 6 ,dz(x) = 5.
t1时段Y发现了y-->x这个链路的费用上涨,进而更新了自己的CV.
式子: dy(x) = max{cy(x),cy(z)+dz(x) } = {60,1+5} = 6
所以 dy(x)变成了6 ,这显然是不对的.
因为dz(x) 的值是基于dy(x)获得的,在dy(x) 发生变化的时候dz(x)的值就应该失效了.也因为这一问题,导致了无穷计数的问题

无穷计算问题解决方法
  • 1、毒性逆转

  • 定义最大度量
    定义一个最大的有效值,超过该值的值就认为是不可达,不再更新.这就相当于为死循环增加了一个结束条件.

链路状态路由

思想:

**发现 **它的邻居节点们,了解它们的网络地址

设置 到它的每个邻居的成本度量

构造 一个分组,包含它所了解到的所有信息

发送 这个分组给所有其他的路由器

计算 到每个路由器的最短路径
路由表的信息

1 发送方的标识(ID of the sender)
2 序列号(sequence number )
3 年龄(age )
4 邻居列表(list of neighbors )
5 到邻居的成本/量度(delay to each neighbor )

应该什么时候构造分组?

周期性地构造和发送,或者有特别的事件发生时构造,比如某条线路或邻居down掉了

区别

动态路由

分层路由

简单来说就是分级管理,三五成坨,三坨成群。

广播路由

每个数据包发送给所有的机器

多目标路由

每个数据包包含一组目标地址
路由器检查所有的目标,将分组的副本发送到必要的链路

逆向路径转发

每个点先周围的结点(该结点必须在最小生成树上和那个点相连接)发送(除了已经被发过的除外)类似于广搜

汇集树

就是最小生成树

总结

IPv4

IPv4协议头部的各个字段信息

各个字段的含义:

  • 版本号(version)
    4bits,IPv4协议填4,IPv6协议填6

  • 头部长度(IHL)
    4bits,单位为4字节,取值范围5-15(确省值为5,即标准头标长20字节),指示IP包头的长度

  • 服务类型(TOS)域

  • 总长度域、标识域

    • 总长度域
      16bits ,单位字节,描述IP包的总长(包括头和数据),最大包长度为65535字节

    • 标识域
      16bits,用于唯一标识该包

  • 标志域、分段偏移域

    • 标志域
      3bits。第1位未定义
      第2位DF代表“不分段”,DF为0表示该包可分段,否则表示不可分段
      第3位MF代表“更多的分段”,MF为0表示这是最后分段,否则表示还有后续分段

    • 分段偏移域
      13bits,单位8字节。取值0-8191,标明当前报片在原包中的位置

  • 生存时间域、协议域

    • 生存时间(TTL)域
      8bits,单位秒,表示包的生存时间。实际操作时,包每经过一个路由器,TTL值减一,当TTL值为0时,该包被丢弃

    • 协议(Protocol)域
      表示高层协议类型。协议的编号详见http://www.iana.org
      0 Reserved
      1 Internet Control Message Protocol (ICMP)
      2 Internet Group Management Protocol (IGMP)
      3 Gateway-to-Gateway Protocol (GGP)
      4 IP (IP encapsulation)
      5 Stream
      6 Transmission Control (TCP)
      8 Exterior Gateway Protocol (EGP)
      9 Private Interior Routing Protocol
      17 User Datagram (UDP)

  • 头部校验和域、源/目的地址域

    • 头部校验和域
      16bits,用来检验包头

    • 源地址域
      32bits,包的发送者的IP地址

    • 目的地址域
      32bits,包的接收者的IP地址

    • 填充(padding)
      包头长度必须为4字节的整数倍,如果选项的长度不是4字节的整数倍,那么就要进行填充

  • 选项(option)

IPv4地址

为了屏蔽物理网络地址的差异,IP采用一种全局通用的地址格式为全网的每个主机和路由器分配一个唯一的地址
实际上,IP地址引用的不是一台主机,而是一个网络接口。大多数主机只有一个网络接口,也就只有一个IP地址

IP地址是32位长,包含网络部分和主机部分

  • IP地址分类

总长度域、标识域

特殊的地址

全0:本网络本身
全1:广播地址
127.0.0.1:回环地址

A类地址

Class A - 0nnnnnnn hhhhhhhh hhhhhhhh hhhhhhhh
第一位为0;7位网络位;24位主机位
第一个字节:0-127
允许多达126个网络(0和127保留)
每个网络允许多达16,777,214(=2^24-2)台主机

B类地址

Class B - 10nnnnnn nnnnnnnn hhhhhhhh hhhhhhhh
前两位10; 14位网络位;16位主机位
第一个字节:128-191
允许多达16,384(=2^14)个网络
每个网络允许多达65,534(=2^16-2)台主机

C类地址

Class C - 110nnnnn nnnnnnnn nnnnnnnn hhhhhhhh
前三位110;21位网络位;8位主机位
第一个字节:192 - 223
允许多达2,097,152网络
每个网络允许多达254台主机

D类地址

Class D - 1110mmmm mmmmmmmm mmmmmmmm mmmmmmmm
前四位1110;28位多播( multicast)地址位
第一个字节:224 - 247
D类地址是多播地址 – 见RFC 1112

E类地址

Class E - 1111rrrr rrrrrrrr rrrrrrrr rrrrrrrr
前四位1111;28位保留地址位
第一个字节:248 - 255
预留将来扩展

划分问题

子网划分

  • 为什么要进行子网划分?

    • 分类地址适用于设计之初的互联网,但是A类网络和B类网络太大,不易管理
      • 解决方法
        • 将网络分成若干供内部使用的子网,对外界,该网络还是一个单独的网络
  • 例子:

划分为三个子网后对外仍是一个网络

子网划分距离:

例如:C类网络192.10.1.0,主机号部分的前三位用于标识子网号,即:

子网地址分别为
11000000 00001010 00000001 00000000 -- 192.10.1.0
11000000 00001010 00000001 00100000 -- 192.10.1.32
11000000 00001010 00000001 01000000 -- 192.10.1.64
11000000 00001010 00000001 01100000 -- 192.10.1.96
11000000 00001010 00000001 10000000 -- 192.10.1.128
11000000 00001010 00000001 10100000 -- 192.10.1.160
11000000 00001010 00000001 11000000 -- 192.10.1.192
11000000 00001010 00000001 11100000 -- 192.10.1.224

子网掩码

经过上述子网划分后存在的问题,如何知道一个IP地址中哪些位是网络号+子网号,哪些位是主机号呢?

解决方法:引入子网掩码

子网掩码格式:

32比特
前一部分全1,1的个数表示相应IP地址中网络+子网部分的位数
后一部分全0,0的个数表示相应IP地址中主机部分的位数

  • 注意

    连接在同一个子网上的所有主机和路由器的子网掩码相同

    两个IP地址和子网掩码相与结果相同,表示这两个IP地址的主机在同一个子网中

无类别域间路由(CIDR)

分类地址存在的问题:
A类、 B类地址太大
一个A类网络有16M个地址
一个B类网络有65536主机地址
C类地址太小
一个C类网络有256个地址
需要更灵活的方式!

解决方法1:子网划分
将网络分成若干供内部使用的子网

但是还存在着问题
C类地址太小
每个C类网络对应一个路由表项,造成路由表膨胀

解决方法2:CIDR
在网络和主机间使用可变长度的划分方法,即无类别地址(CIDR),不需要子网

表示法:
点分十进制表示法后跟“/”和网络部分长度
如:198.16.16.0/21

198.16.16.0/21表示网络部分长度为21的一段地址,这段地址中第一个地址为198.16.16.0,最后一个地址为198.16.23.255

使用CIDR需要路由协议的支持(到目前所有路由器都支持)
每个路由表项进行扩展,增加了32位的掩码。路由表由所有网络的三元组(IP地址、子网掩码、输出线路)构成的
当一个数据包到达时,路由器首先将它的目标IP提取出来,和子网掩码去“与”,结果和表项中的网络号比较,是否匹配
最长匹配原则
路由查找时,若多个路由表项匹配成功,选择掩码长(1比特数多)的路由表项

网络地址转换(NAT)

临时解决IP地址的短缺问题
出现了NAT方案
NAT的基本思想
为公司分配一个或少量的公有IP地址,使用公有IP地址在Internet上传输数据包
在公司内部,每台计算机有唯一的私有IP地址,使用该地址在公司内部传输数据包
当一个数据包离开公司的网络时,它需要一个地址转换
私有地址
10.0.0.0 ---10.255.255.255
172.16.0.0---172.31.255.255
192.168.0.0---192.168.255.255
注:含有私有地址的数据包不应该出现在Internet上

任何时候当一个向外发送的数据包进入到NAT盒中,源地址被公有IP替代,传输层(如:TCP)的源端口号与被一个索引值替代
回来时根据传输层的目的端口号从NAT盒中找到对应的表项,提取相应的私有IP地址和原来的端口号,填到数据包中

  • NAT方案的缺陷

    违反了IP的结构模型。IP的结构模型声明每个IP地址均唯一标示一台机器

    将Internet从一个无连接的网络变成一个面向连接的网络

    违反最基本的协议分层规则

    Internet上层的进程不一定使用TCP或者UDP

    有些应用会在正文内容中插入IP地址

    TCP端口号16位,至多65536台机器被映射

Internet控制协议

ICMP

功能

当发生意外时,通过ICMP可以报告有关的事件
ICMP也可以用来检测因特网
ICMP报文封装在IP包中

ICMP报文需要两层封装

ICMP经常被认为是IP层的一个组成部分

ARP-地址解析协议

问题提出
因特网上主机间通信使用的是IP地址

当一台主机发送数据包时,是根据硬件地址(如:以太网地址)来确定目的接口的
如何将IP地址映射到对应的硬件地址?

通过直接映射解析
ARP

ARP(地址解析协议)
用于在以太网中解决网络层地址(IP地址)与数据链路层地址(MAC地址)的映射问题

地址解析过程举例

1.主机A发送一个广播数据包到以太网上,问“谁拥有IP地址202.112.10.5?”
2.该数据包将会到达以太网202.112.10.0/24上的每一台主机,每台主机都会检查它自己的IP地址
3.只有主机B(IP地址为202.112.10.5)会用自己的以太网地址作为应答
4.主机A收到ARP应答后,提取其中的MAC地址,进行通信

**总的来说:广播请求,单波应答**

优化方法-ARP高速缓存

缓存IP地址和MAC地址的映射关系
减少了广播流量
缓存的映射表项要设置生存时间
一般为20分钟
ARP缓存表不要太大

  • RARP逆向寻址

    如果我知道我的MAC,怎么才能知道我对应的IP呢

DHCP-动态主机配置协议

DHCP允许服务器将IP地址和配置信息动态分发给客户端。正常情况下,DHCP服务器至少会为客户端提供以下基本信息:IP地址、子网掩码、默认网关,也可以提供以下信息,例如DNS服务器地址和 Windows Internet 名称服务(WINS)服务器地址

基本思想
每个网络必须有一个DHCP服务器来负责地址配置
当计算机启动时,它有一个嵌入在NIC中的内置以太网地址或其他链路层地址,但没有IP
该计算机在自己的网络上广播一个DHCP DISCOVER包。(若DHCP服务器和主机不再同一个LAN上,这时需要将路由器配置成一个DHCP中继代理)
当DHCP服务器收到请求,它就为该主机分配一个空闲的IP地址,并通过DHCP OFFER包返回给主机

路由协议

自治系统AS

出于选路目的,处于一个管理机构控制之下的一组网络和路由器
一个AS属于同一个控制域(类似于局域网)
问题简化,分而治之

分层路由

内部网关协议(IGP)

选路信息协议RIP

开放式最短路径优先协议OSPF

OSTF中包含五类数据包

  • 问候
  • 数据库描述
  • 链路状态确认
  • 链路状态更新
  • 链路状态确认
  • Hello报文:发现邻居,建立联系
  • 数据库描述报文:交换两者的信息
  • 链路状态报文:

外部网关协议(EGP)

边界网关协议:BGP

组播

主机使用一个称作IGMP(因特网组管理协议)的协议加入组播组
IGMP的作用:作用:在主机和路由器之间使用,负责报告动态组播组成员的信息

传输层

提供应用端到端服务
利用端口号。

UDP

  • UDP采用无连接的方式,面向报文,不使用拥塞控制,不保证可靠性

  • UDP协议的作用和特点

    • 作用:建立在IP之上,相对于IP, 唯一增加的能力是提供协议端口,以保证进程通信(数据传输的最终目的地)。提供无连接、不可靠的用户数据报传输服务。
    • 特点:无连接、不可靠、传输效率高、支持校验和不校验两种模式、适合于传输量比较少的情况。

TCP

TCP是一个面向连接的、端到端的、提供高可靠的流服务的传输层协议。

数据报格式

1)源端口和目的端口字段:各占 2 字节
2)序号字段:占 4 字节。TCP连接中传送的数据流中的每一个字节都要编上一个序号。序号宇段的值则指的是本报文段所发送的数据的第一个字节的序号
3)确认号字段:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 若确认号=N,则表明到序号 N-1 为止的所有数据都己正确收到
4)数据偏移(即首部长度):占 4 位,表示首部长度,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远
5)保留字段:占 6 位,保留为今后使用,但目前应置为 0,该字段可以忽略不计
6)紧急位 URG: 当 URG=1时, 表明紧急指针宇段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
7)确认位 ACK:只有当 ACK=1时确认号宇段才有效。当 ACK=0 时,确认号无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1
8)推送位 PSH:接收 TCP 收到 PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
9)复位位 RST:当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
10)同步位SYN:同步SYN=1表示这是一个连接请求或连接接收报文
11)终止位FIN:用来释放一个连接。 FIN=1表明此报文段的发送方的数据己发送完毕,并要求释放传输连接
12)窗口字段:占 2 字节。 它指出了现在允许对方发送的数据量
13)检验和:占 2 字节。 检验和字段检验的范围包括【首部】和【数据】这两部分
14)紧急指针字段:占 16 位,指出在本报文段中紧急数据共有多少个字节 ,紧急数据放在本报文段数据的最前面
15)选项字段:长度可变。最大报文段长度(MSS):TCP 报文段中的数据宇段的最大长度
16)填充字段:为了使整个首部长度是 4 字节的整数倍。

可靠性实现

一、以字节为单位的滑动窗口
二、超时重传
三、确认机制

流量控制


接受方B有一定大小的缓冲区,发送方A首先发3个包。
然后B给确认,并说明空闲的缓冲区还有多少,A再发送包。
发送方A发送一堆数据,占满了B的缓冲区。
B一个一个数据化,并且给A说还有多少缓冲区容量。

现在的问题:
A发的包数据大了,导致B的缓冲区溢出
B在处理数据的时候,什么时候给A回复呢



简单说就是,积攒一些空间再发送。

拥塞控制

  1. 慢开始和拥塞避免
  2. 快重传和快恢复
  3. 随机早期检测

三次握手四次挥手

三次握手


1、客户机先向服务器发送一个连接请求报文段。它不含应用层数据,其首部中的 SYN标志位=1。另外,客户机要随机选择一个起始序号 seq=x
2、服务器收到连接请求报文段后,如同意就向客户机发确认,并为该连接分配缓存和变量。其中,SYN 和 ACK =1,确认号宇段的值=x+1,并且服务器随机产生起始序号 seq=y。确认报文段同样不包含应用层数据
3、当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。其中ACK标志位=1,序号字段=x+1,确认号字段 ACK=y+1 , 该报文段可以携带数据,如果不携带数据则不消耗序号

四次挥手


应用层

  • 域名解析协议DNS
  • 文件传输协议FTP
  • 电子邮件

万维网

超文本传输协议HTTP

采用 TCP 作为运输层协议,但HTTP协议本身是无连接的


“缘分让我们相遇乱世以外,命运却让我们危难中相爱”