课本
以自顶向下为准,尽量照顾学校课本[ ]
这样的内容代表对应学校课本的目录如果学校课本分节了,但是自顶向下没有将以小标题标号即(1. 2. etc.),用以表征重要知识点由于有ppt+学校课本+自顶向下三个资料,完全不好编号,所以将有一定概率全部由5级标题代替自顶向下为准,辅以学校课本用作5级标题补充
以ppt做列表,自顶向下为标题,辅以学校课本用作5级标题补充
?|?标号用来表征不怎么懂啥意思,请务必重新去看
一般的组织结构
- 我是一张ppt
- 我是ppt中的一个point
- 我是point in point
- 我是point in point in point,我最好不要出现
- etc.
- 我是point in point in point,我最好不要出现
- 我是point in point
- 我是ppt中的一个point
计算机网络和因特网
学校课本[计算机网络概述 + 计算机网络协议与体系结构 + 数据通信技术基础]
什么是因特网
具体构成描述
- 成千上万联网计算设备:主机(host ) 或端系统(end system) 。
- 端系统通过
- 通信链路(communication link) 和
- 光纤(fiber)
- 铜线(copper)
- 无线电(radio)
- 分组交换机(packet switch ) 连接到一起。
- 通信链路(communication link) 和
- 不同的链路能够以不同的速率传输数据,链路的传输速率(transmission rate) 以比特/秒(bit/s, 或bps) 度量
- 端系统通过因特网服务提供商(Internet Service Provider, ISP) 接入因特网
- 端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol) , 这些协议控制因特网中信息的接收和发送。
- 思科公司估计到2016 年年底全球年度IP 流量将超过泽字节(zettabyte, $10^{21}$ 字节),到2019 年将达每年2 泽字节[ Cisco VN1 2015 ] 。
Internet 标准
因特网标准(Internet standard) 由因特网工程任务组(Internet Engineering Task Force, IETF) [ IETF2016] 研发。
IETF 的标准文档称为请求评论(Request For Cornment, RFC)
- RFC定义了
- TCP 、lP 、HTTP(用于Web) 和SMTP (用于电子邮件)等协议。
- IEEE 802 LAN/MAN 标准化委员会[ IEEE 802 2016]
- 制定了以太网和无线WFi的标准。
服务描述
通信架构
使分布式应用成为可能:
Web, VoIP, email, games, e-commerce, file sharing
通信服务
- 为源/目的主机提供可靠通信
- 尽最大努力通信” best effort” (不可靠通信)
什么是协议
网络边缘
通常把与因特网相连的计算机和其他设备称为端系统。因为它们位千因特网的边缘,故而被称为端系统。
- 网络边缘
- 应用和主机
- 接入网, 物理介质
- 有线, 无线
- 通信链路
- 网络核心:
- 互联的路由
- 网络的网络(network of networks)?
- 端系统
- 运行终端程序, 在网络边缘
- e.g. Web, email
- 客户机/服务器模式(client/server)
- 客户机发起请求,
- 从一直开机的服务器接收相应
- Web browser/server; email client/server
- 客户机发起请求,
- 端到端模式( peer-peer)
- 很少使用或者不使用服务器
- e.g. Skype, BitTorrent
接入网
这是指将端系统物理连接到其边缘路由器(edge router) 的网络。
- 端系统如何与边缘路由连接?
- 住宅接入网络
- 机构接入网络 (school, company)
- 移动接入网络
- 要了解:
- 接入网的带宽(bits per second)
- 共享或专用(shared or dedicated)
- 可信访问: 点到点(point to point)访问
- 使用调制解调器(modem)拨号
- 最高至56Kbps访问速度
- 不能同时上网和电话
- 现在已经很少使用
- 数字用户线 DSL: (Digital Subscriber Line)
- 由电信公司部署
- 最高2.5 Mbps 上行 (typically < 1Mbps)
- 最高24 Mbps 下行 (typically < 10 Mbps)
- 专有的电话接入
- 有线电视接入: 线缆网络
- HFC: (hybrid fiber coax)
- 非对称性: 最高30Mbps 下行速率, 2 Mbps 上行传输速率
- 线缆网络
- 多户家庭共享cable接入
- HFC: (hybrid fiber coax)
- 公司接入: 局域网(LAN,local area networks)
- 公司或者学校采用局域网接入
- 以太网(Ethernet):
- 10 Mbs, 100Mbps, 1Gbps, 10Gbps Ethernet
- 端系统直接接入以太网交换机
- LANs: chapter 5
- 无线接入网络
- 共享无线接入
- 无线网络将端系统链接至路由
- 基站 ,AP(access point)
- 无线 LANs:
- 802.11b/g (WiFi): 11 or 54 Mbps
- 广域无线接入
- 电信公司提供, 范围10km
- 速度1 -10 Mbps
- 3G, 4G: LTE
- 家庭网络
- 典型的家庭网络构成:
- DSL , 线缆modem
- 路由/防火墙/NAT(router/firewall/NAT)
- Ethernet
- 无线AP
- 使用调制解调器(modem)拨号
家庭接人: DSL 、电缆、FTTH 、拨号和卫星
每个用户的DSL调制解调器使用现有的电话线(即双绞铜线,将在1. 2. 2 节中讨论它)与位于电话公司的计算机网络和因特网本地中心局(CO) 中的数字用户线接入复用器(DSLAM) 交换数据。
电缆因特网接入(cable Internet access)利用了有线电视公司现有的有线电视基础设施。住宅从提供有线电视的公司获得了电缆因特网接入。因为在这个系统中应用了光纤和同轴电缆,所以它经常被称为**混合光纤同轴(Hybrid Fiber Coax, HFC)**系统。
企业(和家庭)接人:以太网和WiFi
以太网用户使用双绞铜线与一台以太网交换机相连。
基于IEEE 802. 11 技术的无线LAN 接入,更通俗地称为WiFi
广域无线接人: 3G 和LTE
甚至更高速率的广域接入技术即第四代(4G)广域无线网络也巳经被部署了。LTE (长期演进’’Long-Term Evolution” 的缩写,被评为最差首字母缩写词年度奖候选者)来源千3G 技术,它能够取得超过lOMbps 的速率。
物理媒体
双绞铜线
无屏蔽双绞线(Unshielded Twisted Pair, UTP) 常用在建筑物内的计算机网络中,即用于局域网(LAN) 中。
20 世纪80 年代出现光纤技术时,许多人因为双绞线比特速率低而轻视它,某些人甚至认为光纤技术将完全代替双绞线。但双绞线不是那么容易被抛弃的。现代的双绞线技术例如6a 类电缆能够达到lOGbps 的数据传输速率,距离长达100m 。双绞线最终已经作为高速LAN 联网的主导性解决方案。
我们看到, 拨号调制解调器技术通过双绞线能以高达56kbps 的速率接入。我们也看到,数字用户线( DSL) 技术通过双绞线使住宅用户以超过数十Mbps 的速率接入因特网(当用户靠近ISP 的中心局居住时) 。
同轴电缆
同轴电缆在电缆电视系统中相当普遍。我们前面巳经看到,电缆电视系统最近与电缆调制解调器结合起来,为住宅用户提供数十Mbps 速率的因特网接入。在电缆电视和电缆因特网接入中,发送设备将数字信号调制到某个特定的频段,产生的模拟信号从发送设备传送到一个或多个接收方。同轴电缆能被用作导引型共享媒体(shared medium) 。特别是,许多端系统能够直接与该电缆相连,每个端系统都能接收由其他端系统发送的内容。
光纤
这些特征使得光纤成为长途导引型传输媒体,特别是跨海链路。在美国和别的地方,许多长途电话网络现在全面使用光纤。光纤也广泛用千因特网的主干。然而,高成本的光设备,如发射器、接收器和交换机,阻碍光纤在短途传输中的应用,如在LAN 或家庭接入网中就不使用它们。
陆地无线电信道
一类运行在很短距离(如1 米或2 米);另一类运行在局域,通常跨越数十到几百米;第三类运行在广域号跨越数万米。个人设备如无线头戴式耳机、键盘和医疗设备跨短距离运行;在1.2.1节中描述的无线LAN 技术使用了局域无线电信道;蜂窝接入技术使用了广域无线电信道。
卫星无线电信道
通信中常使用两类卫星:同步卫星(geostationary satellite) 和近地轨道(Low-EarthOrbiting , LEO) 卫星.从地面站到卫星再回到地面站的巨大距离引入了可观的280ms 信号传播时延。不过,能以数百M.bps 速率运行的卫星链路通常用于那些无法使用DSL 或电缆因特网接入的区域。
网络核心
- 路由器构成的网络
- 原则性问题: 数据如何通过网络交换?
- 电路交换(circuit switching)
- 每次呼叫都有专用线路
- 电话网络
- 报交换(packet-switching)
- 数据封装在独立的“chunks”
- 网络核心: 电路交换
- 对呼叫进行端到端资源保留
- 带宽和交换容量:
- 专用资源: 没有共享
- 电路级性能:
- 呼叫建立过程:
- 网络资源 (e.g., 带宽)
- 划分成片 ” pieces”
- 每次呼叫分配若干片
- 每次呼叫分到的片若空闲,则浪费(no sharing)
- 划分成片 ” pieces”
- 带宽通过复用技术分配
- 频分复用
- (frequency division)
- 时分复用
- (time division)
- 对呼叫进行端到端资源保留
- 网络核心: 数据报交换
- 每个端到端数据流都划分为 ” packets ”
- 用户 A, B 的数据包共享网络资源
- 每个数据包发送时使用全部的带宽
- 资源按需分配
- 存在资源竞争:
- 总需求可能超过可用资源
- 存储和转发
- (store and forward): 数据包每次移动一跳(hop)节点在接收到整个数据报后才前向转发
- 数据报交换:统计复用Statistical Multiplexing
- A & B 的数据包序列没有固定的模式、带宽按需共享
- statistical multiplexing.
- TDM: 每个主机都得到相同的时隙(slot)
- 数据报交换: 存储转发store-and-forward
- 以速度R bps传送 L bits需要 L/R 秒
- store and forward:
- 路由器在接收到整个数据报后才前向转发
- 延迟 = 3L/R (若传播延迟为0)
- 数据报交换 vs. 电路交换
- 数据报交换可以容纳更多的用户!
- 1 Mb/s link
- 每个用户:
- 100 kb/s 活跃状态时速率
- 10%活跃时间
- 电路交换:
- 10 users
- 包交换:
- 35 users,
- 10个用户同时活跃概率为 .0004
- 数据报交换的问题?
- 优点:对于猝发性数据有利
- 资源共享
- 简单,无呼叫建立过程
- 过度的拥挤: 延迟或丢包
- 需要专门协议处理可靠通信, 拥塞控制
- 优点:对于猝发性数据有利
- Q: 如何提供电路级的服务?
- audio/video 需要带宽保证
- 是一个没有解决的问题 (chapter 7)
- Internet结构: network of networks
分组交换
电路交换
网络的网络
因特网交换点(Internet Exchange Point, IXP)
分组交换中的时延,丢包和吞吐量
分组交换网中的时延概述
排队时延和丢包
- 延迟和丢包的发生?
- 数据报在路由缓冲区中排队
- 数据报到达速率超过链路容量
- 数据报排队, 等待发送
- 数据报延迟的四个来源
- 节点处理(nodal processing)
- 检差比特错误
- 决定输出链路
- 排队(queueing)
- 在输出链路等待传输的时间
- 依赖于路由器拥塞程度
- 传输延迟(Transmission delay)
- R=链路带宽 (bps)
- L=数据报长度 (bits)
- 发送到链路的时间= L/R
- 传播延迟(Propagation delay)
- d = 物理介质长度
- s = 介质传输速度($\approx 2x10^8 $ m/sec)
- 传播延时= d/s
- Note: R 、s 是完全不同的概念!
- $d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}$
- $d_{proc}$ = 处理延时
- 一般为 微秒 (microsecs)
- $d_{queue}$ = 排队延时
- 决定于拥塞
- $d_{trans}$ = 传输延时
- = L/R, 低速链路明显
- $d_{prop}$ = 传播延时
- 几微秒~几百微秒
- 排队延迟
- R=带宽(link bandwidth, bps)
- L=数据报长(packet length, bits)
- a=平均到达速率(average packet arrival rate)
- La/R ~ 0: 平均排队延时较小
- La/R -> 1: 延时变大
- La/R > 1: 超过节点服务能力,延时变的无限大!
- 真实的数据报延迟和路由
- Traceroute program (Tracert):
- 提供了源到目的地节点端到端路径、时延的检测功能:
- 对途径的每个路由i发送3个检测数据报;
- 路由 i 返回检测结果;
- 发送、接收的时间间隔为时延,同时显示路由器i的名字、地址.
- Traceroute program (Tracert):
- 数据报丢失
- 队列所在的内存有限
- 队列满了以后到达的数据包会丢失(lost)
- 丢失的数据包会被重传, 或者根本不会被重传
- 吞吐率(throughput):
- 发送和接收者之间数据传输的速率 (bits/time unit)
- 即时: 任何给定时间的速率
- 平均: 较长时间内的平均速率
端到端时延
计算机网络中的吞吐量
它是瓶颈链路(bottleneck link) 的传输速率
协议层次及其服务模型
- 协议层次
- 网络非常复杂!
- many “pieces”:
- hosts
- routers
- links of various media
- applications
- protocols
- hardware, software
- Question:
- 网络有一定的组织结构吗?
- 至少在我们学习这门课的时候?
- 为什么分层?
- 处理复杂的问题:
- 简化处理:
- 准确的结构定义能够区分、界定复杂系统各个组成部门的功能和边界
- 层次化参考模型( reference model) 提供讨论
- 便于维护:
- 模块化易于维护, 更新系统
- 某层服务功能的实施、更新独立于其它层次,提高结构稳定性
- e.g., 登机口的改变不会影响旅客接受的服务质量
- 好像也没其它坏处?
- 处理复杂的问题:
- Internet 协议栈
- 应用层(application):
- 报文(message)
- 支持网络应用
- FTP, SMTP, HTTP
- 传输层(transport):
- 报文段(segment)
- process-process 数据传输
- TCP, UDP
- 网络层(network):
- 数据报(datagram)
- 从源到目的地路由数据包
- IP, routing protocols
- 链路层(link):
- 帧(frame)
- 相邻两个网络设备之间传输数据
- PPP, Ethernet
- 物理层(physical):
- bits “on the wire”
- ISO/OSI 参考模型
- 表示层(presentation):
- 允许应用程序解释数据含义
- , e.g., 加密, 压缩, 特定编码
- 会话层(session):
- 同步,数据恢复,会话状态
- Internet 没有这两层 !
- 认为这些服务应该在应用层中实现
- 网络安全
- 网络安全问题是关于:
- 坏人如何攻击计算机网络
- 如何防卫
- 如何设计网络架构能够防御攻击
- Internet 设计时没有考虑安全问题
- 最初的设想是:
- “透明网络中一群互相信任的用户”
- Internet 协议设计者采用“catch-up”的策略
- 每一个层次都有防御策略!
- 信息安全
- 保密性
- 具有一定保密程度的信息只能让有权读到或更改的人读到和更改。
- 完整性
- 在存储或传输信息的过程中,原始的信息不能允许被随意更改。
- 可用性
- 对于信息的合法拥有和使用者,在他们需要这些信息的任何时候,都应该保障他们能够及时得到所需要的信息。
- 不可抵赖性
- 对自己行为的不可抵赖及对行为发生的时间的不可抵赖。
- 保密性
- 恶意软件 通过 Internet进入主机
- 恶意软件(Malware)
- 可能是 病毒(virus), 蠕虫(worm), 或木马(trojan horse).
- 间谍恶意软件(Spyware malware)
- 记录键盘, 访问过的网址,上传用户信息.
- 僵尸网络(Botnet)
- 感染的主机组成僵尸网络, 发动spam 和 DDoS 攻击.
- 特点:自我复制
- 恶意软件通常能够自我复制: 从感染的主机, 伺机进入其他有类似缺陷的主机
- Trojan horse
- 它是指用于控制另一台计算机的一段特定的程序(木马程序)
- 控制端;即被控制端
- 通常潜伏于网页
- (Active-X, plugin)
- Virus
- 破坏计算机功能或者数据的代码
- 自我复制的一组计算机指令或者程序代码
- Worm:
- 传播它自身功能的拷贝或某些部分到其他的计算机系统
- 网络或者系统漏洞进行传播
- 自我复制: 感染其他用户、主机
- 数据报监听Packet sniffing:
- 广播介质(共享Ethernet, 无线局域网)
- 在网络接口混杂模式下读取/记录所有经过的数据报
- 重放攻击 record-and-playback:
- 监听敏感信息(e.g., password), 在以后使用
- 或录制正常数据,通过重放,麻痹网络管理员
分层的体系结构
一个协议层能够用软件、硬件或两者的结合来实现。诸如HTTP 和SMTP 这样的应用层协议几乎总是在端系统中用软件实现,运输层协议也是如此。因为物理层和数据链路层负责处理跨越特定链路的通信,它们通常在与给定链路相关联的网络接口卡(例如以太网或WiFi 接口卡)中实现。网络层经常是硬件和软件实现的混合体。还要注意的是,如同分层的航线体系结构中的功能分布在构成该系统的各机场和飞行控制中心中一样, 一个第n 层协议也分布在构成该网络的端系统、分组交换机和其他组件中。这就是说,第n 层协议的不同部分常常位于这些网络组件的各部分中。
将这些综合起来,**各层的所有协议被称为协议栈(protocol stack)**。因特网的协议栈由5 个层次组成:物理层、链路层、网络层、运输层和应用层(如图l-23a 所示) 。如果你查看本书目录,将会发现我们大致是以因特网协议栈的层次来组织本书的。我们采用了自顶向下方法(top-down approach) , 首先处理应用层,然后向下进行处理。
封装
面对攻击的网络
计算机网络和因特网的历史
分组交换的发展: 1961~1972
专用网络和网络互联: 1972~1980
网络的激增: 1980~1990
因特网爆炸: 20世纪90年代
最新发展
小结
- 传输,传播延迟的区别
- 协议们对数据包的处理:丢弃
习题
应用层
- Our goals:
- 网络应用协议的概念/实例
- 传输层服务模型
- client-server paradigm
- peer-to-peer paradigm
- 通过常见的应用层协议学习
- HTTP
- FTP
- SMTP / POP3 / IMAP
- DNS
- 网络应用编程
- socket API
- 网络应用协议的概念/实例
- 一些网络应用
- 电子邮件e-mail
- web
- 即时消息
- 远程登录
- P2P 文件共享
- 多用户网络游戏
- 流媒体:视屏点播
- IP电话
- 流媒体:视屏会议
- 网格计算
- 构造一开发一个应用
- 运行于不同 end systems
- 通过网络通信
- e.g., web server software communicates with browser software
- 不需要关心网络核心的设备
- 网络核心设备不运行用户应用
- end systems 允许快速的应用开发 、部署、传播
应用层协议原理
- 应用架构
- Client-server
- Peer-to-peer (P2P)
- Hybrid of client-server and P2P
- Client-server 架构
- server:
- always-on 主机
- 永久IP address
- 可扩展:服务器集群
- clients:
- 与服务器通信
- 可能是间歇性的连接
- 可能是动态的IP地址
- 通常相互之间不直接通信
- server:
- 纯 P2P 架构
- 没有 always-on 服务器
- 任意端节点主机间可相互通信
- 端节点间歇性的连接、相互通信,具有动态的IP地址
- Highly scalable but difficult to manage
- client-server和 P2P混合架构
- Skype
- voice-over-IP P2P 应用
- 中央服务器: finding address of remote party:
- client-client 连接: direct (not through server)
- Instant messaging (QQ)
- 用户之间的聊天是P2P
- 中央服务器:
- client presence detection/location
- User上线后在中央服务器注册IP地址
- User 联系中央服务器获得好友的IP地址
- Skype
- 进程通信
- Process: 运行于某个主机上的程序.
- 进程间通信:
- 相同主机上的进程间通信inter-process communication (OS).
- 消息:
- 不同主机上的进程间通过交换messages通信
- Client process: 发起通信的进程
- Server process: 等待被访问的进程
- Note:
- P2P 架构的应用程序同时有
- client processes & server processes
- 进程寻址
- 进程接收消息,需要一个标识符
- 主机有32-bit IP 地址
- Q: 有IP 地址后该主机上的进程就可以标识自己,进行通信了吗?
- Answer: No, 同一个主机具有很多进程。
- 标识符包括
- IP address
- 与主机上进程相应的端口号port numbers.
- Example port numbers:
- HTTP server: 80
- Mail server: 25
- 套接字Sockets
- 进程 sends/receives messages 通过socket进行
- socket 类比于一扇门
- sending process 把message扔出门口
- sending process 依赖于传输层结构将message 发送到接收的进程
- 其实就是函数调用
- API: (1) 可以选择传输层协议; (2) 指定某些参数。
- 应用层协议的定义
- 交换的消息类型
- eg, request & response messages
- 消息类型的语法
- fields inmessages & how fields are delineated
- 字段的语义
- meaning of information in fields
- 进发送&响应消息的规则
- Rules for when and how processes send & respond to messages
- 公有协议
- Public-domain protocols:
- 在RFCs中定义
- 允许互操作
- e.g., HTTP, SMTP
- 私有协议
- Proprietary protocols:
- e.g., Skype,QQ
- 交换的消息类型
- 应用所需要的传输层服务?
- 数据的丢失Data loss
- 一些应用(e.g., audio) 能够忍受数据的丢失
- 某些应用(e.g., telnet,file transfer) 要求 100% 可靠的数据传输
- 时效性Timing
- 一些应用(e.g., Internet telephony, interactive games) 要求低延迟
- 吞吐率Throughput
- 一些应用(e.g., multimedia) 要求最小的吞吐率带宽
- 某些应用(“elastic apps”) 随便多少带宽都可以工作
- 安全性Security
- Encryption, data integrity
- 数据的丢失Data loss
- Internet传输协议服务
- TCP service:
- 面向连接connection-oriented: setup required between client and server processes
- 可靠地reliable transport :between sending and receiving process
- 流控flow control: sender won’t overwhelm receiver
- 拥塞控制congestion control: throttle sender when network overloaded
- 不提供: timing, minimum bandwidth guarantees
- UDP service:
- 不可靠的数据传输unreliable data transfer between sending and receiving process
- 不提供:
- connection setup,
- reliability,
- flow control, c
- ongestion control,
- timing,
- bandwidth guarantee
- Q: why bother? Why is there a UDP?
- TCP service:
网络应用程序体系结构
进程通信
可供应用程序使用的运输服务
在握手阶段后,一个TCP 连接(TCP connection) 就在两个进程的套接字之间建立了。这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
通信进程能够依靠TCP, 无差错、按适当顺序交付所有发送的数据。
因特网提供的运输服务
应用层协议
本书涉及的网络应用
Web 和HTTP
- Web and HTTP
- 一些web的术语
- Web page 由 objects (对象)组成
- Object 可以是HTML 文件, JPEG 图片, Java applet, 声音文件,…
- Web page 一般是基 HTML文件,包含很多索引对象
- 每个object 由URL寻址
- HTTP概览
- HTTP: 超文本传输协议hypertext transfer protocol
- Web应用层协议
- client/server model
- client: 浏览器
- 发送请求,接收,显示(渲染) Web objects
- server: Web 服务器
- 回复针对请求的相应
- 使用 TCP:
- Client初始化TCP 连接
- (生成socket) 至服务器, 端口 80
- server 接受client的TCP 连接请求
- HTTP 消息(应用层协议消息)在browser (HTTP client) 和 Web server (HTTP server)之间交换
- TCP 连接关闭
- HTTP 是无状态的
- server 不维护过去client 的requests
- HTTP连接
- 非持久连接HTTP
- 一次 TCP 连接最多发送一个object.
- HTTP 1.0
- 持久连接HTTP
- 一次 TCP 连接可以发送多个object.
- HTTP 1.1
- 大部分浏览器默认支持!
- HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
- 非持久连接HTTP
- HTTP请求消息格式:通常的格式
- 响应格式
- 方法类型
- HTTP/1.0
- GET
- POST
- HEAD
- asks server to leave requested object out of response
- HTTP/1.1
- GET, POST, HEAD
- PUT
- 在entity body 包含上传文件路径在URL field指定
- DELETE
- 删除 URL field指定的文件
- HTTP/1.0
- 用户端状态: cookies
- Cookies使用非常广泛!
- 四个组成部分:
- HTTP 响应消息头部
- HTTP 请求消息头部
- 保留在客户端的cookie 文件, 由用户浏览器管理
- Web 站点后台数据库
- 用途:
- 认证(authorization)
- 购物车(shopping carts)
- 推荐(recommendations)
- 用户会话状态(Web e-mail)
- 保持状态
- protocol endpoints: 在多个事务(transactions)的过程中,在sender/receiver之间维护状态
- cookies: http messages carry state
- Web caches (proxy server代理服务器)
- Goal: 不访问origin server 而满足client request
- FTP: 文件传输协议
- 客户机与服务器之间传送文件
- client/server model
- client: 初始化传输 (either to/from remote)
- server: 远处主机
- ftp: RFC 959
- ftp server: port 21(控制连接)
- port 20(数据连接)
- FTP: 控制/传输连接
- 控制连接使用: “带外传输”server 打开单独的TCP 传输文件
- FTP 命令, 响应
- Sample commands:
- 在控制信道发送
- Sample commands:
- ASCII 格式命令
- USER username
- PASS password
- LIST 返回当前目录文件列表
- RETR filename
- 下载指定文件
- STOR filename
- 上传文件至服务器当前目录
- Sample return codes
- 状态码和简短说明
- (类似HTTP)
- 331 Username OK, password required
- 125 data connection already open; transfer starting
- 425 Can’t open data connection
- 452 Error writing file
HTTP 概况
非持续连接和持续连接
HTTP 报文格式
用户与服务器的交互: cookie
Web 缓存
条件GET 方法
因特网中的电子邮件
- 电子邮件
- 三个组成部分:
- 用户代理
- 邮件服务器
- 简单邮件传输协议: SMTP
- User Agent
- a.k.a. “mail reader”
- 书写, 编辑, 阅读邮件信息
- e.g., Eudora, Outlook, elm, Mozilla Thunderbird
- 外出及进来邮件都保留在服务器
- a.k.a. “mail reader”
- 三个组成部分:
- 电子邮件: mail servers
- Mail Servers
- 邮箱:mailbox
- 保留用户邮件
- 邮箱:mailbox
- 邮件队列:message queue
- 等待发送的邮件
- SMTP protocol
- 服务器之间交换邮件的协议
- client: 发送邮件的服务器或客户端
- “server”: 接收邮件的服务器
- Mail Servers
- 电子邮件: SMTP [RFC 2821]
- 使用 TCP 从客户端可靠的传输邮件信息到服务器,
- 使用端口 25
- 直接传送: 发送服务器直接发送邮件至接收服务器
- 传输的三个阶段
- 握手 handshaking (greeting)
- 传输 transfer of messages
- 关闭 closure
- command/response 交互模式
- 命令 commands: ASCII 文本
- 响应 response: 状态码和简短说明
- 消息是7-bit ASCII字符!
- SMTP交互示意
- SMTP: 后话
- SMTP 使用持久连接
- SMTP 消息采用 (header & body) 7-bit ASCII编码
- SMTP server 使用 CRLF.CRLF 判断消息的结束
- Comparison with HTTP:
- HTTP: 拉 pull
- SMTP: 推 push
- 都使用ASCII command/response 进行交互, status codes
- HTTP:
- 每个 object 都有响应消息
- SMTP:
- 多个objects 在同一个消息中发送
- 邮件消息格式
- SMTP: 交换电子邮件的协议
- 消息格式:多用途电子邮件扩展
- 其他邮件协议
- POP3
- POP3 【Post Office protocol,邮局协议】(more) and IMAP
- More about POP3
- 前例使用 “download and delete” 模式.
- 李四阅读邮件后邮件中别的UA中不能访稳
- “Download-and-keep”: 模式允许不同UA访问邮件
- POP3 是无状态的协议
- IMAP【Internet Message Access Protocol,因特网消息访问协议 】
- 所有信息保留在一个地方: server
- 所有用户通过文件夹组织消息
- IMAP 中sessions中保持用户状态 :
- 文件夹的名字
- 文件夹和消息ID的对应关系
- More about POP3
SMTP
与HTTP 的对比
邮件报文格式
邮件访问协议
DNS: 因特网的目录服务
- DNS: Domain Name System域名系统
- 分布式数据库
- 具层次结构的多个域名服务器
- 应用层协议
- 主机, 路由,域名服务器
- 互相通信完成名字解析(resolve , 地址/域名 映射)
- 注意:
- 是一个应用层部署的核心协议
- 协议的复杂性位于网络的边缘
- 分布式数据库
- DNS 服务
- 主机名到IP地址的翻译
- 主机别名
- Canonical, alias names
- 邮件服务器别名
- 负载均衡
- replicated Web servers: set of IP addresses for one canonical name
- 为什么不是集中化 DNS?
- 单点错误
- 通迅负载
- 延迟
- 维护
- DNS: Root name servers根域名服务器
- 本地域名服务器(local name server) 与根域名服务器联系
- 根域名服务器:
- 与权威域名服务器联系完成域名映射
- 返回给本地域名服务器结果
- DNS 解析例子
- 迭代查询:
- LNS依次查询域名服务器层次结构中的各个服务器,最终获得该主机地址
- 递归查询
- 将查询的负担完全交给了查询对象
- 迭代查询:
- DNS: caching 和记录更新
- 一个 DNS server 了解到域名映射后, 它会caches 映射
- cache 有一定的 timeout 时间
- TLD servers 通常会在LNS cache保存
- Thus root name servers not often visited
- update/notify 机制的设计在IETF文档中有说明
- DNS 记录
- DNS 协议, 消息
- DNS插入一条记录
- DNS安全性
- DDoS 攻击
- 流量轰击根服务器
- Traffic Filtering
- Local DNS cache
- 流量轰击TLD服务器
- 潜在危险性更强
- 重定向攻击(Redirect attacks)
- Man-in-middle
- 查询劫持
- DNS 污染
- 发送虚假DNS响应
- 利用DNS 进行DDoS攻击
- 发送虚假的回复IP地址
DNS 提供的服务
DNS 工作机理概述
DNS 记录和报文
P2P 文件分发
- 纯P2P架构
- 没有服务器
- 端系统之间直接通信
- 端系统:经常改变IP间歇性地连接
- Two topics:
- 文件分发
- DHT
- 文件分发: BitTorrent
- 文件分成 256KB chunks.
- tracker: 跟踪参与共享的peer
- torrent: 记录交换chunks 的多个peers
- Peer 加入 torrent:
- 开始没有 chunks, 但是慢慢从其它地方下载积累
- 在 tracker 注册获得 peers列表,
- 与相邻的 peers (“neighbors”)取得联系
- Peer downloading, 同时 uploading chunks 给其他 peers.
- Peer 加入离开是动态
- Peer 下载完成, 可能离开 (selfishly) 或继续 (altruistically)
- Pulling Chunks
- 不同 peers 具有不同的文件 chunks
- 周期性的,
- peer (Alice) 问相邻peer获得 chunks 列表.
- Alice 发送缺失的chunks列表
- rarest first
- (最稀罕优先)
- Sending Chunks: tit-for-tat
- Alice 发送chunks 给四个速度最快的邻居
- every 10 secs
- 重估top 4
- every 30 secs:
- 随机选择一个节点加入传输
- 可能成为最快的top 4
- “optimistically unchoke
- (乐观激活?)”
- Distributed Hash Table (DHT)
- Hash 表
- DHT 例子
- 环状 DHT 和叠加网络
- Peer 加入和离开
视频流和内容分发网
因特网视频
HTTP 流和DASH
内容分发网
学习案例: Netflix 、YouTube 和“看看”
套接字编程:生成网络应用
UDP 套接字编程
TCP 套接字编程
小结
- rtt
- DNS服务器的层次划分
- DNS的查询机制
应用层网络的要素
- 交换的报文的类型
- 报文的语法格式
- 报文中字段的语义
- 各种类型报文发送的先后顺序和规则
常见应用的端口号
协议 | 端口 |
---|---|
HTTP | 80 |
FTP控制连接 | 21 |
FTP数据连接 | 20 |
SMTP | 25 |
POP3 | 110 |
IMAP | 143 |
DNS | 53 |
POP3 SSL | 995 |
IMAP SSL | 993 |
SMTP SSL | 465 |
SMTP TLS | 587 |
HTTPS | 443 |
TELNET | 23 |
TFTP | 69 |
SMTP | 25 |
SNMP | 161 |
名词解释
协议 | 中文名称或英文全称谓 | 主要功能或特征 |
---|---|---|
HTTP | 超文本传输协议(Hypertext Transfer Protocol,HTTP) | 简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。 |
FTP | File Transfer Protocol,文件传输协议 | 20用于传输数据,21用于传输控制信息 |
SMTP | Simple Mail Transfer Protocol 简单邮件传输协议 | 将电子邮件从本地发送到邮件服务器 |
IMAP | 因特网消息访问协议【IMAP(Internet Message Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol)】 | 邮件获取协议,它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。 |
P2P | 对等网络 | 在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位 |
习题
运输层
- Our goals:
- 理解传输层服务的原理:
- 多路复用/多路分解
- 可靠数据传输
- 流控
- 拥塞控制
- 学习 Internet中的传输层协议:
- UDP: 无连接传输服务
- TCP: 面向连接的传输服务
- TCP 拥塞控制
- 理解传输层服务的原理:
概述和运输层服务
- 传输服务和协议
- 不同主机应用进程间的逻辑通信 (logical communication)
- 传输层协议运行于 end systems
- 发送端:
- 将应用消息分为段 segments, 传递给网络层
- 接收端:
- 重组 segments 为消息, 传递给应用层应用
- 发送端:
- 在传输层有两个可用的协议
- Internet: TCP and UDP
- 传输层 vs. 网络层
- 网络层:
- 主机之间的逻辑通信
- 传输层:
- 进程间的逻辑通信
- relies on, enhances, network layer services
Internet 传输层协议
- 可靠有序的交付 (TCP)
- congestion control
- flow control
- connection setup
- 不可靠,无序的交付: UDP
- no-frills extension of “best-effort” IP
- 服务不具的特性:
- 延迟保证
- 带宽保证
- 网络层:
运输层和网络层的关系
因特网运输层概述
多路复用与多路分解
- 多路复用/多路分解
- 分解原理
- 无连接UDP的分解
- 面向连接TCP的分解
运行nmap 的主机能够尝试扫描因特网中任何地方的目的主机。
无连接运输: UDP
- UDP: User Datagram Protocol [RFC 768]
- “no frills”Internet transport protocol
- “best effort” 服务,
- UDP segments 可能:
- lost
- delivered out of order to app
- 无连接connectionless:
- UDP sender,receiver没有握手过程
- 每个UDP segment 分别处理
- Why is there a UDP?
- 没有连接建立过程(which can add delay)
- 简单(no connection state at sender, receiver )
- 较小的头部(8 bytes)
- 无拥塞控制(UDP can blast away as fast as desired)
- 常在流媒体应用中使用
- loss tolerant
- rate sensitive
- 其它UDP应用
- DNS
- SNMP
- UDP可信传输:
- 需要在应用层实施
- application-specific error recovery!
- UDP报文段结构
- UDP checksum校验和
- Goal: 在传输的报文段中检测“errors” (e.g., flipped bits)
- Sender:
- 将报文段的内容看成16-bit 整型数流
- checksum:报文段的内容的和 (1’s complement sum)
- 发送者将checksum 填入UDP checksum 字段
- Receiver:
- 计算接收到报文段的checksum
- 比较上一步计算得到的checksum与报文段中包含的checksum 字段值:
- NO - error detected
- YES - no error detected. But maybe errors nonetheless? More later
UDP 报文段结构
UDP 检验和
可靠数据传输原理
- 可信数据传输原理
- 是应用层、传输层、链路层的重要研究课题。
- 在计算机网络中位于排名列表的top-10!
- 不可信信道固有的特征决定了可信数据传输协议(reliable data transfer protocol, rdt)的复杂性
- 可信数据传输: getting started
- 使用有限状态机
- Rdt1.0:可信信道上的可信数据传输
- Rdt2.0: 具有比特位错误的信道
- rdt2.0 致命弱点!
- rdt2.1
- rdt2.2 不需要NAK
- rdt2.0 致命弱点!
- RDT3.0
- 流水线协议
- 允许发送者发送多个, “在途(in-flight)”, 等待确认的数据报
- 顺序号的范围必须扩大
- Sender /receiver必须使用缓冲区
- 两类流水线协议: go-Back-N, selective repeat
- Go-back-N: big picture:
- 发送者在流水线中最多有 N 个未确认的数据报
- 接收者仅发送累计的确认
- 如果中间有数据报缺失,就不予以确认
- 发送者对最久未确认的数据报进行计时
- 如果计时器到点,
- 重传所有未确认的数据报
- 选择重传: big pic
- 发送者在流水线中最多有 N 个未确认的数据报
- 接收者对单个数据报进行确认
- 发送者对每一个未确认的数据报进行计时
- 如果计时器到点,
- 仅重传该个未确认的数据报
- Go-back-N: big picture:
- GBN: 发送者 FSM
- GBN: 接收者 FSM
- ACK-only: 只针对正确、按顺序到达的、具最高顺序号的数据报进行确认
- 可能产生重复的ACKs
- 只需记得当前期望接收的数据报( expectedseqnum )
- out-of-order pkt:
- 丢弃-> 不予以缓冲!
- 重新确认上次接收的正确、按顺序到达的、最高顺序号的数据报
- ACK-only: 只针对正确、按顺序到达的、具最高顺序号的数据报进行确认
- 选择重传
- 接收者单独(individually)确认所有正确接收的数据报
- 按需要缓冲所有数据报, 等所有数据到齐了以后交付给上一层
- 发送者仅重传未接收到 ACK的数据报
- 给每一个未确认的数据报计时
- 发送窗口大小N
- 限制了已发送,未确认数据报顺序号的范围
我们仅考虑单向数据传输(unidirectional data transfer) 的情况,即数据传输是从发送端到接收端的。可靠的双向数据传输(bidirectional data trans£er) (即全双工数据传输)情况从概念上讲不会更难,但解释起来更为单调乏味。
注意到下列事实很重要:当发送方处于等待ACK 或NAK 的状态时,它不能从上层获得更多的数据;这就是说, rdt_send() 事件不可能出现;仅当接收到ACK 并离开该状态时才能发生这样的事件。因此,发送方将不会发送一块新数据,除非发送方确信接收方已正确接收当前分组。由于这种行为, rdt2. 0 这样的协议被称为停等(stop- and-wait) 协议。
构造可靠数据传轮协议
流水线可靠数据传输协议
回退N 步
选择重传
面向连接的运输: TCP
- TCP: 概览 RFCs: 793, 1122, 1323, 2018, 2581
- 点对点:
- 一个发送者,一个接收者
- 全双工:
- 在一个连接中进行双向的数据流动
- MSS: 最大段长度(maximum segment size)
- 面向连接:
- 传输数据前,通过握手 (交换控制消息) 初始化发送者, 接收者状态
- 可靠、有序字节流:
- 没有 “消息边界”
- 流水线:
- 窗口大小由TCP 拥塞和流量控制决定
- 流控:
- 发送者配合接收者调整发送速率
- 拥塞控制:
- 发送者根据网络情况调整发送速率
- 点对点:
- TCP报文段的结构
- TCP RTT和超时( Timeout)
- Q: 如何设置 TCP 超时值?
- 应该大于 RTT
- 但是RTT 会变化
- 太短:
- 超时误报
- 不必要的重传
- 太长:
- 对报文段丢失反应不灵敏
- 应该大于 RTT
- Q: 如何估计 RTT?
- SampleRTT: 检测到的从段发送到接收到ACK 的时间
- 重传忽略
- SampleRTT :会变化, 需要平滑化处理
- 多次检测(采样)的平均,
- 而不是当前的SampleRTT
- EstimatedRTT = (1- $\alpha$) $\times$ EstimatedRTT + $\alpha$ $\times$ SampleRTT
- SampleRTT: 检测到的从段发送到接收到ACK 的时间
- TCP 可信数据传输
- TCP 在不可靠的 IP传输基础上建立可靠传输
- 管道化报文段
- 累计确认
- TCP 使用单个重传定时器
- 重传由以下事件触发:
- timeout events
- duplicate acks
- 首先仅考虑简单的 TCP 发送者:
- 忽略多重ACKs
- 忽略流控, 拥塞控制
- TCP 发送者事件:
- 从应用层接收数据:
- 封装成带序号 seq #的段
- 序号为段中首字节在字节流中的序号
- 启动定时器
- 针对最久未确认的报文段
- 设置超时时间
- 超时:
- 重传
- 重传引起超时的报文段
- 重传
- 重启定时器
- 接到Ack :
- 如果接收到新的确认
- 更新确认数据
- 如果有未确认段,重启定时器
- 如果接收到新的确认
- 从应用层接收数据:
- TCP 发送者(FSM):
- 快速重传
- 超时阶段一般相对较长:
- 重传会有较大的延时
- 通过重复 ACKs检测丢失的数据报.
- 接收者经常发送连续的确认
- 如果报文段丢失,会产生重复的ACKs.
- 如果发送者收到了对重复的3个ACK报文段, 意味着该报文段所指下一个段丢失 :
- 在超时触发前快速重传该报文段:
- 超时阶段一般相对较长:
- TCP 流控
- 接收端告诉发送方 Rwnd 大小,表明还有多少可用的缓存空间
- RcvBuffer大小通过 socket 选项指定
- 很多操作系统能自动调整RcvBuffer
- 发送方通过限制 unACKed 数据,以与 Rwnd相适应
- 保证接收缓冲区不会溢出
- 接收端告诉发送方 Rwnd 大小,表明还有多少可用的缓存空间
- TCP 连接管理
- 在传输数据前, 发送/接收方“握手”:
- 同意建立连接
- 同意连接参数
- 三次握手
- TCP 3次握手: FSM
- TCP四次挥手
MSS 通常根据最初确定的由本地发送主机发送的最大链路层帧长度(即所谓的最大传输单元(Maximum Transmission Unit , MTU)) 来设置。设置该MSS 要保证一个TCP报文段(当封装在一个IP 数据报中)加上TCP/ IP 首部长度(通常40 字节)将适合单个链路层帧。以太网和PPP 链路层协议都具有1500 字节的MTU, 因此MSS 的典型值为1460字节。
TCP 连接
TCP 报文段结构
往返时间的估计与超时
可靠数据传徐
流量控制
TCP 连接管理
拥塞控制原理
- 拥塞控制原理
- Congestion:
- “太多的数据源发送太多的数据,并且发的太快 以致于无法处理”
- 不同于流控!
- 外部表现:
- 丢包(路由器缓冲区溢出)
- 延迟(路由器缓冲区排队)
- a top-10 problem!
- 拥塞场景1
- 拥塞场景二与开销
- 拥塞场景3与开销
- 拥塞控制方法
- 端到端拥塞控制:
- 网络没有反馈k
- 拥塞由端系统从延迟和数据丢失推断
- TCP采用此种策略!
- 网络辅助的拥塞控制:
- 路由器反馈网络拥塞信息给端系统
- 分组的某个bit指示拥塞(SNA, DECbit, TCP/IP ECN, ATM)
- 明确指示发送者发送速率
- 路由器反馈网络拥塞信息给端系统
拥塞原因与代价
拥塞控制方法
TCP 拥塞控制
TCP 拥塞控制: 加性增, 乘性减
- 策略: 让每一个发送方根据所感知到的网络拥塞,来限制其向网络发送数据的速率。
- 加性增(additive increase): 每个RTT周期增加CongWin 1 个MSS单位 ,直到检测到报文段丢失
- 乘性减(multiplicative decrease): 当检测到报文段丢失CongWin 减半
- TCP 慢启动
- 小结: TCP 拥塞控制
- 慢启动以2为底下
- 拥塞控制以mss为单位
公平性
明确拥寒通告:网络辅助拥实控制
小结
- UDP,TCP协议的报文组成
- 长度字节的单位
- GBN和选择重传协议
- 选择重传的问题
- 三次握手,四次挥手的过程
- TCP流量控制和重传
- TCP拥塞控制
- 慢启动
TCP的报文结构
TCP报文段包括协议首部和数据两部分,协议首部的固定部分有20个字节,首部中各字段的设计体现了TCP 协议的全部功能,协议首部的固定部分后面为选项部分,可以是4N个字节,在默认情况下选项部分可以没有。TCP报文段协议格式,如图5-32所示。
源端口和目的端口
源端口和目的端口各占两个字节,是应用层和运输层之间的服务接口,也可以理解为运输服务访问点(TSAP)地址,为网络中的一个逻辑地址,运输层的复用和分用功能需要通过端口实现。
序号
序号占4个字节,标识范围从0、1、…、$2^{32}$ -1,TCP传送的报文段可以看做是连续的字节流,每一个字节对应一个序号,数据按字节顺序编号,序号循环使用。传输数据的起始序号在连接建立时设置,首部中序号字段的值为所发送数据第一个字节的序号,紧接着下一个报文段的序号字段的值是前一报文段序号字段值加上前一报文段携带的数据字节数,例如,若上一个TCP报文段序号字段的值为201,该报文段携带的数据为200字节,则下一个 TCP报文段序号字段的值为201+200=401。
确认号
确认号占4个字节,确认号字段的值给出的是期望收到的下一个 TCP报文段第一个数据字节的序号,该字段也实现了累计确认和捎带确认。例如,若确认序号字段值为601,则表明字节序号为601-1=600 以前的数据字节均收到了,希望接收字节序号以601开始的TCP报文段。
数据偏移
数据偏移用于指出TCP报文段首部的长度,占4位,数据偏移的单位是32位字,即4个字节,数据偏移的最大值是60个字节,也就是说,TCP首部的最大长度为60个字节。TCP首部的固定部分为20个字节,则TCP首部的选项部分的长度最多为40字节。
标志位
有6个标志位,用于控制设置或标识报文段,有些标志位需要配合使用
紧急(URGent,URG)
该位置1时,表明紧急指针字段有效,说明此报文段中有紧急数据。
确认(ACK)
该位置1时,确认号字段才有效。
推送(PuSH,PSH)
接收方收到该位置1的报文段时,尽快交付给应用进程。用在一端的应用进程在键入一个命令后立即可以收到对方响应的情况。发送端把TCP报文段的PSH置1,并立即把TCP报文段发送出去,接收端收到PSH置1的报文段后,尽快地推送问前,交付给接收应用进程,不用等整个接收缓存都填满了后再向上交付。
复位(ReST,RST)
称为重建位或重置位,该位置1时,表明TCP连接中出现严重故障,必须释放连接,重新建立连接。该位置1时还可以用于拒绝打开一个连接或拒绝一个非法的报文段。
同步(SYN)
在连接建立时用来同步序号。该位置1时,表明是连接请求或连接响应报文段。SYN=T与ACK=0,表明是一个连接请求报文段。SYN=1与 ACK=1,表明是一个连接响应报文段。
终止(FINal,FIN)
用于连接释放,该位置1时,表明发送此报文段的一方的数据已
接收窗口
接收窗口用于流量控制和拥塞控制,表示当前接收缓冲区的大小。占2个字节,接收窗口字段的取值范围为0~65 535之间,单位为字节。在计算机网络中,通常是用接收方的接收能力的大小来控制发送方的数据发送量。TCP连接的一端根据接收缓冲区大小确定自己的接收窗口值,告诉对方,使对方可以确定发送数据的字节数。
校验和
校验和占两个字节,校验的范围包括首部和数据两部分,计算校验和时,在TCP报文段的前面加上12个字节的伪首部,这是与UDP的校验和一样的,伪首部第4个字段的值为6,因为TCP的协议号是6。
选项
选项字段是可选的,默认情况是不选。最初,TCP只规定了最大报文段长度(MaximumSegment Size,MSS)一种选项。MSS的含义是每一个TCP报文段中数据部分的最大长度,与MSS有关的技术文档是 RFC 879。为提高传输效率,只要在P层传输时不会引起分片,MSS应尽量选择得大一些。MSS是连接建立时由双方协商的,两方分别填入各自的 MSS,在数据传输时所采用的MSS取最小的数值。MSS 的默认值为536字节,这样在因特网上传输的TCP报文段长度是20+536=556字节。
在TCP/P 协议发展进程中,选项字段又增加了几个选项,分别是:窗口扩大选项、时间戳选项和选择确认选项。若想了解这些增加选项的描述,读者可以阅读技术文档RFC1323、RFC2018.
除了以上所述的字段外,TCP协议格式中还有保留字段和紧急指针字段。其中,保留字段有6位,值全为0;紧急指针字段有2个字节,在标志位URG位置1时才有作用,用于指出紧急数据的字节数,即使接收窗口字段值为0也可发送紧急数据。
$\bigstar$ TCP 处理拥塞控制的过程
- 感知丢包:超时机制,或3个冗余的ACK
- 慢启动:CongWin < Threshold(门限窗口),指数增加
- 拥塞避免: CongWin > Threshold(门限窗口),线性增加
- 加性增, 乘性减(AIMD)
- 加性增(additive increase): 每个RTT周期增加CongWin 1 个MSS单位 ,直到检测到报文段丢失
- 乘性减(multiplicative decrease): 当检测到报文段丢失CongWin 减半
- 快速恢复(3个冗余的ACK): ConWin = ConWin/2,Threshold=ConWin,之后每次加1MMS
- 超时处理: ConWin=1MMS, hreshold=ConWin/2,(慢启动)
名词解释
协议 | 中文名称或英文全称谓 | 主要功能或特征 |
---|---|---|
TCP | 传输控制协议(TCP,Transmission Control Protocol) | 是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。 |
UDP | 用户数据报协议(UDP,User Datagram Protocol) | UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法 |
习题
第4章 网络层:数据平面
- 目标:
- 理解网络层服务的原理:
- 网络层服务模型
- 前向转发和路由
- 路由如何工作
- 路由(路径选择)
- 如何扩展
- 最新技术: IPv6, 移动性
- 实例, IP技术在 Internet中的运用
- 理解网络层服务的原理:
网络层概述
- 从发送主机向接收主机传输报文段segment
- 发送端主机, 封装段segments成为数据报 datagrams
- 接收端主机, 分发段segments 至传输层
- 网络层主机工作于每一个主机, 路由
- 路由检查经过该点的所有IP数据报头部(header fields)
- 网络层的两个关键功能
- 前向转发:
- forwarding: 将数据报从路由的输入端口前向转发到相应的输出端口
- 路由:
- routing: 决定数据报从源到目的地所经过的路径
- 路由算法:routing algorithms
- analogy:
- routing:从源到目的地路径的计划过程
- forwarding: 经过单个交换结构-路由的过程
- 连接建立的过程
- 在某些计算机网络结构中的第3个重要功能:
- ATM, frame relay, X.25
- 在数据报流动之前, 两个端系统和中间的路由需要建立虚拟连接(VC:virtual connection)
- 路由参与了这个过程
- 网络层和传输层连接的区别:
- network: 两个主机之间
- VC网络中间路由的虚电路
- transport: 两个进程之间
- network: 两个主机之间
- 网络服务模型
- Q: 什么是信道为发送者和接收者提供的服务模型(service model)?
- 网络服务模型定义网络的一端到另一端之间分组的端到端传输特性。
- 数据报的服务模型:
- 保证交付
- 在某个时间内的保证交付
- 数据报流的服务模型:
- 有序的数据报交付
- 数据流的最小带宽保证
- 确保最大时延抖动
- 网络层连接和无连接服务
- 数据报网络提供了网络层无连接的服务
- VC 网络提供了网络层面向连接的服务
- 网络层提供的类似传输层的连接服务:
- 不同点
- service: 主机到主机
- no choice: 网络提供, 没有其它选择
- implementation: 在网络的核心实施
- 虚电路: 信令协议
- 用于建立、维护、拆除 VC
- 在ATM, frame-relay, X.25网络中使用
- 没有在 Internet使用了!
- 数据报网络
- 网络层没有呼叫建立的过程
- routers: 没有端到端连接的状态
- 没有网络层概念的“连接”
- 数据报转发使用目的主机IP地址
- 相同源-目的地址对的数据报可能沿着不同的路径向前转发
- 前向转发表
- 4 billion IP 地址, 所以列出IP地址是不现实的!只能使用地址块(地址范围) 。
- 最长前缀匹配
- 数据报网络 vi VC网络: why?
- Internet (datagram)
- 计算机之间的数据交换
- “弹性”服务, 无严格时间要求
- “smart” 端系统
- 能够自适应, 控制, 错误恢复
- 网络内部简单, 网络边缘复杂
- 链路类型多样
- 不同特征
- 统一服务困难
- ATM (VC)
- 从电话网络发展而来
- 满足人类交流需要:
- 严格的时间, 可靠性要求
- 保证服务
- “dumb” 端系统
- 例如电话
- 网络内部复杂
- 路由结构概览
- 两个关键的路由功能:
- 运行路由算法可协议 (RIP, OSPF, BGP)
- 从入端口到出端口链路 前向转发 数据报
- 三种类型的交换结构
- 通过内存交换
- 通过总线交换
- 通过互联网络交换
转发和路由选择: 数据平面和控制平面
网络服务模型
路由器工作原理
输入端口处理和基于目的地转发
交换
输出端口处理
何处出现排队
分组调度
网际协议:IPv4 、寻址、IPv6 及其他
- IPv4数据包格式
- IP 分片 & 重组
- IP 编址: 介绍
- 子网
- IP 地址: CIDR
- CIDR: Classless InterDomain Routing
无类别域间选路 - IP地址子网部分具有一定的长度
- CIDR: Classless InterDomain Routing
- IP 地址: 如何获取?
- 网络管理员分配
- 动态主机配置协议DHCP(Dynamic Host Configuration Protocol): 从服务器动态获得IP地址
- 层次寻址: 路由汇聚
- ISP 如何获得地址空间
- ICANN: Internet Corporation for Assigned Names and Numbers
- NAT网络地址转换:(Network Address Translation)
- ICMP互联网控制报文协议: (Internet Control Message Protocol)
- 与 IPv4的不同
- 检验和(Checksum):
- 为了加快处理,没有设置。
- 选项(Options):
- 在头部意外进行设置(“Next Header” field)
- ICMPv6:
- 新版ICMP
- 新的消息类型, e.g. “Packet Too Big”
- 多播组管理功能
- 新版ICMP
- 检验和(Checksum):
- IPv4 To IPv6迁移
- 隧道(Tunneling):
- IPv6作为IPv4数据报的负载在IPv4路由器间流动
- 隧道(Tunneling):
IPv4 数据报格式
IPv4 数据报分片
IPv4 编址
网络地址转换
IPv4
通用转发和SDN
匹配
动作
匹配加动作操作中的OpenFlow例子
小结:统一放在了后面一章
名词解释:统一放在了后面一章
课后习题和问题
第5章网络层: 控制平面
概述
路由选择算法
全局或分布式选路算法?
- 全局:
- 所有的路由都有全局的拓扑(topology), 链路开销信息
- “链路状态”算法
- 分布式:
- 路由仅了解物理相连的邻居和相应的链路开销
- 迭代的计算过程,
- 相邻路由器之间路由信息交换
- “距离矢量”算法
- 全局:
静态或动态?
- 静态:
- 路由变化缓慢
- 动态:
- 路由变化较快慢
- 周期性更新
- 会对链路开销变化做出响应
- 静态:
链路状态选路算法
- Dijkstra’s 算法
距离矢量算法Distance Vector Algorithm
- Bellman-Ford 等式 (动态规划)
- “好消息”传的快
- 坏消息传的慢
- 毒性逆转:
LS 与DV 算法比较
- 消息的复杂性
- LS:
- 节点数n , 链路数E, 消息数为O(nE)
- DV:
- 只在相邻节点间交换消息
- 收敛时间不一定
- LS:
- 收敛速度
- LS:
- O(n2) O(nE) 个消息
- 可能会有波动
- DV:
- 收敛时间不一定
- 可能会有路由环
- 计数到无穷(count-to-infinity) 问题
- LS:
- 健壮性: 路由器发生故障情况下的情况?
- LS:
- 节点通告不正确的链路开销
- 每个节点计算自己的路由表
- DV:
- 节点广播不正确的路径开销
- 每个节点的路由表都向相邻节点通报
- 错误通过网络传播
- 消息的复杂性
层次路由Hierarchical Routing
- 通过将路由器组织进自治系统, “autonomous systems” (AS)
- 自治系统由一组通常在相同管理控制下的路由器组成
- “intra-AS” 路由协议
- 不同AS 系统运行不同 intra-AS 路由协议
- 网关路由
- 负责向本 AS之外的目的地转发分组
Internet中的路由
- 选路信息协议RIP ( Routing Information Protocol)【路由信息协议】
- 距离矢量算法
- OSPF (Open Shortest Path First)
- 链路状态
- 层次结构
- 两个层次:本地区域, 主干.
- 仅在本地区域进行链路状态广播
- 每个节点都仅知道本地区域的拓扑; 和通往其他区域的直接最短路径.
- 区域边界路由器: 同时属于区域与主干两个层次.
- 主干路由器: 执行主干中的选路.
- 网关路由器: 与其他自治系统的路由器交换选路消息.
- 两个层次:本地区域, 主干.
- BGP
- 选路信息协议RIP ( Routing Information Protocol)【路由信息协议】
广播
- 泛洪(flooding):
- 泛洪要求源节点向它所有邻居发送分组的拷贝
- Problems: 循环 & 广播风暴
- 受控泛洪(controlled flooding):
- 受控泛洪选择何时泛洪,何时不泛洪;
- 序号控制泛洪:将其地址以及广播序号放入分组,再向其邻居发送分组
- 反向路径转发泛洪 (RPF): 仅当自己位于它自己到其源的最短单播路径上,才向其所有出链接广播分组
- 受控泛洪选择何时泛洪,何时不泛洪;
- 生成树广播(spanning tree):
- 任何节点都不会收到冗余的广播数据
- 泛洪(flooding):
链路状态路由选择算法
距离向量路由选择算法
ISP 之间的路由选择: BGP
BGP 的作用
通告BGP路由信息
确定最好的路由
IP 任播
路由选择策略
拼装在一起:在因特网中呈现
SDN 控制平面
SDN 控制平面: SON 控制器和SDN 网络控制应用程序
OpenF1ow 协议
数据平面和控制平面交互的例子
SDN 的过去与未来
ICMP: 因特网控制报文协议.
网络管理和SNMP
网络管理框架
简单网络管理协议
小结
- IP分配方式DHCP
- MAC地址48位
IP数据的格式
一个IP分组由首部和数据两部分组成,首部的固定部分为20字节,首部的可选部分的长度是可变的,最长为40字节,若长度不够4字节的整数倍,需要利用最后一个填充字段进行填充,以满足要求。可选部分很少使用,可以省略。
IP分组固定首部包含有12个字段,下面介绍每个字段的含义。
版本
占4位,标识IP协议的版本。这里使用的IP协议版本号为4,即IPv4。通信双方使用的IP协议版本要一致,该字段的值为0100。
首部长度
占4位,表示IP分组首部的长度(以组为单位,一个单位4个字节),取值为5~15,默认值为5,即首部固定部分为20字节。IP分组首部中包括了选项部分,选项占据的长度由本字段指明。
区分服务
占8位,该字段在早期标准中叫做服务类型,主机通过此字段告诉网络所要求的服务,但很少使用,其格式为PPPDTRCO,其中,PPP(3位)定义了8个优先级,D位标识时延,T位标识吞吐量,R位标识可靠性,C位为新增的,表示选择代价更小的路由,最后一个位未使用。优先级、时延、吞吐量、可靠性、更小代价路由可任意组合。1998年,IETF把该字段改名为区分服务,用于实现服务质量中的区分服务功用,对应的技术标准是RFC 2474。
总长度
占16 位,指包含首部和数据部分以字节为单位的总长度。最大65535字节。**需要满足数据链路层的帧格式中的数据字段的最大长度的要求,这个最大长度限制称为最大传输单元(MTU)**。
标识
占 16位,在IP软件中有一个计数器,每产生一个分组,计数器加1,并将值写入标识字段。当分组的长度超过MTU,需要分片时,属于同一个分组的多个IP分片的该字段值相同。
标志字段
占3位,格式为0、DF、MF,其中,DF位表示分组是否可分片,该位为1时表示不能分片,因为目的端不能重新装配分片,为0时表示可以分片。MF位表示是否为最后一个片,为0时表示是最后分片,为1时表示后面还有分片。当有N个片时,前N一1个数据分片的M位都为1。
片偏移
占13位,指出本分片数据相对于其所属分组起点的偏移量,以8字节为单位,即计算时偏移值应乘以8。每个分片的长度是8字节(64位)的整数倍。
生存时间(Time To Live,TTL)
占8位,是用来限制IP分组的生命周期的计数器。最初设计是以秒s为单位,分组每经过一个节点该字段值都递减1,在等待时可加倍递减。当该字段值减为О时就将其丢弃,以防止分组在网中无限制地传输。由于目前路由器处理分组需要的时间不断减少,一般都远远小于1 s,现在把该字段的功能改为“跳数限制”,单位不再是s,而是跳数,含义是分组在网络中传输可以经过的路由器(网段)的数目,分组生成时赋给该字段一个初始值,分组每经过一个路由器,该字段值减1,若该字段值为0,就丢弃该分组。分组在因特网中可以经过路由器数目的最大值是255。若该字段值设置为1,表示该分组只能在本地局域网中传输。
协议
占8位,该字段指明使用IP协议的网络协议,即IP分组数据部分的内容,协议字段值用编码标识。例如,该字段值为6标识TCP、为17标识UDP、为1标识ICMP、为2标识IGMP、为41标识IPv6、为89标识OSPF,具体编码值在RFC 1700中定义。
首部校验和
只检验分组的首部,不包括数据部分。因为生存时间、标志、片偏移等字段的值经过每个节点时都发生了变化,该字段在每个节点都必须重新计算。校验和的计算方法与运输层协议UDP和TCP相同。计算时先把首部校验和字段的值设置为0,把IP分组首部划分为16位一个单位,依次对两个16位采用反码运算,最后将计算出来的求和结果的反码写入首部校验和字段。接收方对收到的分组也用反码求和运算,并将得到的求和结果取反码,即为接收方校验和的计算结果。若计算结果为0,表示传输正确,否则表示出现差错,丢弃该分组。
源地址和目的地址
各占32位,分别表示源节点、目的节点地址。
选项为可选内容
最多10组共40字节,为后续版本提供新的功能而预留,或者为特定的应用提供一种灵活性以避免为了支持少数应用而增大首部长度。选项字段很少使用。目前已定义了5类选项,实现的功能分别如下:
安全性,指明数据的安全程度(机密程度)。
严格源路径选择,给出完整的路径,分组需沿此路径传送。
松散源路径选择,给出不能遗漏的路由器的列表。
记录路由,使每个路由器都附上其IP地址。
时间标记,使每个路由器都附上地址及时间标记。
从IP协议可以看出,IP协议并不进行差错控制,差错控制由数据链路层实现。
TCP/IP
RIP使用UDP,OSPF使用IP,而BGP使用TCP
局域网
- Internet和Eternet的区别
- 局域网和广域网
- 局域网的三要素
- 拓扑结构
- 传输介质
- 信道访问协议
Ethernet
- 以太网
- 曼切斯特编码
- 令牌环网
- 差分曼切斯特编码
- 10Mbit/s
- 同轴电缆,双绞线,光纤
- 1-坚持的CSMA/CD
- 曼切斯特
- 不需要帧结束定位符。检测不到跳变,帧结束
- 100base-T
- 星总线
- 100标识传输速率
- base表示基带传输
- T表示传输介质的最大距离,单位100m
分类IP地址
- 记忆方法,
- (A,B,C),网络号各占8*(1,2,3)位,
- (A,B,C)的(1,0)的个数
[(0,1),(1,2),(2,3)]
,$2^{值}$ 刚好是网络号占的字节数 - D: 1110后面都是多播地址
- E: 1111,保留地址
$\bigstar$ TODO:网络划分例题
BGP
- 建立在TCP基础之上
$\bigstar$ IP数据报分片
例题:19考试题
考试题
$\bigstar$ Dijkstra算法
算法例题动画
考试题and例题:Dijkstra算法例题
名词解释
协议 | 中文名称或英文全称谓 | 主要功能或特征 |
---|---|---|
IPv4 | 网际协议版本4(英语:Internet Protocol version 4,IPv4),又称互联网通信协议第四版 | 长度为32个bit |
IPv6 | “Internet Protocol Version 6”(互联网协议第6版) | 相比IPv4没有校验和 |
ICANN | 互联网名称与数字地址分配机构,Internet Corporation for Assigned Names and Numbers | 互联网号码分配 |
NAT | 网络地址转换(Network Address Translation) | 可用于专用网和因特网通信 |
ICMP | (Internet Control Message Protocol)Internet控制报文协议 | 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。 |
RIP | Routing Information Protocol,路由信息协议 | RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离,范围限制在15跳(15度)之内 |
OSPF | Open Shortest Path First,开放式最短路径优先 | 对链路状态路由协议的一种实现,使用Dijkstra算法 |
BGP | Border Gateway Protocol ,边界网关协议 | 运行于 TCP 上的一种自治系统的路由协议 |
CIDR | 无类别域间路由(Classless Inter-Domain Routing、CIDR) | 是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。 |
DHCP | 动态主机配置协议 Dynamic Host Configuration Protocol | 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。 |
LLC | 逻辑链路控制(Logical Link Control,LLC) | 局域网中数据链路层的上层部分,IEEE 802.2中定义了逻辑链路控制协议。用户的数据链路服务通过LLC子层为网络层提供统一的接口。 |
课后习题和问题
第6 章链路层和局域网
- 目标:
- 理解链路层服务的原理:
- 错误检测, 纠正
- 共享广播信道: 多路访问
- 链路层寻址
- 局域网技术:Ethernet VLANS
- 理解链路层服务的原理:
- 不同链路层技术的实施
链路层概述
- 一些专有名词:
- 主机 和路由是节点 (nodes)
- 通信路径中连接相邻节点的通信信道称为链路 (links)
- wired links
- wireless links
- LANs
- layer-2 数据单元 帧(frame),
- 封装上层数据报
- data-link layer :网络层数据报通过路径中的单段链路、一个节点向相邻节点进行传输
- Link Layer:背景
- 数据报在路径的不同链路上可能由不同链路层协议所承载:
- e.g., 第一段链路Ethernet 第二段链路frame relay, 第三段链路802.11
- 每个链路层协议提供不同的服务
- e.g., 有些链路层,可能不提供rdt 传输
- 数据报在路径的不同链路上可能由不同链路层协议所承载:
- 链路层服务
- 成帧, 链路接入:
- 封装数据报成帧, 添加头部, 尾部
- 共享介质的访问
- 帧头部使用“MAC” 地址标识源、目的地址
- 与IP 地址不同!
- 相邻节点的可靠交付
- 已经讨论过这个问题(chapter 3)!
- 低比特差错的链路较少使用(fiber, some twisted pair)
- wireless links:高比特差错
- Q: 为什么需要端到端、节点到节点的可靠性?
- 流控:
- 发送和接收节点的同步问题
- 差错检测:
- 信号衰减、噪音引起的比特差错.
- 接收端检测错误:
- 丢弃数据帧或示意发送方重传
- 差错纠正:
- 接收端检测错误并且纠正比特错误
- 半双工和全双工
- 半双工, 链路两端的节点都可以发送数据,但是不能同时发送
- 链路层在何处实现?
- 在每一台主机、路由器的
- 网络适配器 “adaptor” (NIC network interface card)
- Ethernet card, PCMCI card, 802.11 card
- 实现链路层, 物理层
- 与 主机系统总线连接
- 由硬件和软件组成
- 在每一台主机、路由器的
- 适配器通信
- 发送端:
- 封装datagram 为 frame
- 增加差错检测, rdt, 流量控制位, etc.
- 接收端
- 检查差错检测, rdt, 流量控制位, etc
- 提取datagram, 交付给接收端的上层协议
- 发送端:
链路层提供的服务
链路层在何处实
差错检测和纠正技术
- 差错检测
- 奇偶校验
- 检验和 (checksum, review)
- 循环冗余检测CRC: Cyclic Redundancy Check
奇偶校验
检验和方法
循环冗余检测
多路访问链路和协议
- 多路访问协议
- 点对点:(point-to-point)
- 拨号网络的PPP
- Ethernet 交换机和主机之间的点对点链路
- 广播链路:(broadcast,共享的链路或介质)
- 共享式以太网
- 802.11 无线网络
- MAC 协议: 分类
- 三种类型:
- 信道划分协议:(Channel Partitioning)
- 把信道划分成小片(time slots, frequency, code)
- 各个节点分配给分片后的信道
- 随机接入协议:(Random Access)
- 信道不分片, 允许冲突
- 能够从冲突中恢复
- 轮流协议:(” Taking turns”)
- 节点轮流使用信道
- 信道划分 MAC 协议: TDMA
- 信道划分 MAC 协议: FDMA
- 随机接入协议Random Access Protocols
- 时隙ALOHASlotted ALOHA
- 信道利用率仅为 37%!
- 纯ALOHA(unslotted)
- 1/(2e) = .18
- 比slotted Aloha更差!
- 载波侦听多路访问CSMA (Carrier Sense Multiple Access)
- CSMA 冲突
- CSMA/CD: 载波侦听、冲突检测
- 轮流 MAC协议
- 令牌传递协议(Token passing)
- 时隙ALOHASlotted ALOHA
信道划分协议
随机接入协议
轮流协议
DOCSIS: 用于电缆因特网接入的链路层协议
交换局域网
- MAC 地址和ARP
- 32-bit IP 地址:
- 网络层地址
- 用于数据报寻址,IP子网
- MAC (LAN, physical, Ethernet) 地址:
- 功能:
- 在同一个子网,从一个接口卡传送帧到另外一个接口卡
- 48 bit MAC 地址
- 固定于NIC ROM, 有时软件可修改
- MAC 地址由 IEEE管理分配
- 制造商购买部分MAC地址空间
- 功能:
- 以太网帧结构Ethernet Frame Structure
- 地址(Addresses): 6 bytes
- 当适配器收到一个以太网帧,目的地址是它的MAC地址或者是广播地址,都将该帧的数据字段的内容传递给网络层
- 如果它收到了具有任何其他MAC地址的帧,则丢弃之。
- 类型(Type): 2 bytes
- 允许以太网复用多种网络层协议(e.g., Novell IPX)
- 循环冗余校验(CRC): 4 bytes
- 使得接收适配器检测帧中是否引入了差错
- 地址(Addresses): 6 bytes
- 曼切斯特编码Manchester encoding
- 应用于 10BaseT
- 每个比特包含一个跳变
- 以太网:不可靠,无连接服务Ethernet: Unreliable, connectionless
- 无连接(connectionless):
- 发送和接收者之间没有握手过程
- 不可靠(unreliable):
- 接收NIC 不发送 acks 或 nacks 给发送 NIC
- 由干丢弃了以太网帧而可能存在间隙 (丢失了某些数据报)
- TCP会察觉到这些间隙
- Ethernet的 MAC 协议: unslotted CSMA/CD
- 无连接(connectionless):
- Ethernet CSMA/CD 算法
- NIC 从网络层接收数据报, 准备以太网帧
- 如果 NIC 侦听到信道空闲, 它开始传输该帧。如果 NIC侦听到信道忙,它需等待到侦听不到信号,然后开始传输该帧
- 如果NIC 传输了整个帧, 而没有监测到来自其他NIC 的信号,就完成了该帧的传输!
- 如果NIC 在传输中监测到来自其他适配器的信号,中止传输,而发送一个阻塞信号
- 中止, NIC 进入指数后退(exponential backoff): 在 m次 碰撞后, NIC 随机选定K{0,1,2,…,2m-1}. NIC 等待 K·512 比特时间, 退回到第二步
- 802.3 以太网标准: Link & Physical Layers
- 链路层交换机
- Hubs
- 点对点协议Point to Point Data Link Control
- 只有一个发送者, 一个接收者, 一条链路: 比广播链路简单:
- 没有介质访问控制
- 没有寻址
- e.g., 拨号网络, ISDN 线路
- PPP 设计要求[RFC 1557]
- 分组成帧:
- 链路层的发送方必须封装在PPP链路层帧中,以便接收方接收
- 能够携带网络层的分组
- 能够向上多路分解
- 透明性:
- 不能对出现在网络层分组中的数据(首部或者数据)做任何限制
- 差错检测:
- 接收方必须能够检测到接收帧中的比特差错
- 连接的活性:
- 能够检测链路活性、发出信令:
- 网络层地址协商:
- 为网络层(例如IP )提供一个机制,来获知或配置相互的网络层地址
- 没有差错纠正
- 没有流量控制
- 不需要有序性
- 不需要支持多点链路
- 分组成帧:
- 字节填充Byte Stuffing
- 多协议标记交换Multiprotocol label switching (MPLS)
链路层寻址和ARP
以太网
链路层交换机
虚拟局域网
链路虚拟化:网络作为链路层
数据中心网络
回顾: Web 页面请求的历程
准备: DHCP 、UDP 、IP 和以太网
仍在准备: DNS 和ARP
仍在准备;域内路由选择到DNS 服务器
Web客户-服务器交互; TCP 和HTTP
小结
各种校验码的特征
- 纠正一位
- 纠正一位
- 奇偶校验
- 1的个数
PPP协议
简单
对于链路层的帧,无需纠错,无需序号,无需流量控制。
封装成帧
帧定界符
透明传输
与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
- 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
多种网络层协议
封装的IP数据报可以采用多种协议。
多种类型链路
串行/并行,同步/异步,电/光…
差错检测
错就丢弃。
检测连接状态
链路是否正常工作。
最大传送单元
数据部分最大长度MTU。
网络层地址协商
知道通信双方的网络层地址。
数据压缩协商
不满足的要求
- 纠错
- 流量控制
- 序号
- 不支持多点线路
ppp vs HDLC
$\bigstar$ 成帧的方式
字符计数
字符填充法
零比特填充法
违规编码
曼切斯特编码
RIP
- 仅和相邻路由器交换信息。
- 交换的信息是自己的路由表。
- RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
- RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)
- 距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达
- RIP协议只适用于小互联网。
- 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
- RIP使用UDP传送数据
- 好消息传的快,坏消息传的慢
$\bigstar$ RIP更新路由表例题
三步走,修改,比较,更新
$\bigtriangledown$RIP更新路由表例题练习
D
OSPF
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
- OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
$\bigstar$ CRC校验码的计算例题
名词解释
协议 | 中文名称或英文全称谓 | 主要功能或特征 |
---|---|---|
HDLC | High-Level Data Link Control,高级数据链路控制 | HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。 |
PPP | 点对点协议(Point to Point Protocol,PPP) | PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。 |
PPPoE | Point to Point Protocol over Ethernet,基于以太网的点对点通讯协议 | 是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。 |
MAC | 介质访问控制(medium access control)简称 | 是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。 |
ARP | 地址解析协议,即ARP(Address Resolution Protocol) | 是根据IP地址获取物理地址的一个TCP/IP协议。 |
RARP | 反向地址转换协议(RARP:Reverse Address Resolution Protocol) | 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。 |
GBN | Go-Back-N 回退N在回退N步协议 | 容许发送方发送多个分组,而不需要等待确认,但他也受限与在流水线中未确认的分组数不能超过某个最大数N。 |
|FDM||频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。|
|TDM||时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。|
|WDM||波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不千扰,最后再用波长分解复用器将各路波长分解出来。|
|CDM||码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。|
|ALOHA|夏威夷大学早期研制的随机接入系统称为ALOHA,它是Additive Link On-line HAwai system的缩写|想发就发,超时重传|
|CSMA|载波侦听多路访问(Carrier Sense Multiple Access,CSMA)|先听再说|
|CSMA/CD|载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)|先听再说,边听边说|
|CSMA/CD|载波侦听多路访问/碰撞避免(Carrier Sense Multiple Access with Collision Avoidance,CA)||
课后习题和问题
第7章 无线网络和移动网络
概述
无线链路和网络特征
WiFi : 802. 11 无线LAN
802. 11 体系结构
802. 11 MAC 协议
IEEE 802. 11 帧
在相同的lP 子网中的移动性
802. 11 中的高级特色
个人域网络:蓝牙和ZigBee
蜂窝因特网接入
蜂窝网体系结构概述
3G 蜂窝数据网:将因特网扩展到蜂窝用户
走向4G: LTE
移动管理:原理
寻址
路由选择到移动节点
移动IP
管理蜂窝网中的移动性
对移动用户呼叫的路由选
GSM 中的切换
无线和移动性:对高层协议的影响
小结
课后习题和问题
第8 章计算机网络中的安全
什么是网络安全
密码学的原则
对称密钥密码体制
公开密钥加密
报文完整性和数字签名
密码散列函数
报文鉴别码
数宇签名
端点鉴别
鉴别协议apl.O
鉴别协议ap2.0
鉴别协议 ap3.0
鉴别协议 ap3.1
鉴别协议 ap4.0
安全电子邮件
安全电子邮件
PGP
使TCP 连接安全: SSL
宏观描述
更完整的描述
网络层安全性: IPsec 和虚拟专用网
IPsec 和虚拟专用网
AH 协议和ESP 协议
安全关联
IPsec 数据报
IKE: IPsec 中的密钥管理
使无线LAN 安全
有线等效保密
IEEE 802. 11 i
运行安全性: 防火墙和入侵检测系统
防火墙
入侵检测系统
小结
课后习题和问题
多媒体网络
多媒体网络应用
视频的性质
音频的性质
多媒体网络应用的类型
流式存储视频
UDP 流
HTTP 流
IP 语音
尽力而为服务的限制
在接收方消除音频的时延抖动
从丢包中恢复
学习案例: 使用Skype 的VoIP
实时会话式应用的协议
RTP
SIP
支持多媒体的网络
定制尽力而为网络
提供多种类型的服务
区分服务
每连接服务质量保证:资源预约和呼叫准入
小结
课后习题和问题
MISC
设备相关
传输介质
双绞线、同轴电缆、光纤与无线传输介质
双绞线
双绞线是最常用的古老传输介质,)它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。绞合可以减少对相邻导线的电磁干扰。为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP)。无屏蔽层的双绞线称为非屏蔽双绞线(UTP)。它们的结构如图2.7所示。
双绞线价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。双绞线的带宽取决于铜线的粗细和传输的距离。模拟传输和数字传输都可使用双绞线,其通信距离一般为几千米到数十千米。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。
同轴电缆
同轴电缆由内导体、绝缘层、网状编织屏蔽层和塑料外层构成,如图2.8所示。按特性阻抗数值的不同,通常将同轴电缆分为两类:50 $\Omega$ 同轴电缆和75 $\Omega$ 同轴电缆。其中,50 $\Omega$ 同轴电缆主要用于传送基带数字信号,又称基带同轴电缆,它在局域网中应用广泛;75 $\Omega$ 同轴电缆主要用于传送宽带信号,又称宽带同轴电缆,主要用于有线电视系统。
由于外导体屏蔽层的作用,同轴电缆具有良好的抗干扰特性,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。可见光的频率约为10°MHz,因此光纤通信系统的带宽范围极大。
光纤主要由纤心和包层构成(见图2.9),光波通过纤心进行传导,包层较纤心有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角大于入射角。因此,如果入射角足够大,那么就会出现全反射,即光线碰到包层时会折射回纤心,这个过程不断重复,光也就沿着光纤传输下去。
只要从纤心中射到纤心表面的光线的入射角大于某个临界角度,就会产生全反射。因此,从不同角度入射的多束光线可在条光纤中传输,这种光纤称为多模光纤(见图 2.10),多很九纤的光源为发光二极管。/光脉冲在多模光纤中传输时会逐渐展宽,造成失真,因此多模光纤只适合于近距离传输。
光纤的直径减小到仅一个光波长度时,光纤就像一根波导那样,可使光线一直向前传播,而不会产生多次反射,这样的光纤就是单模光纤(见图2.11)。单模光纤的纤心很细,直径只有几微米,制造成本较高。同时,单模光纤的光源为定向性很好的激光二极管,因此单模光纤的衰减较小,适合远距离传输。
无线传输介质
无线电波
无线电波具有较强的穿透能力,可以传输很长的距离,所以它被广泛应用于通信领域,如无线手机通信、计算机网络中的无线局域网(WLAN)等。因为无线电波使信号向所有方向散播,因此有效距离范围内的接收设备无须对准某个方向,就可与无线电波发射者进行通信连接大大简化了通信连接。这也是无线电传输的最重要优点之一。
微波、红外线和激光
目前高带宽的无线通信主要使用三种技术:微波、红外线和激光。它们都需要发送方和接收方之间存在一条视线(Line-of-sight)通路,有很强的方向性、都沿直线传播,有时统称这三者为视线介质。不同的是,红外通信和激光通信把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再直接在空间中传播。
微波通信的频率较高,频段范围也很宽,载波频率通常为2~40GHz,因而通信信道的容量大。例如,一个带宽为2MHz的频段可容纳500条语音线路,若用来传输数字信号,数据率可达数兆比特/秒。与通常的无线电波不同,微波通信的信号是沿直线传播的,因此在地面的传播距离有限,超过一定距离后就要用中继站来接力。
卫星通信利用地球同步卫星作为中继来转发微波信号,可以克服地面微波通信距离的限制。三颗相隔120°的同步卫星几乎能覆盖整个地球表面,因而基本能实现全球通信。卫星通信的优点是通信容量大、距离远、覆盖广,缺点是端到端传播时延长,一般为250~270ms。
物理层接口的特性
机械特性
要定义物理连接的边界点,即接插装置。规定物理连接时所采用的规格
引线的数目、引脚的数量和排列情况等。
电气特性
规定传输二进制位时,线路上信号的电压高低、阻抗匹配、传输速率和距离限制等。
功能特性
指明某条线上出现的某一电平的电压表示何种意义,接口部件的信号线(数据线、控制线、定时线等)的用途。
规程特性
主要定义各条物理线路的工作规程和时序关系。
物理层设备
中继器
中继器又称转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到所需要的妾求,进而扩大网络传输的距离。其原理是信号再生(而非简单地将衰减的信号放大)。中继器有两个端口,数据从一个端口输入,再从另一个端口发出。端口仅作用于信号的电气部分,而不管数据中是否有错误数据或不适于网段的数据。
中继器是局域网环境下用来扩大网络规模的最简单、最廉价的互联设备。使用中继器连接的几个网段仍然是一个局域网。一般情况下,中继器的两端连接的是相同的媒体,但有的中继器也可以完成不同媒体的转接工作。但由于中继器工作在物理层,因此它不能连接两个具有不同速率的局域网。中继器两端的网络部分是网段,而不是子网。中继器若出现故障,对相邻两个网段的工作都将产生影响。
从理论上讲,中继器的使用数目是无限的,网络因而也可以无限延长。但事实上这不可能,因为网络标准中对信号的延迟范围做了具体的规定,中继器只能在此规定范围内进行有效的工作,否则会引起网络故障。例如,在采用粗同轴电缆的10BASE5 以太网规范中,互相串联的中继器的个数不能超过4个,而且用4个中继器串联的5段通信介质中只有3段可以挂接计算机,其余两段只能用作扩展通信范围的链路段,不能挂接计算机。这就是所谓的“5-4-3规则”。
注意:放大器和中继器都起放大作用,只不过放大器放大的是模拟信号,原理是将衰减的信号放大,而中继器放大的是数字信号,原理是将衰减的信号整形再生。如果某个网络设备具有存储转发的功能,那么可以认为它能连接两个不同的协议,如果该网络设备没有存储转发功能,那么认为它不能连接两个不同的协议。中继器是没有存储转发功能的,因此它不能连接两个速率不同的网段,中继器两端的网段一定要使用同一个协议。
集线器
集线器(Hub)实质上是一个多端口的中继器,它也工作在物理层。当Hub 工作时,一个端口接收到数据信号居o由于信号在从端口到Hub的传输过程中已有衰减,所以Hub便将该信号进行整形放大,使之再生(恢复)到发送时的状态,紧接着转发到其他所有(除输入端口外)处于工作状态的端口。如果同时有两个或多个端口输入,那么输出时会发生冲突,致使这些数据都无效。从Bob.的主作方式可以看出,它在网络中只起信号放大和转发作用,目的是扩大网络的传输范围而不具备信号的定向传送能力,即信号传输的方向是固定的,是一个标准的共享式设备。
Hub主要使用双绞线组建共享网络,是从服务器连接到桌面的最经济方案。在交换式网络中,Hub直接与交换机相连,将交换机端口的数据送到桌面上。使用Hub组网灵活,它把所有结点的通信集中在以其为中心的结点上,对结点相连的工作站进行集中管理,不让出问题的工作站影响整个网络的正常运行,并且用户的加入和退出也很自由。
由Hub组成的网络是共享式网络,但逻辑上仍是一个总线网。Hub的每个端口连接的网络部分是同一个两络的不同网段,同时Hub也只能在半双工状态下工作,网络的吞吐率因而受到限制。
注意:多台计算机必须会发生同时通信的情形,因此集线器不能分割冲突域,所有集线器的端口都属于同一个冲突域。集线器在一个时钟周期中只能传输一组信息,如果一台集线器连接的机器数目较多,且多台机器经常需要同时通信,那么将导致信息碰撞,使得集线器的工作效率很差。比如,一个带宽为10Mb/s 的集线器上连接了8台计算机,当这8台计算机同时工作时,每台计算机真正所拥有的带宽为10/8Mb/s = 1.25Mb/s。