OSI参考模型
目的:使两个不同的系统能够通信,而不需要改变底层的硬件或软件逻辑
层次体系结构
(应用支持层 软件)
应用层:网络处理应用
表示层:数据表示
会话层:主机通信
传输层---------数据段:端到端的连接
(网络支持层 软/硬件)
网络层---------分组:编制 循迹
数据链路层----帧:介质访问方式
物理层:二进制信号传输
存在通信关系的对等层实体才是对等实体
协议是对等实体间的通信规则
PDU:协议数据单元
TCP/IP协议簇
层次体系结构
应用层
传输层
网际层
网络接入层
编址
地址
物理地址:标识通信节点、节点所属LAN或WAN指定、LAN或WAN内唯一、链路地址
IP地址:标识通信节点的网络连接,网络地址
端口地址:标识通信进程,一台计算机内唯一
目的地址
单播:一个接收者
多播:一组接收者
广播:网络中的所有系统
传输介质
有限介质-------导线管 双绞线、同轴电缆、光纤2
无限介质-------电磁波
局域网
允许一些独立设备在受限地理范围内彼此能够直接通信
共享介质----广播式
广域网
在一个很大的地理范围内提供数据、话音和视频信息的长距离传输
交换网络----------点到点式
电路交换、分组交换
LAN vs WAN
比较
地理范围
延迟
速率
信道
协议
根据信道访问方式,网络构成方式来区分
连接设备
转发器/集线器(物理层以下)
网桥/交换机(数据链路层以下)
路由器(网络层以下)
网关(应用层以下)
IP地址----通用标识符
唯一标识互联网上的主机或路由器
主机标识符
Name
Address
Route
IP地址结构
32bit二进制地址
模拟物理网的编址机制
Hierarchical addressing
Networkid---------------Hostid
标识网络信息 标识网络范围内某一台特定的主机
网络位置:当一个主机从一个网络改接另一网络时,其IP地址必须改变
IP地址表示-----点分十进制
8bits----8bits----8bits----8bits
IP地址的分类
Class A: 0(1)----Netid(7)----Hostid(24) 0.0.0.0~127.255.255.255 网络个数 2^7,Host 2^24
Class B: 10(2)----Netid(14)----Hostid(16) 128.0.0.0~191.255.255.255
Class C: 110(3)----Netid(21)----Hostid(8) 192.0.0.0~223.255.255.255
Class D: 1110(4)----Multicast(24) 标识组播应用 224.0.0.0~239.255.255.255
Class E: 1111(4)----reserved(24) 240.0.0.0~255.255.255.255
多接口设备
多接口计算机
可以连接到多个网络
每个网络连接分配一个IP地址,可属于不同的类
路由器
必须连接到多个网络
每个网络连接分配一个IP地址,可属于不同的类
特殊地址
网络地址
Network address
用来标识整个网络
Netid(特定的)----Hostid(全0)
直接广播地址
Direct broadcast address
表示某一个网络中的所有主机
Netid(特定的)----Hostid(全1)
受限广播地址/本地广播地址
Limied broadcast address
255.255.255.255
广播范围:本地网络
本网络上的本主机
0.0.0.0
功能:动态获取自己的ip地址,可以将发送的信息的源地址设置为0.0.0.0,目的地址设置为255.255.255.255
DHCP Server 引导服务器
本网络上的特定主机
Netid(全0)----Hostid(特定的)
环回地址
Loopback address
127.X.Y.Z
单播、多播、广播地址
单播 A、B、C类
多播 D类
广播
构成子网
将一个IP类网划分成几个较小的子网
多个物理网共享同一个IP类网前缀
Netid-----Subnetid-----Hostid
掩码
网络或子网的大小
32bits二进制数
1:网络或子网部分
0:主机部分
构成超网
将几个C类网合并成一个更大的地址范围
将Netid中的某些1改为0
子网:主机号->子网号
超网: 网络号->主机号
路由聚合 CIDR 使用超网技术减少路由表项的数目
IP分组的交付和路由选择
交付
对分组的物理转发
路由选择
为分组寻找路由
面向连接和无连接服务
直接交付和间接交付
直接交付:分组目的与分组的发送接口在同一IP网络中
间接交付:分组目的与分组的发送接口在不同IP网络中
路由选择的方法
不是都到IP分组之后才为其选路,而是预先获得所有目的路由
IP报文按预定的路由转发
预定路由:路由表
转发表
主机和路由器都用路由表实现报文的转发、发送
思想:使用尽可能少的信息实现选路
信息:
可能的目的->目的网络,而非目的主机
节约路由表的存储空间,提高查表效率
如何到达目的->下一跳路由,而非全部路径
简化路由表,每个路由器独立选
特定主机路由
思想:为某台主机单独指定一条路由
实现:掩码值全为1
作用:更多控制
投递路径 安全
默认路由
思想:指定一个默认路由器,当IP分组的目的网络没有出现在选路表中时,则把IP分组送给默认路由器
实现:
网络地址:0.0.0.0
网络掩码:0.0.0.0
作用:使路由表变得很小,隐藏大量的路由信息
静态和动态路由选择
静态路由选择
管理员手工设置
管理员手工更新
不能保证路由的一致性和及时性
管理型强
没有路由开销
小型、变化缓慢网络
动态路由选择
路由协议自动发现
路由协议自动更新
保证路由的一致性和及时性
管理性较弱
产生一定的路由开销
大型、迅速变化网络
路由表的构成过程
初始化阶段-----路由发现
推导初始路由
直连网络->直连路由
无推导部分
手工设置->静态路由
路由器间交换选路信息->动态路由
维护阶段----路由更新
手工、静态更新
路由协议自动、动态更新
路由选择模块和路由表的设计
直连路由->主机路由->网络路由->默认路由
网际协议IP
不可靠无连接数据报协议
连接:面向连接、无连接
可靠:差错控制、流量控制等
面向连接不一定保证可靠,无连接不一定不可靠
在连接上容易实现可靠性机制
IP通信
无连接:跨越多个异构物理网->通用性
不可靠:尽最大努力交付
可靠性问题交由高层协议解决
数据报
IP Datagram 20-65536bytes
----Header 20-60bytes
--------VER 4bits
--------HLEN 首部长度字段 4bits 以4字节为单位
--------Total length 总长度字段 16bits 以字节为单位
--------Type of Service(TOS) 服务类型字段 8bits
------------Precedence 指示对分组进行处理的优先权 3bits
------------DTR 该分组所希望路由转发服务类型,不能同时设置 3bits
------------Reserve 保留字段
--------identification 标识字段 16bits 源站每发送一个分组,标识值+1
--------Flags 标志字段 3bits
--------Fragmentation offset 片偏移字段 13bits 以8bytes为单位
--------Time to Live(TTL) 生存时间字段 8bits 跳数
--------Protocol 协议字段(使用IP服务的高层协议) 8bits
--------Checksum 校验和字段 16bits
--------源IP
--------目的IP
----Data
分片
适应在不同MTU的物理网上传输
分片操作
仅有路由器执行:转发分组时
确实需要时才进行分片:提高传输效率
每个分片都要包含IP首部:无连接通信
数据报可被多次分片
重组操作
仅有目的主机执行:将数据递交给
IP的无连接通信->各分片的传输路径可不同
有重组时限
若丢失分片,则无法重组IP分组
目的主机能区分和重组不同的原IP报文
源IP地址,标识
重组表
选项
作用:网络测试或调试 0-40bytes
校验和
IP软件的设计
ARP和RARP
主机标识
互联网:IP地址 全局性
物理网:物理地址 本地性
地址解析
逻辑地址->物理地址
动态映射方式
特定的协议
地址解析协议 ARP IP地址->MAC地址 在物理网络内获得
分组格式
RARP
MAC地址->IP地址
用途:无盘机器的引导、动态IP地址配置
DHCP
BOOTP
ICMP
IP协议:
只有一种报文格式–IP数据报
功能:传递数据
缺乏:应付可能出现差错的能力
ICMP协议
IP的辅助协议
为IP提供差错报告机制
为其他层提供辅助功能
差错报告和差错更正
IP传输过程中出现差错时不可避免的
IP分组传输出现差错时,会产生相应的ICMP报文
通过ICMP报文提供差错报告
ICMP差错报告之恶能送给IP分组的源站,协议只提供了差错的处理方法的建议
出错点可能不是当前的路由器
反向传输路径可能与原路径不同
源站可能无法确定差错源,需要与网络管理员一起协作处理
报文投递与封装
ICMP在IP之上实现,逻辑上与IP同在网络层
与IP报文的传递过程一致—无连接通信
直接送达目的站点,沿途的转发路由器不能获知ICMP报文内容
ICMP报文封装
IP报文的数据段
报文类型
差错报告
测试查询
报文格式
差错报告
查询
校验和
ICMP的设计
UDP
传输层的功能
作为应用程序和网络操作的中介物
创建进程到进程的通信 端到端的通信
提供差错控制和流控
传输层协议
TCP 传输控制协议
UDP 用户数据报协议
进程到进程的通信
端点:IP地址+协议端口
数据报格式
Header
----源端口 16
----目的端口 16
----总长度 16
----校验和 16
Data 最大长度 65507
用户数据报
校验和
计算方法和IP校验和方法相同
校验内容
伪首部+UDP首部+数据
伪首部
根据IP首部的部分信息形成,不与UDP报文一起发送到网络上
进一步确保UDP报文送到正确主机的正确端口
UDP的操作
UDP的使用
UDP的设计
TCP
高层应用的需求
传输大量的数据,要求可靠的通信服务
自身的可靠性机制弱
底层网络和IP网络是不可靠、无连接投递
TCP
提供通用的、可靠的进程到进程的通信服务
提供统一的数据流投递服务接口
投递方式
报文
投递单位:报文
数据流
投递单位:byte
协议概述
可靠投递服务特点:
面向数据流的传输
无结构字节流:没有边界,内容任意
虚电路连接:
尽管IP网络是无连接的,但在TCP的端点上,却可看作是面向连接的通信
有缓冲的发送—提高传输效率
应用程序:使用自己认为适宜的任何大小的数据片
全双工服务
TCP可靠性保证
采用面向连接的通信方式
滑动窗口协议,以提高通信性能
捎带确认方式:未使用显示确认,减少报文种类
TCP只用一种报文格式,完成
建立、拆除连接,数据传输,确认、流控、窗口滑动
报文段格式
----Header
--------Source port address 16bits
--------Destination port address 16bits
--------Sequence number 32bits
--------Acknowledgment number 32bits
--------HLEN 4bits
--------Reserved 6bits
--------控制字段 6bits
--------Window size 16bits
--------Checksum 16bits
--------Urgent pointer 16bits
----Data
紧急指针和带外数据
带外数据
字段,字符
位于数据字段的开始
不在数据流中排队,直接递交上层
提供快速传递数据的功能
紧急指针
指向带外数据的最后一个字节
差错控制
正确投递数据
按序 无差错 不丢失、不重复
检测:校验和,确认,超时
纠正:重传
TCP的确认机制
带重传的肯定确认
接收方收到正确的数据后,向原站会送ACK报文
发送方重传错误数据
累计确认
ACK number 是接收方希望接收的下一个字节
对ACK number以前的所有字节的确认
超时重传机制
放松方发送数据时启动一个定时器
定时期间,发送方收到确认后,再发送后续数据
定时期满,发送方重传未未确认数据
未确认数据
受损或丢失的数据
取人丢失的数据
流控和拥塞控制
TCP的流控
收发速率匹配,防止接收方被数据流淹没
方法:收发速率匹配—滑动窗口协议
TCP的拥塞控制
TCP的拥塞表现为时延增加
超时重传机制会进一步家中网络拥塞
方法:减少报文段发送量—基于滑窗协议
滑动窗口
窗口
发送方再收到确认前,其发送缓冲区中可以发送的数据流长度
单位:报文或字节
滑动
随着确认的不断到达,窗口也不断的向后移动
TCP滑动窗口—动态可变窗口
发送窗口大小动态可变
接收方通知当前可用接收缓冲区大小
发送方用该通告值调整发送窗口大小
优点:更加有效的传输,同时还可控制数据流量
极端情况:接收方通告的可用缓冲区=0
发送方停止发送
重新开始发送的条件
收到窗口值不为0的通告
试探性发送–预防通告丢失造成的死锁
带外数据
TCP滑窗讨论:超时重传
发送端重传等待确认的数据
依据当前发送窗口,重新切割和重传报文段
传输往返时延可变,需动态改变超时时限
动态可变窗口对重传的影响:重传报文与原报文不一致
窗口值缩小,报文长度会减小,反之,会增大
接收复原
离散复原(流序号起重要作用)
TCP 滑窗讨论:拥塞避免
前提:
假定报文的丢失都是由网络拥塞引起的
发送窗口=min(窗口通告值,拥塞窗口)
方法一:加速递减
一旦出现丢失报文报文,则拥塞窗口减半->按指数递减
发送窗口内数据超时实现加倍->指数递减重传速率
方法二:慢启动
拥塞窗口=1个MSS时,每收到一个确认,拥塞窗口即发送窗孔增加1个MSS
发送窗口=0.5*窗口通告值后,窗口中所有报文段都被确认后,拥塞窗口即发送窗口增加1个MSS
TCP的糊涂窗口综合症
TCP协议软件由较高的性能
实际中出现:通信双方的应用进程以不同速率工作时,会出现严重的性能问题
TCP连接管理
TCP软件设计
路由协议
Metric&Converge
选路准则:最短路径
Metric:衡量路径的长短
跳数
带宽、延迟、负载、开销
不同的Metric产生不同的最短路径
不同的路由信息采用不同的类型Metric
一个路由协议可同时应用多重Metric
Convergence:收敛
采用特定路由协议的所有路由器对整个网络拓扑具有一致性的认识
收敛时间:
从不一致到一致所经历的时间
体现路由算法的效率
自治系统和内、外部路由协议
自治系统
处于一个管理机构控制下的网络和路由器的集合
AS时管理机构可自主选择其内部路由方式和对外通告部分可达性信息的权力
每个AS赋予一个AS编号
RIP
内部路由协议
距离向量路由算法
发布路由信息
周期性的将自己的路由表发给自己的邻居路由器
计算路径
累计距离向量
RIP报文格式
广播发送255.255.255.255
封装在UDP报文中 port520
缓慢收敛
路由环路 无限计数
触发更新
水平分割
毒性逆转
抑制定时器
路由器再收到关于某网络不可达信息后的一段固定时间内,忽略任何关于该网络的路由信息
OSPF 开放最短路径优先 直接使用IP服务
内部路由协议
链路状态路由算法
发布内容:链路状态信息
发布的位置:整个区域中的所有路由器
发布的时机:事件驱动
计算路径 最短路径优先算法
Area:包含在AS中的一些网络、主机、路由器的集合
邻接表:存放所有与之建立双向通信的邻居路由器信息
链路状态数据库:存放本区域中的所有链路状态信息
同区域内所有路由器的LS DB信息是相同的
转发表:路由表,存放所有经SPF算法获得
BGP-4
边界网关协议
TCP
外部网关协议 AS间的可达信息
策略路由 AS管理策略
可靠传输 TCP传输
路径向量路由选择
增量更新
支持CIDR
DNS
解析内容
将域名映射为IP地址
将IP地址映射为域名:反向查询
实现
C/S应用程序
DNS报文:查询报文,响应报文
512< TCP
512>= UDP