计算机网络总复习
计算机网络自救指南
基本缩写词语
ISP、OSl、TCP/IP、C/S、B/S、LAN、WLAN、VLAN、STP、UTP、ADSL、FDM、WDM、TDM、HDLC、PPP、CRC、MAC、CSMA/CD、MACA、LLC、CSMA/CA、AS、IGP、EGP、CIDR、NAT、ICMP、ARP、RARP、DHCP、OSPF、BGP、TSAP、NSAP、TCP、UDP、RPC、RTP、DNS、SNMP、FTP、SMTP、HTTP、POP3、Email、www、IMAP、HTML、URL、MIME、XML
第一章 绪论
分类标准:传输技术和网络尺度
两种传输技术
按照不同尺度对互联器的分类
- 个域网(1m)
- 局域网(10m~1km)
- 城域网(10km)
- 广域网(100km~1000km)
- 互联网(10000km)
协议层次结构(重点)
- 绝大多数网络都组织成一个层次栈或分级栈,每一层都建立在其下一层的基础之上
- 协议:通信双方就如何进行通信的一种约定
- 对等体:不同机器上构成相应层次的实体
- 接口:每一堆相邻层之间是一个接口。接口定义了下层向上层提供哪些原语操作和服务
- 层和协议的集合称为网络体系结构
- 一个特定的系统荣所使用的一组协议,即每一层一个协议称为协议栈
OSI参考模型(重点)
相比与TCP/IP模型,OSI模型多了表示层和会话层,这两层在TCP/IP中都被认为是应用层,在OSI的物理层,到TCP/IP模型中被认为是链路层的一部分(注意在TCP/IP中是链路层,不是数据链路层)
OSI和TCP/IP参考模型共同点
- 两者都是基于独立的协议栈概念
- 各个层的功能大致相似,在两个模型中,传出层及以上的各层都为通信的进程提供端到端的独立与网络的传输服务
- 在两个模型中,传输层以上的各层都是传输服务的用户,并且是面向应用的
OSI和TCP/IP的不同点
OSI(开发系统互联协议) | TCP/IP(传输控制协议/Internet协议) |
---|---|
OSI是一种通用的协议,独立于协议的标准 | TCP/IP模型基于Internet开发的标准 |
OSI模型有单独的表示层和会话层 | TCP/IP模型没有单独的表示层和会话层 |
传输层是面向连接的 | 传输层既面向连接,又面向无连接 |
网络层即面向链接又面向无连接 | 网络层是面向无连接的 |
围绕网络构建的参考模型,一般用作指导工具 | 在某种程度上是OSI模型的一种实现方式 |
隐藏在OSI模型中的协议,很容易随着技术的变化被替换 | 在TCP/IP中替换协议并不容易 |
OSI模型非常清楚地定义了服务、接口和协议,并明确区分了它们 | 在TCP/IP服务中,各种接口和协议没有明确分开 |
7层 | 4层 |
第二章 物理层
带宽
信号占据的频率范围,称为信号的带宽。信道带宽是指在该通信线路上能不失真地传送信号的频率范围。
信号传输速率
单位时间里传送信号波形的个数,单位为波特
B=2H(baud)
(最大采样频率为带宽的2倍)
数据传输率
比特率,单位时间里传送二进制数据的位数,单位b/s,kb/s,Mb/s,简称bps,kbps,Mbps
信道容量
表征一个信道传输数字信号的能力,它以数据传输速率作为指标,即信道所能支持的最大数据传输速率
信道最大数据传输率(重点)
引导性传输介质(特点,分类,比较)
-
双绞线(UTP,STP):
由两根采用一定规则排胶合的,相互绝缘的铜导线组成,可在其外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就成为非屏蔽双绞线(UTP)。
价格便宜,是最常用的传输介质之一,模拟传输和数字传输都可以使用,距离一般为几公里到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要中继器将失真的信号整形。
-
同轴电缆:
所有的结构都共用一个轴心所以叫同轴电缆,分为基带同轴电缆(用于局域网)和宽带同轴电缆(用于有线电视系统)
由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛应用与传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
-
光纤(多模和单模):
光纤通信利用光导纤维传递光脉冲进行通信,有光脉冲为1,无为0,宽带和通信量远远大于目前其他各种传输媒体。
光纤有纤芯(实心)和包层构成,前者折射率大于后者,当入射角足够大时就会发生全反射,使得光信号不断在纤芯内传输。损耗小,适用于长距离传输。
名称 定义 光源 特点 单模光纤 一种在横向模式直接传输光信号的光纤 定向性很好的激光二极管 衰减小,适合远距离传输 多模光纤 有多种传输光信号模式的光纤 发光二极管 易失真,适合近距离传输 - 传输损耗小,中继距离长,对远距离传输特别经济
- 抗雷电和电磁干扰性能好
- 无串音干扰,保密性好,也不易被窃听或截取数据
- 体积小,重量轻
中继栈和多路复用
-
FDM(频分多路复用)
-
TDM(时分多路复用)
-
CDM(码分多路复用)
交换
电路交换,报文交换,分组交换
第三章 数据链路层
结点
网络中的主机和路由器
链路
通信路径上连接相邻结点的通信信道,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分
数据链路
在一根线路上传送数据,除了要有一条物理线路外,还要有一些必要的规程来空着这些数据的传输。将实现这些规程的硬件和软件加到链路上,就构成了数据链路。
点到点通信(数据链路层):
在相邻结点间的 一条链路上的通信
端到端通信(传输层):
从源结点到目的结点通信。通信路径可能由多个链路组成.
举例说明三种服务
- 无确认的无连接服务(待补全)
- 有确认的无连接服务
- 有确认的有连接服务
数据链路层的主要功能
- 链路管理
- 数据成帧(frame)
- 差错控制(error control)
- 流量控制(flow control)
- 透明传输
- 寻址
成帧方法
差错控制
错误的检测和纠正:数据之外加冗余编码
检错码: 通过编码检查能自动发现差错
纠错码: 除了能知道出错,还能知道错误发生的位置
奇偶校验码:是通过增加冗余位来使得码字中“1” 的个数保持奇或偶数的编码方法,是一种检错码。
目的:使DL能够向上层提供无差错的服务(链路有干扰)
目的:使DL能够向上层提供无差错的服务(链路有干扰)
重点:CRC检错码
滑动窗口协议
捎带技术
双向通信
双向通信的帧的种类
A-B数据帧 , A-B的确认帧
B-A数据帧 , B-A的确认帧
确认帧的长度很短,但同样需要帧头,校验,控制 信息和帧尾,效率较低
将A-B的数据帧, A-B的确认帧,混合在一起
将A-B的数据帧, A-B的确认帧,混合在一起
实际上是在一方收到另外一方发来的数据帧之 后,不立即回发确认帧给对方,而是等本站有数 据要发送给对方时,将给对方的确认信息和本站 发向对方的数据混合成一个帧传送给对方。
将确认暂时延迟以便可以钩到下一个外发数据帧的技术
捎带技术的优点(重点)
更好地利用信道的带宽
更好地利用信道的带宽
减少单独发送确认帧带来效率的降低
捎带技术带来的问题及解决办法(重点)
如果一个站点在收到对方数据帧之后没 有数据发送给对方,源站可能要超时;
设置辅助计时器,在目标端收到数据时, 启动辅助计时器,如果辅助计时器到时, 没有反向数据传送,则单独发送确认短帧
流量控制方法(重点)
选择重传可能存在的问题:
假设发送方发送0~6号帧给接收方,接收方收到了,回复0到6的确认帧,接收窗口移动,但是这些确认帧丢失了。发送方超时重传0到6号帧,老帧进入了新的窗口GG
解决方案:限制最大接收窗口
滑动窗口协议窗口限制
3000公里长的主干线路,传播速度为米/秒, 链路速率为10Mbps,每帧大小为2500bit。如果两端 使用协议5,发送窗口大小设定为7,则信道利用率为 多少?(5.8%)
上题。要使信道利用率接近100%,则发送窗口应为 多少?此时帧的序列号应该为多少位?(7位)
第四章 介质访问控制
ALOHA
纯ALOHA:如果有数据需要发送就传输。 如果发生冲突, 就完成当前传输并稍后重试。、
时隙ALOHA:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
载波监听多路访问协议
坚持-CSMA:发送前监听信道是否空 闲。 如果忙,请等到它空闲时,然后立即开始传输。 如果 发生冲突,该站会随机等待一段时间并重新开始
非坚持CSMA:不像前一个协议那 么贪婪 — 当信道拥挤时,等待一段随机时间再试一次。 如 果等待时间过长,信道利用率就会下降(利用率低些)。
P坚持-CSMA:与分槽系统一起使用, 如果发现当前时隙期间信道空闲,则以概率 p 进行传输, 并以概率 1-p 推迟到下一个时隙。 p=1 不太好,p=0 却很 有礼貌。
带冲突检测的CSMA:
-
侦听信道是否空闲。如果信道没有被使用,则进 行传输。
-
在传输过程中,继续保持侦听以检测信道是否有 冲突发生。如果有冲突发生,则立即停止传输
-
如果有冲突发生,则等待一个随机时间(二元 指数后退算法),并且再次从(1)开始。
CSMA/CA
无线局域网协议
IEEE标准:
802.3:以太网
802.11:无线LAN
802.15:蓝牙
802.16:无线MAN
以太网
10Base5用得比较多,一般是10Mbps,使用几代信令,分段长度为500米
10代表传输速率10Mbps,BASE代表基带传输,2 和5代表所支持的分段长度分别为200米左右和500 米,T代表双绞线,F代表光纤。
曼切斯特编码
以太网MAC子层协议
MAC帧的固定字长为18B,为满足64B的最小帧,需要46B的填充位
为什么要限制最小帧的长度
如果帧长度太短,虽然冲突发生了,但是在突发噪声回到发送方(2t)之前,传送任务已经完成了,则发送方将不正确地得出结论
对于最大长度为 2500 米和四个中继器(来自 802.3 规范)的 10 Mbps LAN,最坏情况下的往 返时间(包括通过四个中继器传播的时间)已确定 为接近 50 微秒 . 在 10Mbps 时,一位需要 100 纳 秒,因此 500 位是保证工作的最小帧。 为了增加 一些安全界限,这个数字被四舍五入为 512 位或 64 字节。
二元指数退避法
发生碰撞时如何进行随机化
通常,在 i 次冲突后,会选择 0 到 之间的随机数,并跳过该数量的时隙。 然而,在达到 10 次冲突后,随机化间隔被冻 结在最多1023 个时隙。 16 次碰撞后,控制器认输并向计算机 报告故障。 进一步的恢复取决于更高层。
第五章 网络层
存储转发数据包交换
若一台主机要发送一个数据包,它将数据包传输给最 近的路由器,在该数据报到达路由器,并且路由器的 链路层完成了对它校验和的验证之后,它先被存储在 路由器上;然后沿着路径被转发到下一个路由器,直 到到达目标主机。这种机制即为存储-转发数据包交换
无连接服务
主机在传输数据之前无需建立连接,主机 有数据就交给网络层,网络层实体直接发送出去,每 一个分组独立选择路由,由上层进行排序和流控。
在这样的环境中,分组通常称为数据报(datagram), 对应的网络称为数据报网络(datagram network)。
无连接服务的实现
路由器中存储的表叫路由表,它有路由器到其它各 个可达节点的路径。管理这些路由表并作出路由选择 的算法称为路由算法
面向连接服务通信过程:
1. 在主机通信之前,双方硬建立起连接
1. 在建立起的连接上进行数据的传递
1. 传输完毕,拆除连接
使用面向连接的服务,必须首先建立一条从源路由 器到目标路由器的路径。这个连接称为虚电路,网络称为虚电路网络
当一个连接建立起来时,从源机器到目的机器之间的一条路径被选为连接的一部分,并保存在中间这 些路由器的内部表中,对于所有在这个连接上通过的 流量,都使用这条路径。每个分组都包含一个标识符, 指明属于哪个虚电路。
虚电路和数据报网络比较
路由算法
路由算法:指管理路由表并作出路由选择的算法。
非自适应算法:不会根据当前测量或者估计的流 量和拓扑结构,来调整它们的路由决策,所有的路 由选择是预先在离线情况下计算好的,在网络启动 的时候被下载到路由器中,所以又称这种算法是静态路由。
自适应算法:随拓扑结构和流量的变化和改变他们的路由决策,又称这种算法是动态路由。
最短路径算法
属于静态路由选择算法,路由算法的图形抽象
路由算法的图形抽象,边用于表示路由器之间的链路
链路的代价(link cost): 表示链路上的距离、 信道带宽、通信开销、延迟, 队列平均长度等参数。
如图所示,图中的每个节 点代表一台路由器,每条边代 表一条通信线路,线路上的数 字是它的开销。现在我们想找 到从A到D的最短路径。
最短路径路由算法的工作过程:
- 节点A标记为永久节点,依次检查每一个与A相邻的 节点,并检查它们与A之间的距离
- 如果新标记距离小于该节点原来的标记,说明找到 了一条更短路径,该节点需要重新标记,作为暂时性标记
- 检查图中所有暂时性标记的节点,使其中具有最小 标记的那个节点成为永久节点,并且作为下一个工作节点
- 重复上述过程,直到没有新的永久节点为止
距离矢量算法
距离矢量路由的工作原理,计算过程
- 各路由器维护一张路由表,给出了到每个目的地的 已知的最佳距离和路线(表项的两部分)
- 各路由器与相邻路由器交换路由表
- 根据获得的路由信息,更新路由表
链路状态路由
1979年以前,ARPANET一直使用距离矢量路由算法, 而之后被同样是动态路由算法的链路状态路由算法取代
代替Distance Vector Routing的原因:
距离矢量路由算法需要很长时间才能收敛到稳定状态。(无穷计算问题)
工作过程:
- 发现它的邻居节点,并了解其网络地址。
- 设置到每个邻居节点的距离或者成本度量值。
- 构造一个包含所有刚刚获知的链路信息包。
- 将这个包发送给所有其他的路由器,并接收来自所 有其他路由器的信息包。
- 计算出到每个其他路由器的最短路径。
拥塞控制概念,原因,条件
拥塞(congestion)的概念
- (一部分)网络中存在太多的数据包导致数据包被 延迟和丢失,从而降低了传输性能,这种情况称为拥塞。
- 一个比喻:道路交通系统,车辆多会形成拥塞。
- 拥塞的表现:对于一部分或全部子网用户而言,感 觉网络响应较慢或分组的丢失率较高;
对于全部子网或一部分子网路由器而言,有太多 分组要求它(们)传递,超过了它(们)的处理能力。
拥塞控制
从各个方面对子网加以控制,规范所有主机和路由器的行为,尽量消除任何可能导致子网通信能力下降的 因素,确保子网的正常运行。
拥塞的原因
- 计算机网络是一个复杂的系统,拥塞原因也是多 种多样的。
- 向一个输出线路转发的分组过多
- 来自多个输入线路的分组,要求向一个输出线路 转发
- 输出线路的带宽有限,来不及转发,在队列中缓 存队列满,抛弃
- 局部拥塞
- 子网各部分(处理器的处理速度,线路的带宽,缓冲 队列的长度等)不匹配(mismatch)。
- 单单增加系统某一方面资源,不会解决拥塞问题, 仅仅将拥塞从某一个部位转移到另外一个部位。
- 举例:路由器的处理器慢,来不及处理数据,导致 缓冲区溢出,会拥塞;增加处理器的处理速度,但不 增加线路的带宽,队列同样会溢出,会拥塞。
拥塞发生的一般条件
拥塞控制与流量控制的区别:
- 拥塞控制是一个全局性的问题,必须使整个网络的 主机、路由器、线路等资源或能力相匹配,目的是 保障子网能够正常地传输分组。
- 流量控制是一个一对一的问题,使发送方和接收方 的能力匹配,通过一定的机制保证发送方发送的速 度不至于淹没接收方
举个例子:
- 超级计算机向一个PC传送文件(流量控制)
- 子网1Mbps,网络中500台计算机向另外500台计算机,以100Kbps的速率传送文件(拥塞控制)
拥塞控制方法:
增加资源或减少负载
网络供给:避免拥塞最基本方 法是建立一个与流量匹配良好的网络。(打开备份路由器或线路)
IPV4
版本:协议的版本号;
IHL:表明头部的长度(以32位的长度(4 bytes)为单位)
区分服务:区分服务;(Type of service)
总长度:数据包总长度(以字节为单位);
标识:数据包的标识值;
DF:不分段标志
MF:更多的段标志;
分段偏移量:段偏移量,分段在数据包的位置;
实际偏移量 = 段偏移值 × 8 bytes
生存期:用来计算包的存活期的计数器(单位为s);
协议:发送数据包的上层协议(TCP:6,UDP:17);
Header 头校验和:头校验和;
协议分析题(重点)
根据上图中的Ipv4头,分析以下十六进制(十六进制) 形式的IP头部: 45 00 00 30 52 52 40 00 80 06 2c 23 c0 a8 01 01 d8 03 e2 15.
- IP 数据报由报头部分和数据部分组成。该IP 数据报 数据部分有多长?
- 数据包的生存时间是多少
- 传输层的协议是什么
- 十进制形式的源地址和目的地址是什么
- 每个数据报最多可以划分多少个片段
IP地址
Internet上的每台主机和路由器都有一个32位长的IP地址,IP地址包含网络号和主机号。原则上, 任何两台机器都不会有相同的IP地址。
实际上,IP地址引用的不是一台主机,它真正 引用的是一个网络接口,所以,如果一台主机同时 位于两个网络上,那么它必须拥有两个IP地址。
重点:
- 给出一个IP地址,指出是哪类地址
- 构成
- 没类地址最大网络数和最大主机数
子网掩码
-
子网的位数由各个单位确定,如何在IP地址中 区分哪些是网络号,哪些是主机号。
-
子网掩码:网络号+子网号;32Bits,1和0组成 ,1表示IP地址所在的位为网络号或子网号,0表 示IP地址所在的位为主机号。
-
给出IP地址、子网掩码、所在网络三条件中任 意两项,会计算剩下一项。并能对指定地址指 出有多少个子网和主机可用
举个例子
IP地址为130.50.15.6,子网掩码为255.255.252.0 则:所在网络为: 130.50.12.0,有个子网可用, 该子网中可分配IP的主机为个
子网划分
当主路由器从网络中收到分组的时候,它是如何知道 应该发往哪个子网的,才能找到目标主机呢?
主路由器中会含有到达三个子网的路由表,当网络 中的IP分组到达路由器时,它的目的IP地址与路由器 的子网掩码进行与操作,即可得到该发往哪个子网的 路由器,再由子网的路由器确定发给该子网的哪个主 机。
举个例子:
当目标地址为202.120.3.98的IP分组到达路由 器时,它与路由器的子网掩码255.255.255.224进行与 操作,得到的子网地址为202.120.3.96
CIDR无类别域间路由
为什么引入CIDR:一个A或B类地址对大多数机构来说还是太大,C 类地址又太小,网络地址本身又非常紧缺
解决方案:将剩余的IP地址以可变大小块的方式 进行分配,而不管它们所属类别。——CIDR
CIDR建立于“超级组网”的基础上,“超级组网”是“子网划分”的派生词,可看作子网划分的逆 过程。子网划分时,从地址主机部分借位,将其合并进网络部分;而在超级组网中,则是将网络部分的某些位合并进主机部分。
这种无类别超级组网技术通过将一组较小的无 类别网络汇聚为一个较大的单一路由表项,减少了 Internet路由域中路由表条目的数量
引入CIDR的好处
- 提高IP地址的利用率
- 缩短路由表
CIDR路由选择:对IP地址和每一个表项的子网掩码进行 布尔与操作,得到输出地址,来决定下一跳。若有 多个符合的表项,则取符合掩码长度最长的那个; 若所有表项都不符合,则通过默认路由转发。
NAT——网络地址转换
原理:在内部使用私有地址,在边界上使用NAT盒,让 私有地址映射到公共的IP地址上。当服务器端的分组到达时,通过传输层端口号和私有地址的绑定关系,来确定该分组送往哪个私有地址
私有网络的IP地址:
有三段IP地址范围已经被声明为私有地址, 任何一家公司都可以在他们的内部随意地使用这 些地址,唯一的规则是,包含这些地址的分组不 应该出现在Internet上。
请求IP包和应答IP包的NAT
- 当请求IP包到达路由器时,将IP包中的源IP地址和源 端口号信息填入NAT表(映射表),同时将对应的 NAT表表项序号取代IP包中的源端口号字段,并将选定的合法地址(即公开IP地址)取代IP包中的源IP地 址字段,重新计算校验和并发送。
- 当应答IP包从ISP发回来时,路由器将抽取该应答IP 包中目的端口号字段,查NAT表将表中对应的内容放回目的IP地址字段和目的端口号字段,发回源节点。
NAT存在的问题
- NAT违反了IP的体系结构:IP规定一个IP地址对应一 个网络接口,而在NAT中,某个地址可能会对应成千 上万个地址;
- NAT将Internet的无连接服务变成了有连接服务;因为NAT必须包含所有经过它的连接信息;
- NAT违反了网络分层原则:在第三层用了第四层协议格 式中的字段;
- 如果IP包的载荷不是TCP或UDP,则NAT无法工作, 因为在其他协议的信息中不包含源端口号;
- 在有些应用中NAT可能会出错:发送方会将源IP地址嵌 在它的消息中,接收方必须从信息中取用源IP地址, 但NAT不作此类处理,因而将导致错误。
ICMP协议(INTERNET控制协议)
ICMP和IP的关系:
- ICMP使用IP协议传输,ICMP报文,ICMP报文被 封装在IP数据报中;
- ICMP协议和IP协议同处于 一个互联网层
ARP——地址解析协议
ARP的目的:已知IP地址,求该IP地址对应的MAC地址
转换过程:
- LAN内部广播发送ARP请求分组,有待求的IP地址
- 目标站收到该请求,回答,将本机IP地 址和MAC地址以ARP应答的方式传给对方
RARP——反向地址解析协议
RARP的目的:已知MAC地址,如何求得对 应IP地址(MAC地址映射到IP地址)
RARP的应用场合:无盘工作站在启动时,知道自己的MAC地 址,但没有硬盘记录自己的IP地址
RARP的工作原理:
-
想要获知自己的IP地址的站点广播RARP 请求:我的MAC地址是 14.04.05.18.01.25,谁知道我的IP地址
-
RARP服务器获知,通过RARP应答
DHCP——动态主机配置协议
DHCP既允许手工分配IP地址,也允许自动分配IP 地址
工作过程:一台新启动的机器,它广播DHCP分组, 它所在LAN上的DHCP中继代理得到分组后,用单播的方式将该分组发送给DHCP服务器。从而从一 个IP地址池内自动为该主机分配IP地址。IP地址分配的有效期只能是一段固定长的时间,称为租用 (leasing)。在到达租期之间,主机必须向DHCP 服务器申请续租(renewal)
OSPF——内部网关路由协议
Internet是由大量的自治系统(AS)构成的,每个 AS内部可以使用自己的算法。AS内部的路由算法称为内部网关协议。AS之间的路由算法称为外部网关协议。
最初的Internet内部网关协议是距离矢量协议(RIP),由于存在无穷计算问题,它最终被OSPF(Open Shortest Path First,开放的最短路径优先)所取代。
OSPF是Internet上主要的内部网关协议,负责AS内部 路由。 1988年开始制定,1990年成为标准,采用L-S路 由算法 。(IS-IS 中间系统到中间系统)
OSPF同时支持两类网络:
- 点对点网络(SONET,两台路由器直接连接);
- 支持广播传送的多路访问网络(广播网络,大多数 LAN)
BGP外部网关路由协议
在AS之间,则使用另一个协议:BGP(Border Gateway Protocol,边界网关协议)。一台BGP路由 器只负责从AS到AS之间的路由。
BGP基本上是一个距离矢量协议,但是不同在于, 每一台BGP路由器不仅维护它到每个目标的开销值, 还记录下所使用的路径。BGP路由器会将它所用的确切路径告诉它的邻居们。
BGP协议解决了困扰距离矢量协议的无穷计算问题,因为路由器可以根据其它路由器传来的路径信息得知自己是否在这条路径上。
IPV6
IPv6(Internet Protocol Version 6)主要是为了 解决现在IP地址不足的问题,IPv6是IETF设计的用于 替代现行版本IP协议(IPv4)的下一代IP协议。
特点:
- IPV6地址长度为128比特,地址空间增大了2的 96次方倍;
- 灵活的IP报文头部格式。使用一系列固定格式 的扩展头部取代了IPV4中可变长度的选项字段。IPV6 中选项部分的出现方式也有所变化,使路由器可以简 单路过选项而不做任何处理,加快了报文处理速度
第六章 传输层
传输层提供端到端服务
- 网络通信的本质是“进程通信(process communication)”,而非“主机通信”。
- 网络层IP协议提供的服务是不可靠的 (数据部分不校验,分组有生存期,拥塞 时可以丢弃分组,等等)
- 传输层为应用层提供两类服务:
- 面向连接的服务:TCP
- 无连接的服务:UDP
端口
- 端口用一个 16 bit 端口号进行标志。
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
- 两类端口
- 一类是熟知端口(well-known ports),其数值一般为 0~1023。如: Web HTTP: 80,File FTP: 20, 21, Email SMTP: 25等等。当一种新的应用程序出现时, 必须为它指派一个熟知端口。
- 另一类则是一般端口1024~65535,用来随时分配给 请求通信的客户进程。
套接字
TCP 使用“连接”(而不仅仅是“端口”) 作为最基本的抽象,同时将 TCP 连接的端 点称为套接字(socket)。
套接字的基本格式:IP地址:端口号
UDP
UDP协议是无连接的数据报协议,它不提供可靠性服务,但其相应的协议开销也较小、效率 较高
域名系统DNS、简单网络管理协议SNMP使用 的传输层协议是UDP
头部格式
UDP只在IP的数据报服务之上增加了很少 一点的功能,即端口的功能和差错检测的功 能
UDP源端口:UDP端口号,当不需要返回数据时,源端口域置0
UDP目的端口:UDP端口号
UDP长度:整个数据段的长度,包括头部和数据部分以字节计,最小为8(仅头部长度), 最大为 65515
UDP校验和:可选域,全0为未选,全1表示校验和为0
UDP提供服务的应用
- 远程过程调用RPC
- 向一台远程主机发送一个消息并获得一个应 答。将网络中的请求-应答交互表示成过程调 用形式,例如:调用get-IP-address(主机名 )将发送一个UDP包给DNS服务器,并等待回 答
- RPC对程序员屏蔽了网络运作的细节
- RPC是UDP的一个重要应用
- 实时传输协议RTP
- UDP的另一个重要应用是RTP
- RTP是一个传输层协议,但在应用层实现
- RTP是用于多媒体数据传输的协议
TCP
- 面向连接
- 端到端的服务
- 完全可靠性服务——IP协议不提供可靠性服务,而TCP将在IP的基础上提供可靠性服务并保证数据发送和接收次序一致
- 全双工服务
- 流接口
- 可靠的连接建立
- 完美的连接终止
端口
TCP的TSAP,与某一个应用程序相关 通用端口(well-known port) 端口号小于1024 其他可由各主机自己定义
套接字
传输层的通信端点,它由 IP地址 + 端口号组成
TCP服务模型
TCP服务由发送方和接收方创建一种称为套接字(socket)的端点来获得。每个套接字都有一个套接字编号(地址),由主机的IP地址和该主机本地的16位数值组成,称为端口。
TCP协议交换的数据单位:段(segment)
段的结构:
- 20字节的头部+一些字节的选项
- 0或多个字节的数据
段的大小:
- 由TCP实体确定,但是要受到两个限制
- 形成的数据段不大于65515个字节
- 数据段的长度 > 网络MTU(一般为1500)时
- 将该IP分组分段
- 每一个fragment都有TCP头和IP头
TCP的数据编号与确认
- TCP 协议是面向字节的。TCP 将所要传送的报 文看成是字节组成的数据流,并使每一个字节 对应于一个序号。
- 在连接建立时,双方要商定初始序号。TCP 每 次发送的报文段的首部中的序号字段数值表示 该报文段中的数据部分的第一个字节的序号。
- TCP 的确认是对接收到的数据的最高序号表示 确认。接收端返回的确认号是已收到的数据的 最高序号加 1。因此确认号表示接收端期望下 次收到的数据中的第一个数据字节的序号
TCP段的头部
源端口和目的端口字段——各占 2 字节。端口是传输 层与应用层的服务接口,每个端口对应一个应用程序。
序号字段(SEQ)——占 4 字节。TCP 连接中传送的数 据流中的每一个字节都编上一个序号。序号字段的值 则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段(ACK)——占 4 字节,是期望收到对方的 下一个报文段的数据的第一个字节的序号。
TCP头长度——占 4 bit,它指出 TCP 头部包含多少个32bit的 字。(也指明了报文段的数据起始处距离 TCP 报文段的起始处 有多远。“TCP头长度”的单位不是字节而是 32 bit 字(4 字节 为计算单位)。
保留字段——占 4bit,保留为今后使用,但目前 应置为 0。
CWR和ECE用作拥塞控制的信号。
紧急指针URG —— 当 URG = 1 时,表明紧急指针 字段有效。它告诉系统此报文段中有紧急数据,应 尽快传送(相当于高优先级的数据)。
确认比特 ACK —— 只有当 ACK = 1 时确认号字 段才有效。当 ACK = 0 时,确认号无效。
推送比特 PSH (PuSH) —— 接收 TCP 收到推送比特 置 1 的报文段,就尽快地交付给接收应用进程,而不 再等到整个缓存都填满了后再向上交付。
复位比特 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因), 必须释放连接,然后再重新建立运输连接。
同步比特 SYN —— 同步比特 SYN 置为 1,就表示 这是一个连接请求或连接接受报文。
终止比特 FIN (FINal) —— 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送端的数据已发送完 毕,并要求释放传输连接。
窗口字段(WIN)——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
检验和 —— 占 2 字节。检验和字段检验的范围包括 首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
紧急指针字段 —— 占 16 bit。紧急指针指出在本报 文段中的紧急数据的最后一个字节的位置。
选项字段 —— 长度可变。TCP 只规定了一种选项, 即最大报文段长度 MSS (Maximum Segment Size)。 MSS 告诉对方 TCP: “我的缓存所能接收的报文段 的数据字段的最大长度是 MSS 个字节。 ”
(MSS 是 TCP 报文段中的数据字段的最大长度。 数据字段加上 TCP 首部才等于整个的 TCP 报文段)
填充字段 —— 这是为了使整个首部长度是 4 字节的 整数倍。
TCP连接建立与释放
三次握手(TCP连接建立)
四次握手(TCP连接释放)
TCP拥塞控制
- 接收窗口 rwnd (receiver window) 这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。
- 拥塞窗口 cwnd (congestion window) 是发送端根据自己估计的网络拥塞程度而设置的窗口值, 是来自发送端的流量控制
发送窗口的控制端
发送端的发送窗口的上限值应当取为接收窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按 以下公式确定:
当 rwnd < cwnd 时,是接收端的接收能力限制发送窗口的最大值
当 cwnd < rwnd 时,则是网络的拥塞限制发送窗口的最大值。
慢启动算法
当连接建立时,发送方将拥塞窗口的初始大小设置为最大的数据段长度(MSS),并随后发一个最大长度的数据段,如该数据段在定时器超时前得到 了确认,发送方在原来的拥塞窗口的基础上再增加一倍长度,发送两个数据段,如两个数据段都得到了确认,则再增加一倍长度,拥塞窗口一直呈指数增长,直至发生超时或达到接收方的窗口大小。
慢启动算法实际上一点也不慢,它是呈指数级的
除了接收窗口和拥塞窗口外,还增加第三个 参数:阈值(threshold)。当一次超时发生的时候, 阈值被设置为当前拥塞窗口的一半,而拥塞窗口被 重置为一个MSS.然后使用慢启动算法来决定网络的 处理能力,不过当增长到阈值的时候便停止。从这个点开始,每一次成功的传输都会使拥塞窗口线性地增长,而不是成倍地增长
具体过程
- 初始拥塞窗口大小为1个MSS,当没有超过阈 值时,采用慢启动算法指数增长。
- 拥塞窗口大小增长到阈值时,慢启动算法停 止,拥塞窗口呈线性地增长。
- 发生超时,阈值变为当前拥塞窗口值的一半, 然后拥塞窗口大小重置为1个MSS ,再继续采用 慢启动算法。转到2
如果不再发生超时,则拥塞窗口将继续增长, 直至到达接收方窗口的大小
例题:
TCP的Threshold初始值为8,拥塞窗口上升为12 时网络发生了超时。求第1次到第15次传输的各拥 塞窗口大小。(要求画图)
TCP滑动窗口
TCP使用与数据链路层不同的窗口协议来实现流量控制
-
数据链路层:在数据链路层的滑动窗口协议中, 发送窗口的滑动依赖于确认的到达
-
TCP层:TCP的窗口大小是其缓冲区的尺寸,建 立连接的双方都将分配一个缓冲区作为接收数据 的存放空间,并相互通知对方,此后,每次对接 收数据确认的同时发布一个窗口公告(window advertisement),报告剩余窗口的大小,任何时刻,剩余的缓冲区空间的数量叫窗口大小 。
发送方收到一个零窗口公告时,必须停止发送, 直到接收方重新发送一个非零的窗口公告,但有 两种情况可以除外
1. 发送**紧急数据**,如允许用户终止(kill)当前 正在远端机上运行的进程
1. 发送方可以发送一个字节的数据段通知对方, 要求接收方重申希望接收的**下一字节及当前的窗口大小**,以防止可能的窗口公告丢失而导致 的死锁
第七章 应用层
DNS——域名解析系统
必要性:
- IP地址可以标识主机、路由器。
- 但IP地址不好记忆,不便使用。
- 一般倾向于使用一些有意义的字符串来标 识Internet上的某个资源。
- 存在着字符串与IP地址转换的必要性
- 用户提供要访问资源的“字符串”名称。
- 由DNS负责转换成为二进制的网络地址
名词:
- DNS Name Space——DNS名字空间
- Resource records——资源记录
- Name Servers——名字服务器
电子邮件
电子邮件最主要的组成构件
多用途因特网邮件扩充MIME
SMTP的缺点
- SMTP不能传送可执行文件或其他的二进制对象。
- SMTP限于传送7位的ASCII码。许多其他非英 语国家的文字(如中文、俄文,甚至带重音符 号的法文或德文)就无法传送。
- SMTP服务器会拒绝超过一定长度的邮件。
- 某些SMTP的实现并没有完全按照[RFC 821]的 SMTP标准
MIME的特点
- MIME并没有改动SMTP或取代它。
- MIME 的意图是继续使用目前的 [RFC 822]格式,但增加了邮件主体 的结构,并定义了传送非 ASCII 码 的编码规则
MIME和SMTP的关系
POP3协议
- 邮局协议POP是一个非常简单、但功 能有限的邮件读取协议,现在使用的 是它的第三个版本 POP3。
- POP也使用客户/服务器的工作方式。
- 在接收邮件的用户PC机中必须运行 POP客户程序,而在用户所连接的 ISP的邮件服务器中则运行POP服务 器程序
IMAP (Internet 邮件访问协议)
- IMAP 也是按客户/服务器方式工作,现 在较新的版本是 IMAP4。
- 用户在自己的 PC机上就可以操纵ISP的 邮件服务器的邮箱,就像在本地操纵一 样。
- 因此IMAP是一个联机协议。当用户PC 机上的 IMAP客户程序打开IMAP服务器 的邮箱时,用户就可看到邮件的首部。 若用户需要打开某个邮件,则该邮件才 传到用户的计算机上
万维网
- 万维网 WWW (World Wide Web)并非某种特殊的计 算机网络。
- WWW的历史
- WWW的发展
- Andreessen建立Netscape公司,生产一系列 的WWW产品
- Netscape公司与Microsoft公司的浏览器之争
- 世纪诉讼
- WWW的现状
- 成为Internet上最主要的应用,很多人心中的 Internet
- WWW的发展
万维网必须解决的问题
- 怎样标志分布在整个因特网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的 各种文档。
- 使每一个文档在整个因特网的范围 内具有惟一的标识符 URL
- 用何协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序 之间进行交互所使用的协议,是HTTP。
- HTTP(HyperText Transfer Protocol, 超文本传输协议)是一个应用层协议, 它使用 TCP 连接进行可靠的传送
- 怎样使各种万维网文档都能在因特网上 的各种计算机上显示出来,同时使用户清 楚地知道在什么地方存在着超链?
- HTML (HyperText Markup Language,超文本标记语言) 使得万维网页面的设计者可以很方便地用 一个超链从本页面的某处链接到因特网上 的任何一个万维网页面,并且能够在自己 的计算机屏幕上将这些页面显示出来。
- 怎样使用户能够很方便地找到所需的 信息?
- 为了在万维网上方便地查找信息,用 户可使用各种的搜索工具(即搜索引 擎)。
URL的一般形式
URL 包括三部分:协议(如HTTP),主机的DNS域名,和路径名。
URL 的一般形式是:
一次成功的Web访问
- 浏览器分析超链指向页面的 URL。
- 浏览器向 DNS 请求解析www.cs.washington.edu 的 IP 地址
- 域名系统 DNS 解析出IP地址为128.208.3.88。
- 浏览器与128.208.3.88的80端口建立TCP连接, 使用HTTP协议
- 浏览器发出HTTP请求要求取页面:/index.html
- www.cs.washington.edu服务器给出HTTP响应, 把文件index.html发给浏览器。
- 浏览器显示文件 index.html 中的所有文本。
- TCP 连接释放