Internet
定义(描述)
网络构成
- 节点
- 主机(host)=端系统(end system)
- 分组(packet)交换:路由器+交换机
- 链路
- 双绞线、光纤(带宽最高,抗干扰性最强)、无线电频谱、卫星
传输速度=带宽
- 双绞线、光纤(带宽最高,抗干扰性最强)、无线电频谱、卫星
- 分组交换
- 路由器和交换机
服务方面
标准
- IETF
- RFC
功能
- 数据通信
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
协议(重点)
Internet通信控制——收发信息
定义了:
1、两个或多个通信实体间所交换报文的格式和次序
2、报文发送或接受或者其他事件方面所采取的行动
实质:PDU+逻辑(信息内容格式+交互逻辑)
基本要素:语义+语法+同步
网络结构
网络边缘部分
主机:客户机和服务器
接入网络和物理介质
物理介质(看看就好)
物理链路:在发送方和接受方间,传播位(bit)信号
分类
- 导引型媒体
- 非导引型媒体
常见物理介质:
双绞线、同轴电缆、光纤线缆、无线电磁波
端系统的因特网服务
目的:在端系统之间传送数据
面向连接的服务
相关概念:
- 握手
客户和服务器事先进入戒备状态,为接下来的分组交换做好准备
- TCP(Transmission Control Protocol,传输控制协议)
优点:可靠、顺序、字节流传输(丢失:确认和重传)
作用:流量控制--发送者不至于淹没接收者
拥塞控制--当网络拥塞时发送者降低发送速率
常见使用TCP网络应用:
HTTP,FTP,Telnet,SMTP
无连接服务
相关概念:
- UDP(User Datagram Protocol,用户数据报协议)
缺点:
不可靠数据传输
无流量控制
无拥塞控制
常见使用UDP网络应用
流媒体,视频会议,DNS,Internet电话
网络核心
相互连接的路由器构成的网络
电路交换
原理:每次会话预留沿其路径(线路)所需要独占的资源
网络资源被分片
重要技术:多路复用(Multiple Access)
- 分片分配到会话
- 分片没有被会话使用的情况下,分片空载(不共享)
- 电路级性能
- 要求呼叫建立一个专门的端到端线路
链路带宽分片方式
- 频分复用(FDM):将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号
- 时分复用(TDM):时间被划分为固定期间的帧,每个帧又被划分为固定数量的时隙.一个时隙可用于传输该练级的数据.
例题
解 : 1.536 M b p s / 24 = 64 k p b s 640 k b / 64 k b p s = 10 s 总 耗 时 : 10 s + 0.5 s = 10.5 s 解:1.536Mbps / 24=64kpbs\\640kb/64kbps=10s\\总耗时:10s+0.5s=10.5s 解:1.536Mbps/24=64kpbs640kb/64kbps=10s总耗时:10s+0.5s=10.5s
分组交换
原理:数据以离散的数据块通过网络来发送
关键:每个端到端的数据流被划分程分组(Packet)
- 所有分组共享网络资源
- 每个分组使用全部链路宽带
- 资源按需使用(分组交换和时分复用有相似之处,但不相同1)
问题:资源竞争 - 资源需求总量大于可获得资源的总量
- 拥塞:采用分组队列,等待使用链路
- 存储转发:分组每次转发1站
- 在1个链路上传输
- 每经过1个链路转发1次
- 转发分组前要求收到完整的分组
转发与路由的关系
路由是根据路由表查找到达目标网络的最佳路由表项
转发是根据最佳路由中的出口及下一跳IP转发数据包的过程。
因此,路由选择是转发的基础,数据转发是路由的结果。
转发与路由的区别
转发是一个节点在本地执行的一个相对简单的过程,即报文从某台设备的一个端口进入而从另一个端口出去。
路由选择依赖于网络发展过程中的不断演进的、复杂的分布式算法。最简单的路由选择可以决定报文发送的下一跳主机的地址,复杂的路由协议可以选择一条从主机1和主机2之间经过若干主机的路径。
分类
- 数据报网络:TCP/IP
- 分组目的地址决定下一跳
- 会话期间路由可以改变
- 既提供面向连接服务,也提供无连接服务
- 虚电路网络:X.25,FR,ATM
- 每个分组的标签(虚电路号)决定下一跳
- 一定是面向连接的
分组交换与电路交换比较
分组交换允许更多用户使用网络
分组电路优点:
- 适合大量突发的数据传输
- 简单,不需要建立连接
- 资源共享
缺点:过度竞争导致分组延迟与丢失(需要可靠数据传输、拥塞控制——TCP)
问题:如何提供电路级性能
主干(ISP的结构组成)
关注其层级结构即可
每个不同的顶级ISP要有共同的XIP
XIP:因特网交换点
分组交换网络中的延迟、丢失和吞吐量
产生原因
路由器分组缓冲区队列
- 分组到达输出链路的速率超过输出链路的容量,产生延迟,甚至丢失
- 分组在缓冲区队列排队, 按序等待
延迟(delay)
类型
- 节点处理时延(nodal processing delay)
- 检查错误位
- 选择输出链路
- 高速路由器处理延迟
- 排队时延(queueing delay)
- 等待被发送到链路上的时间,取决于路由器的拥塞程度
- 传输时延(Transmission delay)
- 分组长度/链路带宽(火车从车头到车位进出山洞的时间)
- 传播时延(Propagation delay)
- 物理链路长度/介质信号传播速度(火车在山洞里开的时间)
总 的 节 点 延 迟 d n o d a l = d p r o c + d q u e u e + d t r a n s + d p r o p 总的节点延迟 d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop} 总的节点延迟dnodal=dproc+dqueue+dtrans+dprop
分组丢失(packet lose)
- 路由器输入链路和输出链路的缓冲区容量有限
- 当分组到达路由器输入链路发现缓冲区已满,则路由器只好丢弃分组
- 当分组在路由器内部要转发到输出链路时发现输出缓冲区队列已满,路由器只好丢弃分组
- 丢失的分组可能被前路由节点、源节点重传,或不重传
- 丢包率或分组丢失率(packet loss rate/ratio)
吞吐量(Troughout)
定义:单位时间内整个网络传输数据的速率或分组数
单位:bps
m
i
n
{
R
s
,
R
c
}
min\{R_s,R_c\}
min{Rs,Rc}
吞吐量一般小于带宽,受制于小的链路
举例
1KM的传输速率,但是接受只有100M的速率,因为包与包之间有间隙?(不完整)
流量强度(traffic intensity)
R=链路宽度,L=分组长度,A=平均分组到达率,Traffic Intensity=LA/R
协议层及服务模型
经典模型
TCP/IP模型
网络协议栈(protocol stack)(以TCP/IP模型为主)
服务层名称 | 作用 | 常见协议 |
---|---|---|
应用层 | 支持网络应用,报文传送 | FTP, SMTP, STTP |
传输层 | 主机进程数据段传送 | TCP,UDP |
网络层 | 主机(源目标节点)间分组传送 | IP,路由协议 |
链路层 | 相邻网络节点间的数据帧传送 | PPP,Ethernet |
物理层 | 物理机制上的比特传送 |
分层
逻辑通信
物理通信
分层网络架构体系
- 协议与协议数据单元
- PDU:Header+Payload
- Header:编址信息+控制信息()
- 封装和解封装(Encapsulation&Decampsulation)
- 编址(Addressing):
- 传输层(Port)、网络层(IP)、数据链路层(MAC,以太网)
- 传输层(Port)、网络层(IP)、数据链路层(MAC,以太网)
封装头部信息 (H)
Port:网络应用定位
IP Addr:全网全局定位——定位了Internet上的唯一的一个计算机(端系统)
MAC Addr(Ethernet):本地局部定位
数据链路层也有P2P的情况,但是不需要掌握
有了IP为什么还要MAC
一. 整体与局部
信息传递时候,需要知道的其实是两个地址:
- 终点地址(Final destination address)
- 下一跳的地址(Next hop address)
IP地址本质上是终点地址,它在跳过路由器(hop)的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。
注:一般来说IP地址经过路由器是不变的,不过NAT(Network address translation)例外,这也是有些人反对NAT而支持IPV6的原因之一
二. 分层实现
如果在IP包头(header)中增加了”下一跳IP地址“这个字段,在逻辑上来说,如果IP地址够用,交换机也支持根据IP地址转发(现在的二层交换机不支持这样做),其实MAC地址并不是必要的。
但用MAC地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与链路层的协议更灵活地替换,网络层不一定非要用『IP』协议,链路层也不一定非用『以太网』协议。
这就像OSI七层模型,TCP/IP五层模型其实也不是必要的,用双层模型甚至单层模型实现网络也不是不可以的,只是那样做很蛋疼罢了。
三. 早期的『以太网』实现
早期的以太网只有集线器(hub),没有交换机(switch),所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包。
原文