记录自学408计算机网络复习中一些忽略、未掌握或模糊遗忘的知识点
考察时间相关计算时,一定要注意是从什么时候开始算
比如


注意是从交换初始距离向量开始,并且是在交换初始距离向量之后间隔30s交换一次.对于210.2.3.0/24,相当于是从R14已经与R11和R15交换了初始化距离向量开始,所以仅需间隔30s再次交换(扩散)就可以抵达AS1的所有路由器,共30s;而对于210.2.4.0/24则需要再进行两次交换才能到达最远端R11,共需60s

一、基本概念
1.2 各种设备

类似 10M-BASE-T :10M指的是最高数据传输速率,BASE指的是基带传输,T指的是双绞线(类似的有F指的是光纤)
1.2.1 适配器
也叫做网络接口卡NIC,熟称网卡,配有处理器和存储器(RAM、ROM),适配器和局域网之间的通信是通过电缆或双绞线以串行方式传输,与计算机的通信是通过IO总线以并行方式传输,所以实现了串并行传输转换的功能,属于一种IO接口(网络设备控制器),采用中断机制交付给协议栈 的网络层
1.2.2 集线器Hub
集线器一般只具备的很少的网络容错能力和网络管理能力
(1)使用集线器的以太网逻辑上仍是一个总线网,各站共享逻辑上的总线,各站的适配器使用的仍是CSMA/CD协议,同一时刻至多只允许有一个站点发送数据,
(2)一个集线器有许多端口,各端口传输数据的速率也应该相同,不然只会工作在最低速率.
(3)工作在物理层,每个端口仅简单转发比特(收到1就转发1)不进行碰撞检测
(4)采用专门的芯片抵消干扰,转发比特前会重新再生整形和定时
1.2.2 以太网交换机
实质是一个多端口的网桥,隔离碰撞(冲突)域不隔离广播域,以下特例,虽然交换机隔离碰撞域但是其各接口只连接了一台主机相当于工作在全双工模式不存在碰撞域

(1)每个端口一般都工作在全双工方式(所以不用CSMA/CD),还具有并行性能同时连通多对端口使多对主机同时通信,相互通信的主机都独占传输媒体,无碰撞地传输数据(网桥只能一次分析和转发一个帧)。
(2)端口有存储器,可以缓存帧
(3)是一种即插即用设备,内部的帧交换表(相当于是内容可寻址存储器)通过自学习建立,明确(或盲目)转发或丢弃或对广播帧除发送接口外的其他所有接口直接泛洪。交换表的每个动态条目都有一个生存时间计时器。每当该条目被用来转发一个帧时(即被引用),计时器会重置。如果超过设定的老化时间(通常是5分钟)该条目仍未被引用,交换机将自动删除该条目。
直通方式和存储转发方式区别:
1)存储转发方式:交换机先将整个数据帧全部接收并缓存到内存中,然后计算帧校验序列(FCS) 检查帧是否有错。如果帧无误,才查询交换表,确定输出端口后转发出去。
2)直通方式:交换机只要接收到帧的最前目的MAC地址(通常仅需6字节如果加上前导码 8B就是14B),立即开始查询交换表并决定转发端口,后续的帧内容被“直通”到输出端口。它不进行差错校验。
二层环路问题解决——生成树协议STP
可以想象成在一个拥有多条道路(网络链路)的复杂路口(交换网络),为了避免车辆(数据包)不停地绕圈行驶造成大塞车(广播风暴),这个系统会自动进行“道路管制”——它会选择一条最宽阔的主干道作为“皇家御道”(根桥),并在一些次要路口设置“临时单行道”(阻塞端口),从而保证所有车辆都能高效、无环地到达目的地。一旦主干道发生事故,系统会立刻解除部分单行限制,启用备用道路,实现交通的自动恢复
过程:1. 选根桥 (Root Bridge)
2. 选根端口 (Root Port)
3. 选定指定端口 (Designated Port)
4. 阻塞非指定端口 (Blocked Port)
二、物理层
1.1 信道复用技术
FDMA、TDMA、CDMA和FDM、TDM、CDM的区别:CDMA、FDMA或TDMA中的“MA”指的是“多址”,意思是强调可以让多个用户(可以在不同的地点)接入进来,CDM、FDM和RDM则是说明是在频域或是时域进行复用,并不强调复用的信道是属于多个用户还是一个用户。
STDM(统计时分复用):时隙不是固定分给某个用户而是动态分配,所以要求在时隙中用户 的地址信息,是不可避免的开销。
CDMA:一个站与另一个站发送数据的前提是,接收站知道发送站特有的码片序列,这样才能通过内积运算获取发送的数据(不然用自己的进行内积,由于正交一定是0)。根据运算结果,1表示发送的是1,-1表示发送的0,0表示没发送数据
三.数据链路层
IEEE 802 把局域网的 数据链路层分为两个子层即逻辑链路控制层LLC和媒体接入控制MAC,与接入到传输媒体有关的内容都放在MAC层中,无论采用何种MAC和 传输媒体都与LLC无关,数据链路层的协议基本上都是MAC协议。

以太网帧的前导码是位于以太网帧最开始的字段,主要作用是帮助接收端和发送端进行时钟同步,以便正确接收和解析后续的数据。它由7个字节的同步码(0xAA)和一个字节的帧开始定界符(SFD,0xAB)组成。


3.1 基本问题
数据链路和链路的辨析:链路就是从一个节点到相邻节点 的一段物理链路(有线或无线),而中间没有任何 其他的交换节点 (一条路径的组成部分)。数据链路 则是数据传输时不仅需要链路还需要一些必要的通信协议,将实现协议的硬件或软件加到链路就构成了数据链路。
封装成帧:在一段段数据前后分别添加首部和尾部(帧长等于首部+数据+尾部)。故相关问题是帧定界,使用特殊的帧定界符(如SOH(01H)标识首部开始,EOF(04H)标识帧的结束).其中PPP规定帧定界符是0x7E;另一个是MTU(帧的数据部分长度上限)。在后面与传输层TCP的片偏移和IP的分片联合考察:数据链路层只看到帧的数据部分(即整个IP数据报),不关心TCP报文的片偏移。但TCP和IP协议作为上层,必须主动遵守下层的MTU限制,否则数据报在链路层无法封装。这意味着,整个IP数据报(IP首部+数据)的总长度不能超过MTU。因为IP数据报是作为 帧的数据部分传给数据链路层,所以要求IP报的首部+数据,而不是单独定义中的数据部分,同理,由于需要考虑TCP的片偏移字段单位是8B,所以在MTU减去首部长度的基础上还得取最大的8的倍数()作为真正的数据部分MTU(显然 TCP报文是IP的数据部分当然也是帧的数据部分)。
透明传输:即无论什么样比特组合的数据都能够按照原样没有差别的进行传输。方法是:字节填充(增加转义字符ESC,1BH)。其中在PPP协议异步传输的字节填充法中,规定的转义符是0x7D,会将数据部分出现的每个0x7E转化为(0x7d, 0x5E),0x7D转化为(0x7D,0x5D),小于0x20的字符如0x03会加上0x20转化为(0x7D,0x23);同步传输采用零比特填充法:连续五个1添加一个0;
差错检测:
CRC
CRC-x,其中x是一个2的幂次,表示生成多项式的最高项,具体方法参照 以下链接 ,需要注意的是,生成多项式的最低二进制位必须是1

码距是编码集中任意两个编码二进制差异的最小位数

简单奇偶校验
码距为2,检错1,纠错0


海明码
有上述码距和纠错检错关系图可以看出纠错2位和检错1位的海明码码距为3且需要首先添加r位校验码使得n位二进制编码满足且海明码默认使用的是偶校验,可以配置

确定Pi所在的校验分组可以通过以下方法:
对于P1,从P1所在二进制位开始选中1个跳过1个.......
对于P2,从P2所在二进制位开始选中2个跳过2个.......
.......
对于Pi,从Pi所在二进制位开始选中
个跳过
个
Pi选中的所有二进制所在位置(包括Pi)构成一个校验组
校验和
对于IP,仅把首部看作是16bit为单位的二进制片,对TCP和UDP则是把整个报文(附加 8B的伪首部,仅此时使用)看作是16bit为单位的二进制片,将每个二进制片按位取反加和同时高位进位需要加到末位(回卷),最后结果再取反即可。由于结果不可能刚好全是1,所以:

数据链路层现在可以有选择的在不同的链路上选择是否需要帧编号、确认和重传机制。
3.2 可靠传输

SAW、GBN、SR




上述协议的“序号”与TCP的“序号”不同,TCP是面向字节流的,所以序号指的是字节的序号(只不过是以最大报文段长度MSS(即TCP数据载荷的)为单位)
3.4 ALOHA->CSMA->CSMA/CD
随机介质访问协议:

注意:纯ALOHA虽然使用了ACK但仅用于确认是否遭遇冲突,而不用于检测是否误码,所以并没有提供检错机制,没有实现可靠传输。碰撞窗口过长2T

碰撞窗口为T

可以将非坚持记为1-非坚持,三种方式“-”前表示信道空闲时发送的概率,“-”后表示信道忙时是否继续坚持监听信道
CSMA/CD:
1.强化碰撞——当发送数据的站点检测到发生冲突时,除了立即停止发送数据外,还要继续发送32或48比特的人为干扰信号,以便让其他用户知道发生了碰撞(10M BASE-T 仅需要3.2/4.8μs)
2.电磁波在1km的电缆(2x10^8m/s)中传播时延约为5μs
3.以太网规定10M BASE-T的争用期为51.2μs,最小帧间间隔为9.6μs(使得收到数据的站来得及处理接收缓存便于接受下一个帧)
4.每次发送完一帧都需要将其暂时保存一下以免冲突重传,且重传次数达到 16次时,会丢弃该帧并向上层发送报告,发送给数据链路层中位于MAC子层之上的逻辑链路控制(LLC)子层的。LLC子层是数据链路层中与具体传输介质和MAC方法无关的部分。
传输(发送)时延 ≥ 往返传播时延,所以帧长减少传输时延减少,那么为满足不等式,往返传播时延也应该相应减少


实际上本题考察的是ARP,我简述一下t0到t1时刻之间发生的事:首先图片中的主机和路由器等都已经标注了IP和MAC地址,说明默认已经进行了DHCP配置,可忽略这一过程,而H1的ARP和S1交换表都是空的,说明还未进行过ARP查询经过S的帧传输,当主机通过域名访问时,实际发送HTTP请求报文还需要知道Web服务器的IP地址需要域名解析服务,按照协议配置:连接到互联网中的主机需要知道——(1)自己的IP地址(DHCP);(2)子网掩码;(3)默认路由器的IP地址;(4)域名服务器的IP地址。所以本题是默认进行了协议配置知道了默认网关和DNS服务器的IP地址。但是实际链路转发时用到是MAC地址,需要知道本地DNS服务器的MAC地址,而H1的ARP表为空,所以首先会进行ARP查询,广播ARP请求分组,到达S,S经过自学习将<H1MAC地址,接口4>记录到交换表中,然后广播,所以H2也会收到该广播的ARP请求帧但只有DNS服务器收到后知道是请求自己的服务才会将 分组的源IP地址作为目的IP地址并把自己的IP地址作为数据部分的ARP响应分组返回请求方,同样到达S经过自学习会记录到交换表中<DNS的MAC地址,接口1>,因为交换表中已记录了H1所在接口,所以直接单播转发给H1,H1收到后获取了DNS服务器的IP地址后发送DNS查询报文请求Web服务器的IP地址,由于题目未要求有关DNS的详细信息故省略,粗略认为DNS本地服务器递归查询后直接给H1返回查询结果报文,由于不在同一网段,H1需要发给自己的默认网关但是此时H1不知道默认网关的MAC地址,同样使用ARP,基本与前面所述相同只不过是R返回ARP响应报文,期间S交换表会记录<R的MAC地址,接口2>(H2也会再次收到一个广播ARP请求分组,所以H2一共会收到两个ARP广播分组,由于ARP的功能介于数据链路层和网络层之间可以认为是数据链路层的协议,所以也可以叫做ARP请求帧,目的MAC地址均是ff-ff-ff-ff-ff-ff).接下来,H1会向自己的默认网关R发送一个HTTP请求报文,在t1时刻S收到了来自H1封装了HTTP请求报文的帧
第一问的答案也很奇怪,它给的数据链路层封装的协议是CSMA/CD,但是这是局域网广播信道应对碰撞冲突的解决方式,至少在谢希仁老师的教材中未提及过CSMA/CD封装(首部、尾部格式),所以我认为写MAC也没问题
3.5 PPP协议
有连接不可靠服务,全双工的点对点(无需CSMA/CD)链路控制协议,应用在:1)用户连接到ISP才能接入互联网;2)两台网络设备的直连专用网络
特点:(1)面向字节,长度是字节整数倍,当PPP采用异步传输时是以字节为单位来传输数据,采用字节填充法;同步传输时是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信,采用插入0比特填充法。
如PPP帧的标志字段取值为7E(16进制),如果数据中出现7E则需要在数据前插入转义字符7D(16进制),并将原来的7E减20(16进制),所以7E在数据中最终会变成7D,5E
如果数据中有转义字符7D怎么办呢?可以在转义字符7D前再加一个转义字符7D,并将数据的7D减20(16进制),于是转义字符7D在数据中最终会变成7D,5D
数据中出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20,如传输0x02变为7D 22。
(2)LCP阶段双方设备通过交换LCP报文来协商数据链路层的各种参数,仅仅在LCP连接过程中使用到了确认机制,NCP的核心任务是完成网络层通信所需的参数配置,最主要的就是IP地址的分配,在数据帧的传送过程中仅使用到了CRC进行差错检测

(3)不同网络层协议可以使用同一个PPP
3.5 VLAN虚拟局域网
是提供给用户的一种服务(较大局域网分割成较小广播域)而不是新型局域网 ,在以太网帧 源地址和标签之间插入4B的VLAN标签(前2B固定为0x8100,后2B低12位虚拟局域网VLAN标识符),802.1Q帧最后的帧检验序列FCS必须重新计算
可按交换机端口 或 MAC地址划分,每台主机都不知道自己的VID(但交换机必须知道),通过接入链路发送到交换机帧的都是标准以太网帧。一个虚拟局域网可以跨越不同的交换机。连接到两个交换机端口之间的链路称为汇聚(干线)链路。
当同一交换机内同一个VLAN内两台主机通信时,交换机直接根据MAC地址转发,无需添加VLAN标签;当不同交换机的同一个VLAN内两台主机之间通信时,交换机在转发前会插入VLAN标签,因此在汇聚(干线)链路上传输的是802.1Q帧,但是当另一个交换机收到在转发前会去除VLAN标签,所以目的主机收到的就是普通以太网帧而不是802.1Q帧。
四、网络层

面向连接可靠的虚电路
- 建立阶段:在发送数据前,发起端和接收端根据目的地址(仅在这一阶段)之间建立一条(逻辑上,并不是实际物理电路,不占用实际链路带宽资源)虚电路,会为路径上的每个路由器设置转发表和分配VC号。
- 数据传输阶段:后续分组沿着已建立的虚电路传送,同一路由、同样的VC号,路由器依据VC号进行转发(不查找完整目的地址)。VC号只在两台相邻设备之间唯一,每跳可以更换
- 释放阶段:通信结束,释放虚电路资源,撤销相关转发表条目。


4.1 ICMP

ICMP报文有两种类型:ICMP差错报告报文和ICMP询问报文。前4字节分别是:类型、代码和 检验和字段。后4个字节与其类型有关。
ICMP差错报告报文的几种类型:
|
ICMP报文类型 |
类型值 |
主要功能 |
典型触发场景举例 |
|---|---|---|---|
|
终点不可达 |
3 |
通知源设备数据报无法送达最终目的地。 |
路由器没有目标网络的路由;目标主机关机或IP错误;目标主机防火墙拦截。 |
|
时间超过 |
11 |
通知源设备因生存时间(TTL)超时或分片重组超时,数据报已被丢弃。 |
|
|
参数问题 |
12 |
通知源设备其发送的数据报因IP头部字段错误(如误码、缺少必要选项)而被丢弃。 |
数据报在传输途中IP头部被意外修改或损坏;设备处理带有特殊选项的IP头时出现问题。 |
|
源点抑制 |
4 |
(现已很少使用)在早期网络中,用于通知源设备降低发送速率 due to 网络拥塞。 |
网关设备因缓存不足而丢弃数据报,并尝试让源主机放慢发送速度。 |
|
改变路由(重定向) |
5 |
由路由器通知主机,存在一条更优的路径到达目标网络,建议主机更新其路由信息。 |
主机配置的默认网关并非到达特定目标网络的最短路径;网络拓扑发生变化,出现了更佳路由。 |
-
终点不可达报文详解
这是最常见的一种ICMP差错报文。当路由器或主机发现无法将数据报继续传递时,就会向数据报的源IP地址返回一个类型值为3的报文。为了更精确地说明原因,该报文还包含一个代码字段。例如,代码为0表示“网络不可达”(通常由路由器告知),代码为1表示“主机不可达”,代码为3则表示“端口不可达”(当数据报要访问的目标主机的应用程序端口未开启时,由目标主机返回)。这就像是快递员无法投递包裹时,给你打电话说明是因为地址不存在(网络/主机不可达)还是收件人不在家(端口不可达)。
-
时间超过报文详解
该报文主要用于两种场景。第一种是TTL超时:IP数据报的生存时间(TTL)字段每经过一个路由器会减1,当TTL减至0时,路由器会丢弃该数据报并返回一个类型11、代码0的ICMP报文。网络诊断工具
traceroute正是利用这一机制来发现路径上的所有路由器。第二种是分片重组超时:当目的主机在预定时间内没有收到某个IP数据报的全部分片时,它会丢弃已收到的分片,并向源主机发送类型11、代码1的ICMP报文。 -
参数问题报文详解
当路由器或目的主机在处理IP数据报时,发现其首部字段存在错误(例如,校验和错误、长度字段不正确、或必需选项缺失等),就会丢弃该数据报,并返回一个类型为12的ICMP报文。此报文中包含一个“指针”字段,通常会指示出错误在IP头中的大致位置。
-
源点抑制报文详解
这是一种历史遗留的报文类型。在早期网络中,当路由器或主机因缓冲区已满(即发生拥塞)而无法处理更多数据时,会发送类型为4的ICMP报文,请求源主机降低发送速率。由于IP网络本身是“尽力而为”的无连接服务,这种简单的拥塞控制机制效果有限,且可能被用于攻击,因此在现代网络中已被普遍弃用。
-
改变路由(重定向)报文详解
这种报文发生在同一局域网内。假设主机A的默认网关是路由器R1,当A要发数据给主机B时,它会把数据报先发给R1。如果R1发现,实际上主机A直接发给另一个路由器R2(通常R2是更优的下一跳)是更好的路径,那么R1在将数据报转发给R2的同时,会向主机A发送一个类型为5的重定向报文,告知主机A:“以后发往主机B的数据,请直接发给R2(IP地址通常会包含在报文中)。”这能帮助主机优化其路由决策。出于安全考虑,现代操作系统可能会谨慎处理或忽略此类报文。
以下是不应该发送ICMP差错报告报文的几种情况:
1. 对ICMP差错报告报文
2.对第一个分片的数据报片的所有后续数据报片
3.对具有多播地址的数据报
4.对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报
4.2 路由选择算法
1.BGP
AS内部所有对等端(路由器)之间都必须建立iBGP(即使没有物理连接,所以路由器n个就需要(n-1)n / 2条iBGP),不同AS之间的对等端需要建立eBGP(所以不仅允许在AS之间 还运行在AS内部)。从 eBGP收到的路由可以通过iBGP告诉同一AS内部的对等端,同理,从iBGP对等端收到的路由也可以通过eBGP连接告诉不同AS的对等端。但是,从一个iBGP连接的对等端收到路由,不能通过不同的iBGP连接告诉AS内部其他iBGP连接的对等端。
BGP路由 = “前缀;AS_PATH; NEXT_HOP”
算法:
1.本地偏好值LOCAL_PREF高:,选择本AS开始的,到同一个前缀的不同BGP路由中偏好值最高的(可以由网络管理员等配置)
2.AS_PATH短(经过AS数最少):未必选择最好的,因为AS之间有各种各样的限制
3.热土豆算法(NEXT_HOP“最近”):为了让分组尽可能快离开路由器 ,选择让分组经过最少的转发次数离开本AS,会使用到IGP协议。对不同的路由器选择不同
4.BGP标识符数值足校:BGP ID是路由器所有IP地址中数值最大的一个

(链路图在文章最前面)没有告诉偏好值相关信息,则直接看AS_PATH选择最少的有两条(一和三),那么就需要进行热土豆算法判断NEXT_HOP的远近,显然对于R14与R11相邻所以更新为第一条信息,对于R15与R13相邻则更新为第三条信息
报文:
1.OPEN打开报文:与BGP对等端建立连接
2.UPDATE更新报文:通告某一路由的信息以及列出要撤销的路由
3.KEEPALIVE保活报文:周期性证实连通性。核心,收到OPEN发挥KEEPALIVE表示接受建立BGP连接
4.NOTIFICATION通知报文:发送检测到的错误
同时路由器会设置一个保持时间计时器,每收到一个BGP报文就重置(从0开始),商定保持时间(商定不同选最小,也可以是0表示永久正常工作)内未收到。KEEPALIVE报文发送时间间隔为保持时间的1/3
2.RIP
距离向量型,应用层协议,使用UDP,端口号520,RIP报文分路由和首部,需要注意的是:在路由部分需要填上自治系统号ASN,因为RIP有可能收到本AS之外的路由选择信息。RIP允许一条路径最多有15个网络(途径15个路由器)等于16即认为i不可达,对于长时间未收到相邻路由器的更新路由表,会将此路由器记为不可达(距离记为16)

3.OSPF
链路状态型,直接使用IP数据报发送(作为IP数据报的数据部分)使用洪泛法通过所有输出端口向本AS内所有路由器发送信息时,封装为IPv4数据报目的地址为多播IPv4地址,不会发送给刚发送来信息的那个路由器,所有路由器都会建立链路状态数据库(全网拓扑结构)RIP虽然知道到所有网络的距离以及下一跳路由器,但不知道全网拓扑结构(只有到达下一跳才知道下下一跳)
将AS划分为更小的区域,各有一个32位的区域标识符。一个AS有唯一一个主干区域(标识符 0.0.0.0)其内称为主干路由器,且有一个自治系统边界路由器与其他AS相连,有多个区域边界路由器与本AS的其他区域相连
特点:(1)如果到同一个网络有多条相同代价(不同路由可以指派不同代价)可将通信量分配到多条路径进行负载均衡;(2)交换的分组具有鉴别功能(保证信赖交换);(3)支持CIDR和可变长的子网划分;(4)每个链路状态都带上一个32位的序号,序号越大越新(可能经常变化 )
五种分组类型:(1)问候HELLO分组(大多数 ):用于发现和维持邻站的可达性;(2)数据库描述分组DBD:向邻站发送自己链路状态数据库所有链路状态项目的摘要信息;(3)链路状态请求分组LSR:向对方请求某些链路状态的详细信息;(4)链路状态更新分组LSU(核心):只要有一个路由器的链路状态变化就需要更新分组洪泛更新 ;5)链路状态确认分组LSAck:用于对更新报文的确认
4.3 IP多播
D类地址前4位固定1110前八位十进制从224到239。多播数据报到达局域网时,由于局域网的硬件多播所以 不需要复制分组。对多播数据报不发送ICMP差错报文,因此使用PING不会受收到回应。并且路由器需要支持多播协议。

4.4 移动IP
移动IP是一种让移动主机在各网络之间漫游仍然能保证原IP地址不变的技术。

当移动站进入外地网络时,外地代理需要为移动站创建一个临时的转交地址。
注意:1.转交地址是供移动站,外地代理和·归属代理使用的,应用程序都不使用
2.转交地址不具有唯一性。外地代理可能为多个移动站分配一个转交地址甚至是自己的IP,但是当外地代理向连接在被访网络中移动站发送数据时,不会使用ARP,而是直接使用MAC地址,因为当移动站获取临时地址时,外地代理就会记录对应的MAC地址。


在外部网络中的移动站的通信需要借助外地代理,外地代理首先会记录移动站的永久地址,然后给移动站分配一个转交地址并向归属代理注册转交地址。此后其它网络所有发送给移动站的数据(目的地址为其永久地址)都会被归属代理接收处理,并使用IP隧道技术,将数据通过隧道根据转交地址发送给外地代理 ,然后外地代理根据MAC地址发送给移动站。同时这样会导致三角路由问题 即同属一个网络的移动站之间通信也需要先将数据发往归属代理再转交外地代理最后交付移动站,增加通信开销。
-
代理发现:移动结点如何知道自己在哪以及该找谁呢?它通过“代理发现”过程来实现。当移动结点进入一个新网络时,会监听或主动询问网络中的“外地代理”或路由器。这些代理会通过ICMP路由器通告报文宣告自己的存在和网络信息,移动结点由此判断自己是否处于外地网络,并获取转交地址 。
-
隧道技术:归属代理转发数据时使用的“IP隧道”技术,其本质是一种封装。它会将原始的IPv6数据报(目的地址是移动结点的归属地址)作为数据载荷,增加IPv4的首部即完整地封装到一个新的IPv4数据报中,这个新数据报的目的地址就是转交地址。外地代理或移动结点自身在收到后,会进行解封装,取出原始数据报 。
-
转交地址的类型:以上是默认外地代理和移动站是不同且转交地址是外地代理的地址。还有一种情况是“同址转交地址”,即移动结点通过DHCP等方式直接在外地网络获得一个临时IP地址作为自己的转交地址。此时,隧道的终点就是移动结点自身,不再需要外地代理的转发 。

五、传输层
伪首部:不论是TCP还是UDP,采用的都是因特网检验和作为差错控制的手段,在这一过程中,都需要添加12B的伪首部(仅作检验,不发送)。
“伪首部和普通首部的关系就是,TCP和UDP报文段本质是在进行端到端的传输,因此首部中只包含双方端口号,至于要交付的进程在哪个主机里应该由网络层的IP协议负责。但是发送过程中又确实可能存在由于某些原因交付到错误的主机的情况,因此需要加上伪首部方便接收方检查是不是自己的。但是检查所需的IP地址又确实只是网络层的内容,并没有实际跟随数据报进行传播,只会在检验时进行构建,所以就只是伪首部,接收方通过检验加上源/目的IP地址后计算的校验和是否正确来判断传送过程中是否递交给了错误的主机”
5.2 UDP

5.3 TCP

TCP的窗口单位是字节,不是报文段
TCP设置的4种计时器:
(1)超时计时器:保证可靠传输,需要超时重传:发送方只要一段时间未收到确认就认为是丢失了,因而重传前面发过的分组。为实现超时重传,每发送完一个分组时就设置一个超时计时器,如果到期(比数据在分组传输时的往返时间长一些)之前收到确认就撤销已设置的计时器。(快重传可以在收到三个冗余ACK时就立即重传无需等待超时计时器到期)
(2)持续计时器:流量控制,只要连接的一方收到对方的零窗口通知,就启动持续计时器,到期发送一个零窗口探测报文(仅携带1B数据),对方确认探测报时给出现在的窗口值,仍是0则重新设置计时器,不是打破死锁(零窗口后非零窗口报文丢失互相等待)。即使设置了零窗口,也必须接收:零窗口探测报文、确认报文、携带紧急数据(紧急位为1)的报文。
(3)时间等待计时器:连接关闭时,请求关闭连接方收到对方连接释放报文(由FIN-WAIT-2 变为 TIME-WAIT)对此报文发出确认时,需要设置2MSL(最长报文段寿命)的时间以保证最后一个ACK能到达
(4)保活计时器:连接双方中某一方突然故障,避免等待
TCP在请求关闭连接方在对FIN+ACK报文发出确认后还需等待2MSL的原因:
(1)确保请求关闭连接方对FIN+ACK的最后一个ACK能够到达。如ACK丢失 ,处在LAST_ACK的服务器收不到确认而重传,如果请求关闭方在2MSL内收到会重传ACK并复位2MSL;但如果没有2MSL,请求关闭方无法收到重传的LAST_ACK服务器无法 正常进入CLOSED
(2)避免旧的TCP报文对后续连接产生错误干扰.避免如上述的已失效的连接请求报文段出现在下次连接中
六、应用层
6.1 HTTP
HTTP特点:(1)使用TCP作为运输层协议,并使用80端口,本身是无连接的(传输报文之前没有建立HTTP连接的说法);(2)无状态的。即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次相同,使处理并发HTTP请求更容易;(3)面向文本。HTPP报文有两种(分开始行(不同)、首部行和实体主体(不一定有))分别是请求报文和响应报文,每一个字段都是ASCII码串长度不确定
HTTP/1.0(非持续连接):分为并行连接和非并行连接。对于非并行,每传送一个对象文件都需要建立一次 TCP连接(相当于一次TCP连接(1RTT)仅支持传送一个对象文件(1RTT),传完就断开,每个对象文件需2RTT)多次连接不仅会增加时间开销还会增加分配缓存和变量的开销;对于并行,相当于是对所需要传送的每个对象文件同时建立一个TCP连接,并行传送完后断开(有多少个对象文件就需要建立多少个TCP连接,由于是并行,所有对象文件的传送仅需2RTT)
HTTP/1.1(持续连接):分为流水线和非流水线。对于非流水线,客户在收到前一个响应后才可以发出下一个请求,故建立TCP连接后(1RTT),在同一个连接中,每个对象文件都需要1RTT,共(1+对象文件数)个 RTT;对于流水线,客户在收到响应报文之前可以接着发送新的请求,同样服务器也可以持续发回响应报文,此时在同一个TCP,传送所有对象文件仅需要1RTT,整个过程总共2RTT。
而对于HTTP2,与HTTP/1.1对比如下表
|
特性维度 |
HTTP/1.1 |
HTTP/2 |
|---|---|---|
|
传输格式 |
文本格式报文 |
二进制分帧,所有通信通过更高效的二进制帧进行 |
|
连接管理 |
持久连接,但可能存在队头阻塞(HOL Blocking) |
多路复用,单个连接上并行交错传输多个请求/响应,解决应用层队头阻塞 |
|
头部传输 |
纯文本头部,每次请求都携带完整的头部信息,冗余开销大 |
HPACK 头部压缩算法,通过静态表、动态表和霍夫曼编码大幅减少头部开销 |
|
服务器主动性 |
严格的请求-响应模式,服务器只能被动响应 |
支持服务器推送,服务器可主动向客户端推送预期所需的资源 |
|
请求优先级 |
无内置优先级机制,依赖浏览器自行优化 |
支持设置请求优先级,允许为重要的资源分配更高的带宽和优先处理权 |


本题综合考察了HTTP/1.1和TCP连接过程、慢启动过程,我的错误原因是没有考虑到的TCP建立连接后的慢启动过程,把图像文件的3MSS分三次发送所以得到5个RTT,但是慢启动第二个RTT时的发送窗口是2MSS就已经可以发送完全了 ,所以请求图像文件的时间仅需要2RTT,总计4RTT。
6.2 SMTP
SMTP只能传输ASCII编码,使用MIME将非ASCII数据转换为ASCII码也可以发送
传统邮件流程:如Outlook、Foxmail。这些软件自身就集成了SMTP和POP3/IMAP客户端功能。它们直接使用SMTP协议发送邮件,直接使用POP3/IMAP协议接收邮件,它们起到图中的用户代理的作用。用户在这些软件中编写好邮件后点击“发送”,然后接下来就是用户代理的工作了,用户代理作为SMTP客户端使用TCP端口25与邮件服务器建立TCP连接并将邮件发送,存入其缓存队列中等待处理,当SMTP邮件服务器检测到缓存中有邮件就与接收方SMTP邮件服务器建立TCP连接(不使用中间服务器,只是发送方和接受方两端建立连接,接收方回送220 Service Ready,发送方发送HELO命令如果接收方返回250 OK就可以发送了)。接收方收到后同样存在缓存中等待发送给接收用户代理,当收件方准备接受时通过POP3或IMAP协议与用户代理建立TCP连接从其缓存中“拉”出来。所以协议为:SMTP——SMTP——POP3

网页版邮箱流程:当用户使用的“用户代理”是浏览器。浏览器本身不直接处理SMTP/POP3这些邮件专用协议,它的主要语言是HTTP/HTTPS。所有与邮件相关的操作(发、收、管理)都通过HTTP协议与万维网邮件网站进行交互。而真正的SMTP/POP3通信,被转移到了网站的后台服务器上去完成。① 当A在网页上写好邮件点击“发送”时,浏览器并不是直接使用SMTP协议将邮件发送出去。而是将邮件内容(收件人、主题、正文等)作为一个HTTP请求(通常是POST请求)提交给网易的万维网服务器。② 邮件服务器间通信 (网易服务器 -> 谷歌服务器):传统流程使用SMTP。③谷歌的万维网服务器在后台会通过POP3或IMAP协议从B的邮箱中读取邮件列表和内容,然后将这些信息嵌入到一个HTML页面中,通过HTTP响应返回给用户B的浏览器显示。所以123处协议分别为:HTTP——SMTP——HTTP

POP3特点是用户读取文件后邮件服务器会立即将其删除不会保留
IMAP会一直保存在服务器中同时 允许用户在不同的地方使用不同的计算机读取自己在邮件服务器中的邮件并且可以只读取一部分,但是需要先联网
6.3 DHCP

6.4 FTP
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号21,服务器主进程监听到请求时,启动从属进程控制进程处理客户的请求,控制连接再整个会话期间都保持打开,收到客户发送数据请求时启动从属进程数据连接进程建立数据连接,传输完数据即关闭。控制连接和数据连接是两个并行的连接
两种建立数据连接的模式:(1)主动模式(PORT,默认):FTP客户端随机开放端口并通过命令通道(控制连接)告知服务器与该临时端口建立TCP连接,是服务器的端口20向客户端临时端口主动发起;(2)被动模式(PASV):FTP客户端通过命令通道告知服务器打开某个临时端口,被动等待客户端的连接
6.5 DNS 

七、无线局域网
无线局域网分为两种,有基础设施和没有基础设施的无线局域网
7.1 有基础设施的无线局域网

802.11标准规定最小构件是基本服务集BSS,一个基本服务集包括一个接入点AP和若干移动站。各站在本BSS内或者与外部节点的通信都必须通过本BSS的AP。当网路管理员安装AP时,必须为AP分配一个不超过32字节的字符串SSID(服务级标识符)和一个通信信道。AP在出厂时已经在ROM中固化了唯一的48位MAC地址基本服务级标识符BSSID。
一个基本服务集可以是孤立的,也可以通过AP连接到一个分配系统DS,再与其他服务集连接构成一个ESS(扩展服务集)有一个不超过32字符的ESSID。分配系统还可以通过门户设备(相当于是网桥)与以太网和其他802.x的网络连接。AP出厂时还会嵌入一个DHCP模块,当移动站与AP建立关联时可以发送DHCP DISCOVER 报文获取IP地址。
移动站与AP建立关联的方式:
(1)被动扫描
1. AP 周期性发出信标帧 (beacon frame),其中包含 SSID 、速率等系统参数。
2. 移动站 A 扫描 11 个信道,选择加入到 AP2 所在的基本服务集 BSS2,向 AP2 发出关联请求帧 (Association Request frame)。
3. AP2 同意移动站 A 发来的关联请求,向移动站A发送关联响应帧 (Association Response frame)。
(2)主动扫描
1. 移动站 A 主动发出广播的探测请求帧 (Probe Request frame),让所有能够收到此帧的接入点知道有移动站要求建立关联。
2. 两个 AP 都回答探测响应帧 (Probe Response frame)。
3. 移动站 A 向 AP2 发出关联请求帧 (Association Response frame)。
4. AP2 向移动站 A 发送关联响应帧,与移动站 A 建立关联。
7.2 无基础设施的移动自组网络
区别在于:所有移动站都是转发节点具有路由功能,无需AP(所以范围受限)
移动自组网络和移动IP是不同的:移动IP的核心网络功能仍然是基于固定在互联网中的各种路由选择协议,而移动自组网则是无线局域网有着自己的路由选择协议并且可以不和互联网相连。
7.3 CSMA/CA
为了避免“隐蔽站”问题,所以需要类似CSMA/CD的协议,但是由于无线局域网物理层的限制,无线网卡不能检测到冲突即使能也不能检测到隐蔽站的冲突,所以引入CSMA/CA尽可能避免冲突。

推迟接入和退避的区别:当信道被其他站点占用传送数据时(忙),为了避免冲突(CA),其他站点此时需要推迟接入,直到DIFS内信道空闲。如果允许所有争用信道的站点直接发送势必会造成数据冲突,所以需要采用退避,让不同站点随机等待一定时隙再接入信道发送数据。换句话说,推迟接入发生在检测到信道忙时避免与正在发送数据的站点的冲突,退避则是当 信道空闲时为避免与其他也要发送数据的站点冲突。
由此可以看出,当站点想要发送数据只需要经过DIFS就可以发送无需等待争用期,但是一些情况需要等待 争用期:
(1)要发送数据时检测到信道忙;
(2)已发出数据未收到确认需要重传;
(3)已发送数据的站点想要接着发送后续的数据,为避免一个站长期垄断发送权,则不管有无信道竞争都必须进入争用期。
信道预约(不是必须)—— 在 RTS帧中附上NAV(RTS):“SIFS + CTS + SIFS + DATA + SIFS + ACK”;在 CTS 帧中附上NAV(CTS):“SIFS + DATA + SIFS + ACK”,在DATA帧中附上NAV(DATA):“DATA + SIFS + ACK”

7.3 无连接可靠的802.11MAC
可靠是因为存在ACK重传机制

(1)MAC首部:30B;(2)帧数据部分:<= 2312B;(3)帧尾检验序列FCS:4B
最重要的地址字段:(1)地址1:无线信道链路接收方MAC地址;(2)地址2:无线信道链路发送方的MAC地址;(3)地址3:如果AP发到目的即来自AP=1,则填真正的源地址;如果是源发送到AP即去往AP=1,则填真正的目的地址;如下表。


更多推荐




所有评论(0)