目录
地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGRP(不重要)
引言:
大二下学期计算机网络协议期末吐血总结(以协议为主线)欢迎大佬指正!!
数据链路层
- 使用的信道为点对点信道、广播信道
- 通过帧传播
- 三个基本问题:封装成帧(最大传送单元 MTU )、透明传输、差错检测(循环冗余检验CRC)
- 在该层只能发现错误后丢弃,不具有纠错功能
- 虚拟局域网只是局域网给用户的一种服务,不是一种新型局域网
PPP协议(点对点协议)
对象:用户计算机 和 网络业务服务商(ISP)
帧格式:
- 异步传输----字节填充
- 同步传输----零比特填充(每发现5个连续的1,填入一个0)
使用广播信道的数据链路层
局域网:
- 最主要特点:网络为一个单位所拥有,且地理范围和站点数目均有限
- 优点:
- 具有广播功能,从一个站点可以很方便访问全网
- 各设备的位置可以灵活的调整和改变
- 提高了系统可靠性,可用性,生存性
- 局域网工作在数据链路层和物理层
共享信道
- 静态划分信道(频分、时分、码分、波分复用)
- 动态媒体接入控制
- 随机接入(用户可以随机发送信息)
- 可能发生碰撞(冲突),如何解决? -----解决碰撞的协议
- 受控接入(用户发送信息需要服从一定的控制)
- 轮询
- 随机接入(用户可以随机发送信息)
CSMA/CD 协议
载波监听多点接入/碰撞检测
- 协议的实质:载波监听、碰撞检测
- 不能同时发送和接收
- 只能进行双向交替通信(即半双工通信)
- 使用 曼彻斯特编码的信号
- 多点接入表示这是总线型网络;载波监听就是先听后发,边发边听;碰撞检测就是适配器边发数据边检测信道上电压变化情况(理解性:差分曼彻斯特编码反映电压变化情况)
网络层
网络层提供的两种服务及比较
对比方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信由网络保证 | 可靠通信由用户主机来保证 |
连接 | 建立 | 不建立 |
终点地址 | 仅在建立时期使用,每个分组使用短的虚电路号 | 每个分组都有完整的终点地址,即IP地址 |
分组的转发 | 同一条虚电路上的分组使用同一路由进行转发 | 每个分组独立查找转发表进行转发 |
节点处故障时 | 所有通过故障节点的虚电路都不能工作 | 出故障的节点可能丢失分组,一些路由可能发生改变 |
分组的顺序 | 总是按发送顺序到达终点 | 到达顺序不一定是发送 |
端到端之间的差错出理和流量控制 | 经过故障节点的虚电路均不能工作 | 故障节点可能会丢失分组,一些路由可能发生改变 |
路径数量 | 单一路径 | 多条路径 |
- 网络层两个层面
- 数据层面:传送数据,由单一路由器查找转发表转发
- 控制层面:传送路由信息(怎么传),由多路由器协同动作
- 远程控制器:计算出最佳路由,生成正确的转发表
网际协议IP
- 直接交付、间接交付
- 分组的每一次转发:一跳
- IP地址在整个互联网范围内是唯一的
- 不联网的主机没有IP地址
- 表示: IP地址::{<网络号>,<主机号>}
- 分类的IP地址
- 分为:A,B,C,D,E类
- 如图
- 无分类编制(CIDR)
- 网络前缀
- 记法: IP地址 ::={<网络前缀>,<主机号>}
- CIDR记法(斜线记法)/ 后的数字代表网络前缀的位数
- 网络前缀越短的地址块包含的地址数越多
- 地址掩码(子网掩码)
- 目的:根据IP地址和子网掩码算出网络地址
- 是什么:/后的数字即子网掩码1的个数
- 计算方法:AND运算
- IP地址的特点:
- IP地址是一种分等级的地址结构,路由器根据主机所连接的网络前缀来转发分组,(不必考虑目的主机号)减少了转发表所占存储空间,缩短查找转发表的时间。
- IP地址是标志一台主机及一条链路的接口,一个路由器应当有两个不同的IP地址
- 用转发器或交换机所连在一起的仍然是一个网络,不同网络前缀的局域网用路由器来连接
- 互联网平等对待每一个IP地址
- IP地址与MAC地址
- 区别:
- IP地址:软件地址(逻辑地址/虚拟地址),由互联网分配,独一无二的地址,工作在网络层及以上各层,IP地址位于IP数据报的首部,在IP层抽象的互联网上只能看到IP数据报
- MAC地址:硬件地址(物理地址),是出厂时自带的地址,工作在数据链路层,MAC地址位于MAC帧的首部,在局域网的链路层只能看到MAC帧
- :问题:为什么有了IP地址还需要MAC地址?
- 如果只有MAC地址的话,只能进行本局域网内数据的传输,不能跨网络
- 随着网络设备的增多,路由选择变得困难,IP地址与地域有关,由于一个局域网内的网络前缀都一样,因此只需要记录子网的IP地址即可,剩下的事情就交给子网来完成,子网会根据MAC地址找到相应的设备,MAC地址才能唯一区分设备。
- 区别:
- IP地址的格式
- IP地址分为首部和数据部分,其中首部又分为20位的固定部分和可变部分
- 最大传送单元 MTU——一个数据帧中数据字段的最大长度
- IP数据报越短,路由器转发速度越快
- 网络前缀
版本 | 首部长度 | 区分服务 | 总长度 | ||||
标识 | 标志 | 片偏移 | |||||
生存时间 | 协议 | 首部检验和 | |||||
源地址 | |||||||
目的地址 | |||||||
可变字段 | 填充 | ||||||
数据部分 |
地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGRP(不重要)
- ARP目的:已知一个机器的IP地址,找到相应的MAC地址
-
ICMP分为:ICMP差错报告报文,ICMP询问报文
-
ICMP的应用:分组网间探测PING
IPV6
- 优势
- 具有更大的地址空间
- 由于具有更大的地址空间,因此IPV6具有层次化的地址结构
- 可扩展性强
- 支持即插即用
- 支持资源的预分配 (易忘)
- IPV4向IPV6过渡
- 方法:双协议栈,隧道技术
互联网路由选择协议
- 路由选择的核心是:路由算法
- 什么是自治系统?
在单一技术管理下的一组路由器,这些路由器使用自治系统内部的路由选择协议和共同的度量,
一个AS对其他AS表现出的是一种单一的,一致的路由选择策略
内部网关协议(IGP)
RIP
- 基于距离向量的路由选择协议
- 最大的优点:简单
- 一路由器到直接相连的网络的距离是1;一路由器到非直接相连的网络的距离为所经过路由器数+1
- 每经过一个网络跳数+1 (跳数==距离)
- RIP认为好的路由是:通过的网络数少,即距离短
- RIP允许一条路径最多只能包含 15 个网络 (为16则不可达)
- 特点
- 仅和相邻路由器交换信息
- 交换的信息是该路由器已知的全部信息
- 按固定的时间间隔交换路由信息
- 好消息传播得快,坏消息传播的慢
- 路由表更新的原则:选择到每个目的网络的最短距离
注意!路由表更新的题目!
- 由首部和路由部分组成
OSPE
- 特点:
- 向本自治系统的所有路由器发送消息
- 发送的消息是该路由器所知一部分信息,即与本路由器相邻的所有路由器的链路状态
- 当链路状态发生改变或隔一段时间,路由器向所有路由器用洪泛法发送链路状态信息
- 重要优点:更新过程收敛的快
外部网关协议(EGP)
BGP-4
- 力求选择出一种能够到达目的网络前缀且比较好的路由,并非计算出一条最佳路由。
小小总结:
传输层
- 运输层需要考虑:可靠、拥塞
- 向上面的应用层提供通信服务,是面向通信部分的最高层,用户功能的最底层
- 通信两端为进程
- 功能:复用、分用、逻辑通信、差错检测
UDP协议
用户数据报协议
最主要特点:
- 面向无连接
- 尽最大努力交付(不可靠运输)举例:打电话
- 面向报文
- 没有拥塞控制
- 支持一对一、一对多、多对一、多对多的交互通信
- 首部开销小
TCP协议
传输控制协议
发送方窗口上限值决定于接收方窗口和拥塞窗口中较小的那一个
最主要特点:
- 面向连接
- 提供可靠交付服务(可靠运输)举例:收快递
- 提供全双工通信(有问有答)
- 每一条TCP连接只有两个端点
- 面向字节流
- 不提供广播或多播服务
字节流:
流:流入到进程或进程流出的字节序列
将数据分块,形成数据块 --->无结构字节流
TCP 不关心发送时和接收时的数据块大小关系,只关心发送时的字节流是否与接受时完全一样
TCP的连接:
虚连接、逻辑连接
关键字:套接字、接口、套接字对 --> TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}
运输层要考虑可靠传输和拥塞问题
TCP的连接管理
- TCP连接的端点是一个很抽象的套接字
- 同一个IP地址可以有不同个TCP连接
- 同一个端口号可以出现在不同的TCP连接中
- TCP连接的建立采用客户服务器方式;
- 客户:主动发起连接建立的应用进程
- 服务器:被动等待连接建立的应用进程
- TCP连接建立:三报文握手
- TCP连接释放:四报文挥手
- B收到释放连接报文段后确认,A到B的连接释放了,但B到A的连接没有释放,TCP连接处于半关闭状态,B向A发送数据,A仍要接受。
- 时间等待计数器,保活计时器
可靠传输:
停止等待协议
无差错情况:发送分组-->接受确认-->发送分组-->接受确认……
有差错情况:超时重传
- 分组未到达接收方:丢弃分组
- 应答的时候出现问题:超时重传,每发送完一个分组放置一个超时计数器(收到确认消息后撤销)
确认丢失和确认迟到:在不可靠的传输网络上实现可靠通信
提高信道利用率:使用流水线传输
连续ARQ协议 (使用流水线传输时使用)
位于发送窗口的五个分组都可以连续的发送出去而不需要等对方的确定
方式:累计确认
窗口滑动(发送端)
- 注意:滑动窗口与分组没有绝对的静止,类似于参照物和被参照物的关系
- 滑动窗口以字节为单位 (分析发送方和接收方的滑动窗口)
- 发送窗口的位置由 前沿 和 后沿 共同决定
- 前沿不移动的原因:1、没有收到新的确认 2、收到确认但对方通知的窗口小了,使发送前沿刚好不动(也可能向后收缩)
- 可用窗口(有效窗口):允许发送但当前未发送的字节数
- 超时寄存器:控制重传
- 缓存、序号空间类似于循环队列:写入缓存速度太快 或 数据太多 会有溢出风险
- 发送缓存和发送窗口的后沿重合
- 发送缓存和接收缓存存放的数据 ------->>书<谢希仁著 计算机网络 (第八版)> P232
- 超时重传时间:RTO=RTTs(加权平均往返时间) + 4 * RTTd(偏差的加权平均值)--------------------为使结果准确,使用自适应算法(Karn 算法)每重传一次就把超时重传时间放大一些
- 选择确认SACK:只传送缺失的数据,而不重传已经正确到达接收方的数据
- 处理方法:用指针标记边界
- 条件:TCP首部加上 允许SACK 选项
- 优点:容易实现(确认丢失不必重传)
- 缺点:不能 向发送方 及时反映 接收方 正确收到所有分组信息
拥塞问题的解决(TCP流量控制)
- 定义:让发送方的发送速率不要太快,让接收方来得及接收
- 利用了滑动窗口,发送方发送窗口不能超过接收方给出的接收窗口的值
- 解决死锁问题:为连接设 持续计数器,连接一方收到零窗口通知,启动计时器,发送1字节的检测报文段,窗口值为0,破死锁;反之,重新设置计数器
- 糊涂窗口综合征:一次只读取一个字节------解决:让接收方等一段时间,使有足够空间容纳一个最长报文段 (举例:取快递(2个),收到一个快递告知对方一次,需要交互两次,要浪费时间;两个都收到告知对方,只需要交互一次)
拥塞问题的解决(TCP拥塞控制)
- 增加资源不能解决拥塞问题
- 网络拥塞的因素
- 某节点缓存容量太小
- 处理机处理速率太低
- 拥塞常常趋于恶化
- 输出链路容量低
- 拥塞控制(不能过快采取行动 [振荡] ,也不能过慢 [无用])
- 开环控制 (事先)
- 闭环控制 (基于反馈环路)
- 监测 网络拥塞
- 传送 拥塞信息
- 调整 解决问题
- 控制方法 (发送窗口大小取决于接收方窗口大小和拥塞状况)
- cwnd<=ssthresh 慢开始(基于窗口---发送窗口等于拥塞窗口)
- 由小到大逐渐增大拥塞窗口数值(确定新报文段后,拥塞窗口增加最多一个SMSS数值)
- 慢开始门限----防止拥塞窗口增长过大引起网络拥塞
- cwnd<=ssthresh 拥塞避免(基于窗口---发送窗口等于拥塞窗口)
- 每经一个往返时间,cwnd大小+1
- 拥塞避免 并非 完全避免拥塞,而是让拥塞窗口增长的缓慢些,使网络不容易出现拥塞
- 快重传
- 拥塞中有报文段丢失,进行快重传
- 报文段丢失后,发送方连续收到三个重复确认,立即重传
- 快恢复
- 快重传之后进行快恢复
- cwnd<=ssthresh 慢开始(基于窗口---发送窗口等于拥塞窗口)
TCP流量控制和拥塞控制的区别
- 流量控制:点对点通信量的控制,是端到端的问题;传输网络畅通,调整速率
- 拥塞控制:是全局宏观角度来说的;内部拥塞,有大容量接收设备
主动队列管理AQM
问题:路由器分组太多,处理时间特别长,使TCP报文段很长时间才能到终点,被认为超时/拥塞,要重传
解决:路由器“分组丢弃”,“先进先出FIFO”
新问题:可能导致丢失一连串的分组:重传 ---> 多条TCP连接同时慢开始 ---> 全局同步
新解决:主动队列管理AQM-----随机早期检测RED
应用层(考的较少,不细述)
- 应用层协议:精确定义不同主机进程之间的通信规则
- 应用层很多协议都是客户服务器方式
- 客户是服务的请求方,服务器是服务的提供方
域名系统DNS
- 互联网使用的命名系统,用来把机器名字转为IP地址
- 根域名服务器很多情况不能直接转,它会告诉本地域名服务器下一个找哪个查询
- 采用层次树状结构
- 解析过程使用 UDP协议(UDP开销少)
- 互联网域名结构
- 域名由‘.’分开,由左到右域名级别逐渐增大 (例:mail.cctv.com)
- 顶级域名:国家顶级域名(nTLD)/通用顶级域名(gTLD)/基础结构域名-反向域名(唯一)arpa
- 域名服务器
- 域大区(一个服务器管辖的范围)小/等
- 分类
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器(一主域名服务器,多辅助域名服务 ---类比于分布式--- )
- 主机 向 本地域名服务器 查询 用递归查询
- 本地域名服务器 向 根域名服务器 查询 用迭代查询
- 域名由‘.’分开,由左到右域名级别逐渐增大 (例:mail.cctv.com)
文件传送协议 FTP
对副本修改,再将数据传回
- 交互式访问,屏蔽了计算机系统的细节
- 基于TCP
- 功能:减少或消除不同操作系统下处理文件的不兼容性
- 一主进程:控制进程 (端口:21)
- 若干从属进程:数据传送进程 (端口:20)
- 网络文件系统(NFS):只复制大文件中一小片段(标签)--例:追剧这一次看到哪里,第二次还能找到
简单文件传送协议 TFTP
- 基于UDP
- 特点
- 每次传送512字节数据
- 数据报文按序编号
- 支持ASCII码
- 可对文件读写
- 使用简单的首部
- 在文件传输完毕后,必须最后发送一个含首部,无数据的报文
联机访问
允许多个程序对一个文件存取
远程终端协议 TELNET
电子邮件
电子邮件的组成
简单邮件传送协议(SMTP)
邮件读取协议(POP3和IMAP)
我在做题的时候出现的一点小问题:
- 端到端时延:最早出现在数据链路层,总线两端两个站的传播时延(通常两个站距离最大 )
- 交换机、网桥、集线器、路由器的区别:
- 网桥工作在数据链路层,根据MAC帧的目的地址进行转发、过滤
- 交换机是多端口的网桥,工作在数据链路层 ,全双工方式 ,具有并行性,支持即插即用
-
套接字是什么?
-
TCP连接的端点,每一条TCP连接唯一的被通信两端的两个端点所确定
-
表示:TCP连接::={socket1,socket2}={(IP1;port1),(IP2;port2)}
-
-
有IP地址为什么有端口?端口号的作用是什么?
-
IP地址工作在网络层,而端口工作在应用层
-
IP地址帮忙找主机,而端口负责找应用进程
-
结语:
————希望大家期末都可以考出一个不错的成绩,加油!————