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

计算机网络是互连,自治的计算机集合
功能:
计算机网络具有以下功能:
数据通信即连通性
资源共享 硬件,软件,数据
分布式处理多台计算机各自承担同一工作任务的不同部分,Hadoop平台
提高可靠性替代机
负载均衡
组成方式
硬件,软件,协议

工作方式
工作方式可分为 C/S模式,P2P模式

功能组成

分类
按分布范围分 广域网WAN 城域网MAN 局域网WAN 个人区域网PAN
按使用者分 公用网 专用网
按交换技术分 电路交换 报文交换 分组交换
按拓扑结构分 总线型 星型 环型 网状型

按传输技术分 广播式网络(共享公用通信信道) 点对点网络(使用分组存储转发和路由选择机制)
性能指标

局域网
Local Area Network(LAN),是指某一区域内由多台计算机互联成的计算机组,使用广播信道
特点1:覆盖的地理范围小
特点2:使用专门铺设的传播介质(双绞线.同轴电缆)进行联网,数据传输速率高
特点3:通信延迟时间短,误码率低,可靠性较高
特点4:各站为平等关系,共享传输信道
特点5:多采用分布式控制和广播式通信,能进行广播和组播
决定局域网的要素:网络拓扑,传输介质,介质访问控制方法
网络拓扑

常用:以太网



分类
以太网
逻辑拓扑总线型,物理拓扑是星型或者扩展星型,采用CSMA/CD.都符合IEEE802.3系列标准规范.
令牌环网 IEEE802.5
物理上采用星型拓扑结构,逻辑上是环形拓扑结构
FDDI网(Fiber Distributed Data Interface ) IEEE802.8
物理上采用双环拓扑结构,逻辑上是环形拓扑结构.
ATM网(Asynchronous Transfer Mode)
较新型的单元交换技术,使用53字节固定长度的单元进行交换
无线局域网(WLAN)
采用IEEE802.11标准
以太网
以太网提供无连接,不可靠的服务.
无连接:发送方和接收方之间无"握手过程"
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责

Mac地址
在局域网中,硬件地址又称为物理地址,或MAC地址
每个适配器有一个唯一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定,常用6个16进制位表示,如02-60-8c-e4-b1-21

无线局域网

广域网
Wide Area Network

广域网的通信子网主要使用分组交换技术,广域网的通信子网可以利用公用分组交换网,卫星通信网,无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的.
PPP协议
Point-to-Point是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网一般使用PPP协议,它只支持全双工链路.
PPP协议要求
- 简单,对于链路层的帧,无需纠错,无需序号,无需流量控制.
- 封装成帧 帧定界符
- 透明传输 与帧定界符一样比特组合的数据应该如何处理,异步线路用字节填充,同步线路用比特填充
- 多种网络协议 封装的IP数据报可以采用多种协议
- 多种类型链路 串行/并行 同步/异步 电/光
- 差错检测 错就丢弃
- 检测连接状态 链路是否正常工作
- 最大传送单元 数据部分最大长度MTU
- 网络层地址协商 知道通信双方的网络层地址
- 数据压缩协商

HDLC协议
高级数据链路控制,是一个在同步网上传输数据,面向比特的数据链路层协议,数据报文可透明传输,用于实现透明传输的"0比特插入法"易于硬件实现
HDLC与PPP区别

分层结构
为什么要分层?

分层的基本准则:
1.各层之间相互独立
2.各层之间界面自然清晰
3.结构上可分隔开,每层都采用最合适的技术来实现
4.保持下层对上层的独立性,上层单向使用下层提供的服务
5.整个分层结构应该能促进标准化工作

实体: 第n层中的活动元素称为n层实体,同一层的实体叫对等实体
协议: 对等实体间数据交换规则,包括 语法,语义,同步
接口(访问服务点SAP) 上层使用下层服务的入口
服务 下层为相邻上层提供的功能调用(垂直)

SDU 服务数据单元-为完成用户所需的功能而传送的数据
PCI 协议控制信息- 控制协议操作的信息
PDU 协议数据单元- 对等层次之间传送的数据单元
OSI参考模型
7层 OSI参考模型(法定标准)

记忆诀窍:物-链-网-输-会-示-用(物联网淑慧实用)


应用层 所有能和用户交互产生网络流量的程序
典型服务:文件传输(FTP),电子邮件(SMTP),万维网(HTTP)
表示层用于处理在两个通信系统中交换信息的表示方式(语法和语义)
JPEG,ASCII
会话层向表示层实体/用户进程提供建立连接并在连接上有序地传输数据,这是会话,也是建立同步(SYN).功能一: 建立,管理,终止会话;功能二: 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步 ADSP,ASP
传输层 负责主机中两个进程的通信,即端到端通信.传输单位是报文段或用户数据报.
功能一: 可靠传输,不可靠传输
功能二:差错控制
功能三:流量控制
发送/接收速度是否匹配
功能四:复用分用
复用:多个应用层进程可同时使用下面传输层的服务
分用:运输层把接收到的信息分别交付给上面应用层中相应的进程
网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单元是数据报
功能一 路由选择
功能二 流量控制
功能三:差错控制
功能四:拥塞控制,若所有节点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施,缓解这种拥塞.
常用协议:IP IPX ICMP IGMP ARP RARP OSPF
数据链路层主要任务是把网络层传下来的数据报组装成帧,数据链路层/链路层的传输单位是帧.
功能一:成帧(定义帧的开始和结束)
功能二:差错控制 帧错+位错
功能三:流量控制
功能四:访问(接入)控制 控制对信道的访问
常用协议 SDLC HDLC PPP STP
物理层主要任务是在物理媒体上实现比特流的透明传输
物理层传输的单位是比特

功能一:定义接口特性
功能二:定义传输模式 单工,半双工,双工
功能三:定义传输速率
功能四:比特同步
功能五:比特编码
常见协议:Rj45,802.3
TCP/IP参考模型
4层TCP/IP参考模型(事实模型)

TCP/IP协议栈
| 层次 | 协议 |
|---|---|
| 应用层 | HTTP ,FTP ,DNS |
| 传输层 | TCP ,UDP |
| 网际层 | IP |
| 网络接口层 | Ethernet ATM ,Frame Relay |
OSI与TCP/IP参考模型相同点
- 都分层
- 基于独立的协议栈的概念
- 可以实现异构网络互连
OSI与TCP/IP参考模型不同点
- OSI定义三点:服务,协议,接口
- OSI先出现,参考模型先于协议发明,不偏向特定协议
- TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次

5层体系结构

应用层 支持各种网络应用 FTP,SMTP,HTTP
传输层 进程-进程的数据传输 TCP,UDP
网络层 源主机到目的主机的数据分组路由和转发 IP,ICMP,OSPF
数据链路层 把网络层传下来的数据报组织成帧 Ethernet,PPP
物理层 比特传输

物理层
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体
物理层主要任务:确定与传输媒体接口有关的一些特性
机械特性,物理连接时所采用的规格,接口形状,引线数目,引脚数量
电气特性,规定传输二进制位时,线路上信号的电压范围,传输速率和距离
功能特性,指明某条线上出现的某一电平表示何种意义
规程特性,定义各条物理线路的工作规程和时序关系
传输介质及分类
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路.传输媒体并不是物理层.
- 导向型传输介质->电磁波被导向沿着固体媒介(铜线/光纤)传播
无屏蔽双绞线,屏蔽双绞线,同轴电缆,光纤(多模,单模) - 非导向性传输介质-> 自由空间,介质可以是空气,真空,海水等
无线电波,微波(地面微波接力通信,卫星通信),红外线,激光
物理层设备
中继器
由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误.
中继器对信号进行再生和还原,对衰减信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度.

- 两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段的速率要相同
- 中继器只将任何电缆段上的数据发送到另一段电缆,它仅作用于信号的电气部分,并不管数据中是否有错误或不适于网段的数据
- 两端可以连相同媒体,也可以连不同媒体
- 中继器两端的网段一定要是同一个协议(中继器不会存储转发)
- 5-4-3规则

集线器(多口中继器)
对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有处于工作状态的端口上,以增加信号传输的距离,延长网络的长度.不具备信号的定向传送能力,是一个共享式设备.

数据链路层

结点: 主机,路由器
链路: 网络中两个结点之间的物理通道,链路的传输介质主要有双绞线,光纤,微波.分为有线链路,无线链路
数据链路: 网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
帧: 链路层的协议数据单元,封装网络层数据报
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报.
功能一:为网络层提供服务.无确认无连接服务,有确认无连接服务,有确认面向连接服务.注意:有连接一定有确认
功能二:链路管理,即连接的建立,维持,释放(用于面向连接的服务)
功能三:组帧.

首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界
帧同步:接收方应能从接收到的二进制比特流中区分出帧的起始和终止
组帧
-
字符计数法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数 -
字符(节)填充法

当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码),不管从键盘上输入什么字符都可以放进帧里传过去,即透明传输.当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像)就要采用字符填充实现透明传输.

-
零比特填充法
在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0.在接收端接收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描.发现连续5个1时,就把后面的9删除 -
违规编码法

可以用"高-高","低-低"来定界帧的起始和终止
功能四:流量控制.
较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作
功能五:差错控制(帧错/位错)


奇偶校验码只能检查出奇数个错误,检错率为50%
流量控制
较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作.数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的.
数据链路层流量控制手段:接收方收不下就不回复确认
传输层流量控制手段:接收端给发送端一个窗口公告
停止-等待协议
为什么要有停止-等待协议?
除了比特出差错,底层信道还会出现丢包问题,为了实现流量控制
每发送完一个帧就停止发送,等待对方的确认,在接收到确认后再发送下一个帧.

有差错情况
- 数据帧丢失或检测到帧出错

超时计时器:每次发送一个帧就启动一个计时器.超时计时器设置的重传时间应当比帧传输的平均RTT更长一些.
注意:
- 发送一个帧后,必须保留它的副本
- 数据帧和确认帧必须编号
- ACK丢失

3.ACK迟到

停止等待协议性能分析
简单!信道利用率太低!


滑动窗口协议
滑动窗口机制解决(1)流量控制:发送端发啥,接收端收啥(2)可靠传输:控制发送速率,使接收方有足够的缓冲空间来接受每一个帧


后退N帧协议(GBN)

GBN发送方必须响应的三件事
- 上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满.上层等一会再发送.(实际现实中,发送方可以缓存这些数据,窗口不满再发送帧) - 收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认方式,标明接收方已收到n号帧和它之前的全部帧 - 超时事件
如果出现超时,发送方重传所有已发送但未被确认的帧.
GBN接收方要做的事
- 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层.
- 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK.接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum

选择重传协议(SR)
| 协议 | 发送窗口 | 接收窗口 |
|---|---|---|
| 停止-等待协议 | =1 | =1 |
| 后退N帧协议GBN | >1 | =1 |
| 选择重传协议SR | >1 | >1 |
注意:窗口大小固定
介质访问控制
采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况

静态划分信道
频分复用–并行 时分复用–并发
动态分配信道
特点:信道并非在用户通信时固定分配给用户
随机访问介质访问控制:所有用户可随机发送信息,发送信息时占全部带宽.
随机访问MAC协议
ALOHA协议
纯ALOHA协议
不监听信道,不按时间槽发送,随机重发

冲突如何检测?
如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就会判断发生冲突
冲突如何解决?
超时后等一随机时间再重传
时隙ALOHA协议
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送.

注意:
纯ALOHA比时隙ALOHA吞吐量更低,效率更低.
纯LAOHA想发就发,时隙ALOHA只有在时间片段开始时才能发.
CSMA协议
载波监听多路访问协议CSMA(Carrier Sense Multiple Access)
CS:载波侦听/监听,每一个站在发送数据之前要检查一下总线上是否有
其他计算机在发送数据(当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加),当一个站检测到的信号电压摆动值超过一定门限值,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突.)
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上.
协议思想:发送帧之前,监听信道

1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持
如果一个主机要发送消息,那么它先监听信道.
空闲则直接传输,不必等待.
忙则一直监听,等到空闲马上传输.
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程.
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免.
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听
如果一个主机要发送消息,那么先监听信道.
空闲则直接传输,不必等待.
忙则等待一个随机的时间之后再进行监听.
优点:采用随机的重发延迟时间可以减少冲突发生的可能性.
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低.
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理
如果一个主机要发送消息,那么它先监听信道.
空闲以p概率直接传输,不必等待;概率1-p等到下一个时间槽再传输.
忙则等待一个随机的时间之后再进行监听.
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案.
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费

CSMA/CD协议⭐️
载波监听多点接入/碰撞检测协议(Carrier Sense Multiple Access with Collision Detection)
CD:边监听边发送,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据.(半双工网络)
传播时延对载波监听是否有影响?

如何确定碰撞后的重传时机?
截断二进制指数规避算法

最小帧长?
帧的传输时延至少要两倍于信号在总线中的传播时延.

PS:以太网规定的最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧.
CSMA/CA协议
载波监听多点接入/碰撞避免协议(Carrier Sense Multiple Access with Collision Avoidance)


CSMA/CD与CSMA/CA异同

轮询访问MAC协议
既要不产生冲突,又要发送时占全部带宽
轮询协议
主节点轮流邀请从属节点发送数据

问题
- 轮询开销
- 等待延迟
- 单点故障(主节点宕机)
令牌传递协议
应用与令牌环网(物理星型拓扑,逻辑环形拓扑),通常用于负载较重,通信量较大的网络中

令牌:一个特殊格式的MAC控制帧,不含任何信息.控制信道的使用,确保同一时刻只有一个结点独占信道.

每个结点都可以在令牌持有时间内获得发送数据的权利,并不是无限制的持有令牌.
问题:
- 令牌开销
- 等待延迟
- 单点故障
链路层设备
物理层扩展以太网


链路层扩展以太网
网桥

网桥根绝MAC帧的目的地址对帧进行转发和过滤,当网桥收到一个帧后,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)
优点
- 过滤通信量,增大吞吐量
- 扩大物理范围
- 提高可靠性
- 可互连不同物理层,不同MAC子层和不同速率的以太网
交换机
多接口网桥独占传输媒体带宽

网络层
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报

功能一 路由选择与分组转发

功能二 异构网络互联
功能三 拥塞控制
若所有结点都来不及接受分组,网络就处于拥塞控制状态.因此要采取一定措施,缓解这种拥塞
way1:开环控制 静态
way2:闭环控制 动态
数据交换控制
电路交换

电路交换的阶段:

特点:独占资源
优点:
- 通信时延小
- 有序传输
- 没有冲突
- 实时性强
缺点:
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差
- 无差错控制能力
报文交换
报文:源应用发送的信息整体

优点:
- 无需建立连接
- 存储转发,动态分配路由
- 线路可靠性较高
- 线路利用率较高
- 多目标服务
缺点:
- 有存储转发时延
- 报文大小不定,需要网路节点有较大缓存空间
分组交换
分组:把大的数据块分割成小的数据块

优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
6. 有存储转发时延
7. 需要传输额外的信息量
8. 乱序到目的主机时,要对分组排序重组
数据报方式 为网络层提供无连接服务
无连接服务,不事先为分组的传输确定传输路径,每个分组确定传输路径,不同分组传输路径可能不同
每个分组携带源和目的地址
路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表;检索转发表;每个分组独立选路
虚电路方式 为网络层提供连接服务
连接服务,首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接.

数据控制交换方式对比

- 报文交换和分组交换都采用存储转发
- 传送数据量大,且传送时间远大于呼叫时间,选择电路交换,电路交换传输时延最小.
- 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小 N
路由算法
静态路由算法 (非自适应路由算法)
管理员手工配置路由信息
优点:简单,可靠,在负荷稳定,拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络
缺点:路由更新慢,不适用大型网络
动态路由算法(自适应路由算法)
路由器间彼此交换信息,按照路由算法优化路由表项
优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化
缺点:算法复杂,增加网络负担
分层路由协议
分层原因
(1)因特网规模很大(2)不想让外界知道路由选择协议
什么是自治系统AS?
在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由协议和共同的度量以确定分组在改AS内的路由.一个AS内的所有网络都属于同一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须联通


RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单.
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离).RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达.因此RIP协议只适用于小互联网

R2路由表

RIP协议和谁交换?多久交换一次?交换什么?
1.仅和相邻路由器交换信息
2.路由器交换的信息是自己的路由表
3.每30秒交换一次路由信息,然后路由器根据新信息更新路由表,若超过180s没收到邻居路由器的通知,则判定邻居没了,并更新自己路由表
距离向量算法

RIP协议的报文格式

RIP是应用层协议,使用UDP传送数据.一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送.
注意:RIP协议好消息传得快,坏消息传的慢

OSPF协议
开放最短路径优先OSPF协议:"开放"表明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”,是因为使用了Dijkstra提出的最短路径算法SPF.OSPF最主要的特征就是使用分布式的链路状态协议.
OSPF的特点
1.使用洪泛向自治系统内所有路由器发送消息,即路由器通过输出端口向所有相邻的路由器发送器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器
2.发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价–费用,距离,时延,带宽等)
3.只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息
4.每隔30分钟,要刷新一次数据库中的链路状态
5.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系.因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
6.OSPF不存在坏消息传的慢的问题,它的速度很快
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图
链路状态路由分组

BGP协议

BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS.当BGP发言人互相交换了网络可达性信息后,各BGP发言人就根据所采用的的策略从收到的路由信息中找出到达各AS的较好路由

BGP是应用层协议,借助TCP传送.
BGP协议特点
BGP支持CIDR,因此BGP的路由表也就应当包括目的网路前缀,下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列.
在BGP刚刚运行时,BGP的领站是交换整个BGP路由表,但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销都有好处.
BGP-4的四种报文
OPEN报文 用来和相邻的另一个BGP发言人建立连接关系,并认证发送方.
UPDATE报文 通告新路径或撤销原路径
KEEPALIVE报文 在无UPDATE时,周期性证实领站的连通性,也作为OPEN的确认
NOTIFICATION报文报告先前报文的差错;也被用于关闭连接
三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息.
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP

IP数据报格式


版本: IPV4/IPV6
首部长度: 单位是4B,最小为5
区分服务: 指示期望获得哪种类型的服务(优先级)
总长度: 首部+数据,单位是1B
生存时间TTL: IP分组的保质期,经过一个路由器-1,变成0则丢弃.
协议: 数据部分的协议

首部检验和: 只检验首部
源IP地址和目的IP地址: 32位
可选字段: 0-40B,用来支持排错,测量以及安全等措施
填充: 全0,把首部补成4B的整数倍
标识: 同一数据报的分片使用同一标识
标志: 只有2位有意义 x_ _
中间位DF: DF=1,禁止分片.DF=0,允许分片
最低位MF: MF=1,后面还有分片 MF=0,代表最后一片/没分片
片偏移: 指出较长分组分片后,某片在原分组中的相对位置,以8B为单位.因此,除了最后一个分片,每个分片长度一定是8B的整数倍.
总长度单位是1B,片偏倚单位是8B,首部长度单位是4B(记忆:一种八片首饰)
IP数据报分片
最大传送单元MTU
链路层数据帧可封装数据的上限.以太网MTU是1500字节.

如果所传送的数据报长度超过某链路的MTU值?分片
IPV 4
IP地址:全世界唯一的32位/4字节标识码,标识路由器主机的接口,IP地址由网络号,主机号组成


分类的IP地址

范围

注意:有一些特殊的IP地址

私有IP地址

路由器对目的地址是私有IP地址的数据报一律不进行转发,那么私有IP怎么和互联网通信?
网络地址转换NAT
网络地址转换NAT,在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址

NAT路由器具有NAT转换表

分类的IP地址的弱点
- IP地址空间的利用率有时很低
- 两级IP地址不够灵活
子网划分

某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分.
注意:主机号最少两位(主机号全0,全1具有特殊含义),子网号能否全0全1要看情况

如何使用子网掩码进行分组转发?

每个路由表中包括:
1.目的网络地址
2.目的网络子网掩码
3.下一跳地址
路由转发分组算法
1.提取目的IP地址
2.是否直接交付(目的地址与子网掩码相与)
3.特定主机路由
4.检测路由表中有无路径
5.默认路由0.0.0.0
无分类编址CIDR
构成超网(无分类编址方法)
1.消除了传统的A类,B类,C类地址以及划分子网的概念

CIDR记法,IP地址后加上/,然后写上网络前缀(可以任意长度)的维数,比如
128.14.32.0/20
2.融合子网地址与子网掩码,方便子网划分,CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块
比如:128.14.35.7/20是某CIDR地址块中的一个地址

构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
方法:将网络前缀缩短.

使用CIDR时,查询路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由,前缀越长,地址块越小,路由越具体.
eg.

ARP协议
发送数据过程


由于在实际网络的链路上传数据帧时,最终必须使用MAC地址.ARP协议:完成主机或路由器IP地址到MAC地址的映射.解决下一跳走哪的问题.
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,统一局域网中所有主机都能收到该请求.目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
ARP协议4种典型情况:
1.主机A发送给本网络主机B,用ARP找到主机B的硬件地址
2.主机A发送给另一个网络上的主机B,用ARP找到本网络上一个路由器(网关)的硬件地址:
3.路由器发给本网络的主机A:用ARP找到A的硬件地址
4.路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址
注意:ARP协议是自动运行的
DHCP协议
主机如何获得IP地址?
静态配置
通过IP地址,子网掩码,默认网关分配地址
动态配置

动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP
DHCP是即插即用联网的机制,机制可以从服务器动态获取IP地址,子网掩码,默认网关,DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租.
1.主机广播DHCP发现报文
2.DHCP服务器广播DHCP提供报文
3.主机广播DHCP请求报文
4.DHCP服务器广播DHCP确认报文
ICMP协议
网际控制报文协议ICMP支持主机或路由器:
差错(或异常)报告-> 发送特定ICMP (ICMP差错报文,ICMP询问报文)

ICMP差错报告报文

ICMP差错报告报文数据字段

不应发送ICMP差错报文的情况

ICMP询问报文

应用
PING 测试两个主机之间的连通性,使用ICMP回送请求和回答报文
Traceroute 跟踪一个分组从源点到终点的路径,使用ICMP时间超过差错报告报文
IPV6

IPV6改进首部格式,可以快速处理/转发数据报,支持QOS
IPV6数据报格式


版本:指明了版本协议,总是6
优先级:区分数据报的类别和优先级
"流"是互联网上从特点源点到特定终点的一系列数据报,所有属于同一个流的数据报都具有同样的流标签.
下一个首部:标识下一个扩展首部或上层协议首部
跳数限制:相当于IPV4的TTL
IPV4与IPV6区别

IPV6地址表示形式

IPV6基本地址类型
单播
一对一通信 可做源地址+目的地址
多播
一对多通信 可做目的地址
任播
一对多通信中的一个通信 可做目的地址
IPV4向IPV6过渡
双栈协议

隧道技术

隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送
IP组播
当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据达到距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式.
IP组播地址
IP组播地址让源设备将分组发送给一组设备,属于多播组的设备将被分配一个组播组IP地址.
组播地址范围为224.0.0.0-239.255.255.255(D类地址),一个D类地址表示一个组播组.只能用作分组的目标地址,源地址总是单播地址.
1.组播数据报也是"尽最大努力交付",不提供可靠交付,应用于UDP
2.对组播数据报不产生ICMP差错报文
3.并非所有D类地址都可以作为组播地址
IGMP协议
网际组管理协议IGMP让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组

IGMP工作的两个阶段

组播路由选择协议
组播路由协议目的是找出以源主机为根节点的组播转发树.
构造数可以避免在路由器之间兜圈子.
对不同的组播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树.

移动IP
移动IP技术是移动结点(计算机/服务等)以固定的网络IP地址,实现不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变.

移动结点具有永久IP地址的移动设备
归属代理(本地代理)一个移动结点拥有的就"居所"称为归属网络,在归属网络中代表移动结点执行移动管理功能的实体叫做归属代理
外部代理(外地代理)在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
永久地址(归属地址/主地址)移动结点在归属网络中的原始地址
转交地址(辅地址)移动站点在外部网络使用的临时地址
网络层设备
路由器
路由器是一种具有多个输入输出端口的专用计算机,其任务是转发分组.

输出端口处理

三层设备的区别
路由器 可以互联两个不同网络层协议的网段,可以隔离冲突域,广播域
网桥 可以互联两个物理层和链路层不同的网段,可以隔离冲突域
集线器 不能互联两个物理层不同的网段,不能隔离冲突域,广播域
传输层
只有主机才有的层次
传输层的功能:
1.传输层提供进程与进程间的逻辑通信(网络层提供主机之间的逻辑通信)
2.复用与分用
复用:应用层所有的应用进程都可以通过传输层再传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
3.传输层对收到的报文进行差错检测
4.传输层有两种协议
端口号
端口(逻辑端口/软件端口)是传输层SAP,标识主机中的应用进程
端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的.
端口号长度为16bit,能表示65536个不同的端口号
端口号划分

常见应用程序端口号

在网络中采取发送方和接收方的套接字组合来识别端点,套接字唯一标识了网咯中的一个主机和它上面的一个进程
套接字Socket=(主机IP地址,端口号)
TCP协议
传送数据之前必须建立连接,数据传送结束后要释放连接.不提供广播或多播服务.由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加许多开销:确认,流量控制,计时器,连接管理
可靠,面向连接,时延大,适用于大文件
⭐️TCP协议特点
-
TCP是面向连接(虚连接)的传输层协议
-
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的.
-
TCP提供可靠交付的服务,无差错,不丢失,不重复,按序到达.可靠有序,不丢不重
-
TCP提供全双工通信
发送缓存:准备发送的数据$已发送但尚未接收确认的数据
接收缓存:按序到达但尚未被接收应用程序读取的数据&不按序到达的数据 -
TCP面向字节流
TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流

TCP报文段首部格式

序号: 第一个字节的序号
确认号: 期望收到对方下一个报文段的第一个数据字节的序号,若确认号为N,则证明到序号N-1为止所有的数据都已正确收到
数据偏移(首部长度): TCP报文段的数据起始距离TCP报文段的起始处有多远,以4B为单位,即1个数值是4B.
6个控制位
紧急位URG URG=1标明此报文段中有紧急数据,是高优先级的数据.
确认位ACK ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1
推送为PSH PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填充满再向上交付
复位RST RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输连接.
同步位SYN SYN=1时,表明是一个连接请求/连接接受报文
终止位FIN FIN=1时,表明此报文段发送方数据已发完,要求释放连接
窗口: 指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
TCP连接管理
TCP传输的三个阶段:

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫用户,而被动等待连接建立的应用程序叫服务器.
TCP连接建立(三次握手)


由于服务器端/客户端分别为连接分配缓存和变量,导致SYN洪泛攻击

通过设置SYN cookie解决洪泛攻击
TCP连接释放(四次挥手)


TCP可靠传输
可靠指的是,保证接收方进程从缓存区读取的字节流与发送方发出的字节流是完全一样的
TCP实现可靠传输的机制
校验与UDP校验一致,增加伪首部
序号

确认
TCP默认使用累计确认
重传
TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段(超时重传),TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间).
冗余ACK(冗余确认)
每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号.
TCP流量控制
流量控制:让发送方慢点,要让接收方来得及接收
TCP利用滑动窗口机制实现流量控制.
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送接口取接收窗口rwnd和拥塞窗口cwnd的最小值.

TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器.
若持续计时器设置的时间到期,就发送一个零窗口探测报文段,接收方收到探测报文段时给出现在的窗口值
若窗口仍然为0,那么发送方就重新设置持续计时器.
TCP拥塞控制
出现拥塞的条件
对资源需求的总和>可用资源
慢开始,拥塞避免

快重传,快恢复

UDP协议
传送数据之前不需要建立连接,收到UDO报文段后也不需要给出任何确认
不可靠,无连接,时延小,适用于小文件
UDP只在IP数据报服务之上增加了很多功能,即复用分用和差错检测功能.
⭐️UDP的主要特点
- UDP是无连接的,减少开销和发送数据之前的时延
- UDP使用最大努力交付,即不保证可靠交付.
- UDP是面向报文的,适合一次性传输少量数据的网络应用
- UDP无拥塞控制,适合很多实时应用
- UDP首部开销小 8B(TCP首部 20B)

应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文
UDP首部格式

UDP检验和检测整个UDP数据报是否有错,错就丢弃.分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP"端口不可达"差错报告报文

校验过程



应用层
应用层对应用程序的通信提供服务
功能
文件传输,访问和管理
电子邮件
虚拟终端
查询服务和远程作业登录
网络模型
C/S 客户/服务器模型

WEB,文件传输FTP,远程登录,电子邮件
P2P模型

DNS系统
域名

从左到右,域名等级变高
域名服务器

域名解析过程
递归查询

迭代查询

文件传输协议FTP
File Transfer Protocol
简单文件传送协议 Trivial File Transfer Protocol
FTP提供不同类型主机系统之间的文件传输能力
FTP工作原理
登录-用户名&密码
FTP使用TCP实现可靠传输

控制连接(端口号21)始终保持,数据连接(主动方式 TCP 20端口,被动方式 服务器和客户端自行协商解决 端口>1024)保持一会
FTP传输模式 文本模式(ASCII模式,以文本序列传输数据),二进制模式(Binary模式,以二进制序列传输数据)
SMTP协议

SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器
SMTP规定了14条命令和21种应答信息(三位数字代码+简单文字说明)
SMTP协议基于TCP连接,端口号25,是C/S模式
SMTP通信三个阶段

SMTP的缺点

通过MIME使电子邮件系统可以支持声音,图像,视频,多种国家语言等.

POP3协议

IMAP协议

HTTP协议
统一资源定位符URL 不区分大小写
协议://主机:端口/路径

HTTP

具体过程
1.浏览器分析URL
2.浏览器向DNS请求解析IP地址
3.DNS解析出IP地址
4.浏览器与服务器建立TCP连接
5.浏览器发出取文件命令
6.服务器响应
7.释放TCP连接
8.浏览器显示
HTTP协议是无状态的.,通过cookie是存储在用户主机中的文本文件,记录一段时间内某用户的访问记录
HTTP采用TCP作为传输协议,但HTTP本身无连接
HTTP连接方式
非持久连接

持久连接

HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码
请求报文


响应报文

状态码
1XX表示通知信息的,如请求收到或正在处理
2XX表示成功
3XX表示重定向,如果完成请求还必须采用进一步行动
4XX表示客服端出错,请求中有错误的语法或请求不能完成
5XX表示服务端出错,如服务器失效无法完成请求
1852

被折叠的 条评论
为什么被折叠?



