参考谢希仁《计算机网络》及其ppt
为了使得不同体系结构的计网可以互连,ISO(国际化标准组织) 1977年成立机构研究此问题。
ISO提出一个标准框架:开放系统互连基本参考模型OSI/RM((Open Systems Interconnection Reference Model)),建成OSI。
遵循OSI标准,一个系统则可以和世界上任意地点的同一标准其他系统进行通信。
国际标准OSI失败
非国际标准 TCP/IP获得广泛应用-----事实国际标准
层次式协议结构。
计网体系结构:计网各层及其协议的集合。
应用层:直接为用户进程服务。
运输层:互联网上任意主机的应用进程间(端到端)的数据传送
网络层:互联网上任意主机间数据报的分组传送
数据链路层data link:局域网内结点(主机/路由器)间无差错的数据帧接收
物理层:如何在各种传输媒体上进行:原始的比特流的透明传输。使得物理层上面屏蔽掉硬件设备的差异。
对比特(数字信号)的调制,使之通过信道
- 基带调制/编码:数字信号—>数字信号
- 带通调制/调制:数字信号—>模拟信号
传输媒体/介质
node:结点(数据结构中树的node翻译节点)
计算机网络:简称网络
互连网(internet)“网络的网络”(network of networks)
互联网/网(Internet):是当今世界上最大的计算机网络。
注意点:
host主机:和网络相连的计算机
云表示网络的不同情况:
信道channel:向某一方向传送信息的谋体
基带信号/基本频带信号:来自信源的信号
问题:基带信号中的低频、直流成分,信道无法传输
1、编码coding/基带调制:
2、调制/带通调制,使用carrier 载波调制
码间串扰:很多高频分量无法通过信道,受到衰减,则收到的码元波形会失去清晰界限。
如果让信道的频率变宽,则能通过的高频分量更多,就可以用更高频率的速率传送码元而不出现码间串扰。
奈氏准则:理想条件下,为了避免码间串扰,码元传输速率的最大值
噪声随机产生,瞬时值有时很大,使得接收端误判码元(1判为0或反之)
噪声影响是相对的:信号越强,影响越小
信 噪 比 ( d B ) = 信 号 的 平 均 功 率 噪 声 的 平 均 功 率 = S N 信噪比(dB) = {信号的平均功率\over 噪声的平均功率} = {S \over N} 信噪比(dB)=噪声的平均功率信号的平均功率=NS
对v的影响:增大信噪比,可以让速率变大而不至于判决错误。
带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率
信 息 传 输 无 差 错 极 限 速 率 ( b i t / s ) = 信 道 带 宽 ( H z ) l o g 2 ( 1 + 信 噪 比 ) 信息传输无差错极限速率(bit/s) = 信道带宽_{(Hz)}log_2(1+信噪比) 信息传输无差错极限速率(bit/s)=信道带宽(Hz)log2(1+信噪比)
1、导引型传输媒体:电磁波被导引沿着固体媒体(铜线或光纤)传播
2、非导引型传输媒体:指自由空间,在非导引型传输媒体中,电磁波的传输常称为无线传输
复用 (multiplexing) 是通信技术中的基本概念。
它允许用户使用一个共享信道进行通信,降低成本,提高利用率
将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源
请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)。
TDM信号也称为等时(isochronous)信号。
时分复用的所有用户是在不同的时间占用同样的频带宽度。
是一种改进的时分复用,明显提高信道利用率。
非固定时隙,而是按需动态分配时隙
集中器常使用这种STMD
C = λ * f
本质就是’光的频分复用’。使用一根光纤来同时传输多个光载波信号。
另一种共享信道的方法。更常叫做CDMA码分多址
每个用户可以在’同样的时间使用同样的频带’进行通信
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现
当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。
如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。
原因:传输过程产生1,0比特差错,要保证数据可靠性
BER(Bit Error Rate)误码率: 传 输 错 误 比 特 数 传 输 总 比 特 数 传输错误比特数\over 传输总比特数 传输总比特数传输错误比特数
BER和信噪比关系很大
待传输的一组数据M:1101011011,一组k=10个比特
(1)计算冗余码R:
除数P(n+1位):题目会给出一个生成多项式,例如 P ( X ) = X 4 + X + 1 P(X) = X^4+X+1 P(X)=X4+X+1,则P就是 10011 10011 10011。则n = 4
被除数(k+n位) = M ∗ 2 n M*2^n M∗2n:在M后添加n = 4位冗余码,即4个0,得到被除数:1101011011 0000
商:对应位不同就是1,相同就是0,不考虑什么进位。
(2)把冗余码R拼接在M之后,发送出去,即发送:1101011011 1110
对接收到的数据继续进行CRC检验“”
若余数R = 0, 则帧无差错,【接受】
若余数R ≠ 0 , 则帧有差错,【丢弃】
可靠传输:发送什么就收到什么。还要加上确认和重传机制。=
协议满足需求:
首部:4字段
尾部:2字段
标志字段:F=0x7E:十六进制的 7E 的二进制表示是 01111110
地址字段A
控制字段C
以太网:世界上第一个局域网产品
拓展:现在一般不考虑LLC了
CSMA/CD :(Carrier Sense Multiple Access with Collision Detection)
(动态媒体接入控制:共享信道除了多路复用(静态)的另一种方式,代价第一点,适合局域网(即以太网),以太网就是使用动态里的随机接入)
总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
随机时间由二进制指数类型退避算法计算
计算机边发送数据边检测信道上的信号电压大小
例:10Mb/s的以太网取51.2us作为争用期的长度。在此征用期内,该以太网可以发送64B。
意味着:该以太网发送数据时,如果前64B没有发生冲突,则此次发送后面的数据必然不会冲突
最短有效帧长:以太网规定为64B。小于的称为无效帧
帧最小间隔:9.6us,相当于以太网规定为96bit的发送时间
二进制指数类型退避算法
- 基本退避时间 = 争用期 = 2 τ 2\tau 2τ
- k = min(重传次数, 10);
- 从整数集合 { 0 , 1 , . . . , 2 k − 1 } \{0, 1, ..., 2^k-1\} {0,1,...,2k−1}随机取一个数 = r
- 则碰撞检测中的随机等待时间 = 2 τ ∗ r 2\tau * r 2τ∗r
重传达16次时,丢弃该帧,向高层报告
数据链路层的一对多通信采用的是局域网,以太网是局域网的第一个产品。以太网规定最短有效帧长64B = 512bit,也是争用期长度 = 2 τ 2\tau 2τ。
因此载波监听多点接入/碰撞检测协议,争用期就是 2 τ 2\tau 2τ,随机等待时间就是r倍的 2 τ 2\tau 2τ。
载波监听多点接入/碰撞检测协议:总线型局域网(多点接入的特性)
(1) 准备发送。但在发送之前,必须先检测信道。
(2) 检测信道:发送前
(3) 检查碰撞(争用期)。在发送过程中,轮询检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
MAC:媒体接入控制
局域网中:适配器地址 = MAC地址=硬件地址=物理地址 = 某个接口的标识符
生产适配器的时候,6B的MAC地址固化在适配器的ROM
如果连接在局域网是的host/router有多个adapter,则host/router就有多个地址
IEEE规定,MAC地址,第一字节的最低位为:I/G(individual/group)位
只有目的地址可以使用广播和多播地址
IEEE规定,MAC地址,第一字节的最低第二位为:GL(glob/local)位
硬件检查MAC帧中的MAC地址。
是发往本站的帧:收下
第三个字段:
【互联网内】,任意两台主机间的【分组传送】
数据链路层,只考虑一对多的话是局域网内的传输帧,传送地址已经写好了MAC地址在适配器上
IP协议:使得异构网络看起来像一个网络,主机好像在一个单一网络通信,屏蔽具体的编址方案,路由选择协议等等。
地址解析协议 ARP:已知IP地址求硬件地址 (Address Resolution Protocol)
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层ICMP 的例子,它没有通过运输层的 TCP 或UDP。
在 Windows 操作系统中这个命令是 tracert。
用来’跟踪’一个分组从源点到终点的路径。
它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
中间设备 = 中间系统 = 中继relay系统
两器一桥
利用IP协议可以使异构网络,用户看起来像同一网络
使用IP协议的虚拟互连网络:IP网
在现在覆盖全球的IP网上层使用TCP协议,就是互联网
网络号:主机/路由器连接到的网络
主机号:该主机/路由器
A类:网络号1字节, 0 + 7位(1~126少了127)
B类:网络号2字节,10 + 14位(1~2^14-1全)
C类:网络号3字节, 110 + 21位(1~2^21-1全)
源IP地址
目的IP地址
标志(flag)字段:3位,只有前2位有意义
片偏移字段:13位
TTL(Time To Live)字段、生存时间:占8位:数据报在网络中的寿命 【路由器跳数】
每个路由器制定一个路由表
按照主机所在网络号,而不是主机号制作路由,减少表项。
同一局域网的主机网络号相同,路由器每个接口对应一个网络
表项:【目的主机网络地址, 下一跳地址】
子网掩码长度 = 32 位
某位 = 1:IP地址中的对应位为网络号和子网号
某位 = 0:IP地址中的对应位为主机号
如果进行了子网划分:子网网络地址 = IP AND 子网掩码
没进行子网划分,AND后的地址就无法对应
默认子网掩码:
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255
数据报首部没有哦子网掩码信息,则分组转发与二级IP地址不同。
主机H1发送分组
1、从IP数据报首部获得目的IP地址D
2、H1检查D是否和自己一个网络中。IP地址 AND D所在网子网掩码 是否等于H1的网络地址。
- 是则代表目的主机H1目的地址D连在一个网络中,可以直接交付
- 否则必须通过路由器间接交付
路由器转发分组
1、从IP数据报首部获得目的IP地址D
2、判断是否直接交付:逐个检查与路由器直接相连的网络地址,用各网络地址的子网掩码 AND 目的IP地址D
注:这里的算法,路由表不包括直接相连的网络项,只包括下一跳是路由器的项。
【以下全是要经过路由器的】
3、检查路由表的特定主机路由=:
特定主机路由在表中:
- 目的网络地址实际上填的是IP地址
- 子网掩码是255.255.255.255
4、检查路由表中每一项(目的网络地址,子网掩码,下一跳路由)
:子网掩码 AND 目的IP地址D
- 若结果=目的网络地址,则匹配(IP使用了划分子网,且在路由表中),则将分左右传送给下一跳路由
- 否则执行 5。
5、判断是否有默认路由:
6、报告转发分组出错。
单一技术管理下的路由器组成的网络
如校园网,公司
路由器和相邻路由器按固定时间交换彼此的路由表,更新自己的路由表信息:距离,下一条
路由器收到相邻路由器(其地址为 X)的一个 RIP 报文(目目的网络地址,距离,下一条....)
:
1、修改 RIP 报文中所有项目:
2、对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若RIP报文中:项目的目的网络不在路由表中,则把该项目加到路由表中。否则
若旧路由表和RIP中对应项目有:相同的下一跳X,则旧路由表该项目被替换为RIP报文中的对应项目。
若RIP项目距离小于路由表中的距离,则更新路由表项目距离为RIP的距离,否则,什么也不做。
3、若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(RIP规定距离16表示不可达)。
4、返回
每台路由器测量到所有邻居路由器链路的状态:链路的“度量”(metric)
该路由器链路状态变化时:把上一步测量的所有的状态信息向自治系统内全部路由器广播
所有的路由器最终都能建立一个链路状态数据库。可以构成全网拓扑结构图(无向带权图)
有了拓扑结构图,就可以对一个路由器使用dijkstra单源最短路径算法求出任意两结点间的最短距离
根据最短路径,建立路由表
就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域 (backbone area)。
主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
IP网际协议是网络层唯一协议。
IPv4使用32位地址,已经耗尽。
IPv6:地址128位,原IPv4 32位
每16位用16进制表示,中间冒号分割 128/16 = 8
允许省略多出来==连续==的0,
结合点分十进制后缀
IPv6 仍支持无连接的传送=,但将协议数据单元 PDU 称为分组。为方便起见,本书仍采用数据报这一名词。
所引进的主要变化如下:
1. 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
2. 扩展的地址层次结构。
3. 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
4. 改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。
5. 允许协议继续扩充。
6. 支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。
7. 支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。
8. IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。
通信使用IP地址+MAC地址
问题描述:如图,网络层的IP数据报要加上目的MAC地址和源MAC地址,才能构成MAC帧,通过局域网,在实际的数据链路层进行传输MAC帧。
我们如何得到目的MAC地址,在网络层已知目的IP地址的情况下?----ARP地址解析协议:ARP cache
每个主机有一个ARP cache高速缓存:存放主机所在局域网上的各主机和路由器的IP地址 到 硬件地址的映射表
1、A发送IP数据报之前在ARP cache查看有无主机B的IP地址
2.、有则代表有此映射关系,查出对应B的硬件地址,封装如MAC帧,传给数据链路层,链路层就可以通过局域网把该MAC帧发往B的硬件地址
3、没有:A在本局域网广播发送ARP请求分组(封装在数据链路层的帧中传输)
ARP请求分组(A的MAC地址,A的IP地址,目标方的MAC地址[未知填0], 目标方的IP地址)
ARP响应分组
后,把得到的IP地址–>MAC地址的映射,写入ARP cache网络层:主机之间的逻辑通信,分组传输
运输层:应用进程之间【端到端】的传输
为了使不同OS的计算机的应用程序能互相通信,要用统一方法标志TCP/IP体系的应用进程—端口port
对应用层报文不合并,不拆分,添加UDP首部就交给IP层
对IP传来的IP数据报数据部分,取出UDP首部就交付给应用层
UDP用户数据宝首部8B包含目的端口。
运输层根据目的端口,上交到应用进程
把应用层传下的数据块看成无结构的字节流。
对连续字节流分段,形成TCP报文段
TCP根据对方给出窗口值和网络拥塞程度决定一个报文多少B。
确认和重传
“停止等待”:
A为每个已发送分组设置【超时计时器】
到期前收到计时器的确认则撤销此计时器,可发送下一个。
反之,重传
1、分组错误:A发送–B接收检测出差错–B丢弃(不通知A)
2、分组丢失:A发送M—M中途丢失—B不知也什么都不做
1、确认丢失,则超时重传
2、确认迟到:
停止等待协议是最简单的ARQ协议
信道利用率太低
对按序到达的最后一个分组发送确认,代表到此为止的所有分组都正确收到
经过上节从停止等待协议–重传–信道利用率低—流水线—连续的ARQ(滑动窗口)引入。
满足连续ARQ内容
假定:A收到B的ACK:窗口20B,确认号31.
流量控制 (flow control) 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
(一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失)
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
采用客户服务器方式
TCP建立连接的过程:握手
三报文握手:client-server之间交换三个TCP报文段
采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误
SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。
在客户机和服务器之间建立正常的TCP网络连接时
- 客户机首先发出一个SYN消息
- 服务器使用SYN+ACK应答表示接收到了这个消息
- 最后客户机再以ACK消息响应。
1、client向server发出连接请求报文段
- 首部中同步位SYN=1
- 选择序号seq=x:表明传送数据时的第一个数据字节的序号是 x。
2、server收到连接请求报文段,同意则发回确认报文段
3、client收到确认报文段,发送确认报文段
4、client的TCP通知应用层,连接已建立
5、server收到client的ACK,通知应用层,TCP连接已建立。
谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生
client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。
本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。
假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”
1、client向其TCP发出连接释放报文段;停止发送数据;主动关闭TCP连接
2、server发出确认报文段,TCP 服务器进程通知高层应用进程【FIN不传输,因此只有3个内容】
此时client–>server连接释放。连接半关闭。
3、若server无数据发给client,则应用进程通知TCP释放server–client的连接,连接释放报文段
4、clien收到连接释放报文段,发送确认报文段
第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。
第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
DNS :domain name system 53
域名系统是’互联网’使用的’命名系统’,用来把便于人们使用的机器名字转化为ip地址。
域名系统其实是名字系统,叫域名不叫名字的原因是,在互联的这种命名系统中使用了很多域。域就是名字空间中可被管理的划分
域名系统明确指明了这种系统用在互联网中
域名:便于人记忆的地址:互联网中结点的唯一的层次结构名字。
顶级域名TLD(Top Level Domain)
.cn, .us, .uk
.com, .net, .rg...
域名服务器:管辖范围为一个区
权限域名服务器:每个区设置,保证区中所有主机域名-->IP地址映射
根域名服务器:13套装置
a.rootservers.net
b.rootservers.net
…
m.rootservers.net
顶级域名服务器:管理二级域名
主机递归查询本地域名服务器,不知道则
本地域名服务器迭代查询根域名服务器:发出查询请求报文
根要么给出IP地址,要么高速本地域名服务器:【下一步应该向哪一个域名服务器查询】
URL uniform resource locator 统一资源定位符
www使用url在整个互联网==唯一标识’、==www上的各种文档资源。
文件名在网络范围的扩展。
URL一般形式:< 协议 >://< 主机 >:< 端口 >/< 路径 >
主机:存放资源的主机,在互联网中的域名
端口和路径有时可省略
用户点击 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm 后所发生的事件 :
www.tsinghua.edu.cn
**GET/chn/yxsz/index.htm
:方法为GET,请求URL路径部分/chn/yxsz/index.htm
的资源:GET/chn/yxsz/index.htm
发送邮件协议:SMTP简单邮件传输协议
读取邮件协议:POP3 IMAP(Internet Message Access Protocol)交互邮件访问协议
用户代理(撰写)----SMTP协议–>sender邮件服务器(邮件缓存队列)----SMTP客户-SMTP服务器建立TCP连接,发送—>receiver邮箱----用户代理+POP3/IMAP协议读取邮件