目录
封装类协议
链路层
局域网:以太网
广域网:PPP,HDLC,帧中继
帧中继(FR)
HDLC(High Level Data Link Control,高级数据链路控制)
PPP协议
网络层(IP)
IPv4报文格式
IPv6报文格式
传输层(TCP/UDP)
TCP/UDP端口号
TCP序列号
TCP三次握手建立连接
TCP的4次握手
TCP的滑动窗口机制
动态路由协议
RIP(Routing Information Protocol,路由信息协议)
OSPF(Open Shortest Path First,开放式最短路径优先协议)
BGP (Border Gateway Protocol,边界网关协议)
以太网帧格式
注
•目的地址,源地址指的是MAC地址
•数据字段的MTU(最大传输单元):1500
补充:
100M以太网
1000M以太网
•帧中继在第二层建立虚链路,提供虚链路服务,本地标识DLCI
•基于分组交换的透明传输,可提供面向连接的服务
•只做检错和拥塞控制,没有流控和重传机制,开销很少
•既可以按需要提供带宽,也可以应对突发的数据传输(CIR承诺速率 EIR:扩展速率)
•帧长可变,,长度可达1600-4096字节,可以承载各种局域网的数据帧
•可以达到很高的速率,2-45Mbps
•不适合对延迟敏感的应用(语音、视频)
•数据的丢失依赖于运营商对虚电路的配置
•不保障可靠的提交
FR的分组交换方式为虚电路方式,其余两者为ATM和X.25,这里不做细致讲解,可以看这篇:
http://t.csdnimg.cn/3BCM4
是一种面向位(比特)的数据链路层控制协议
通常使用CRC-16、CRC-32校验,帧边界“01111110”
HDLC三种类型帧:
•信息帧(I帧)用于传送用户数据;
•监控帧 (S帧)用来差错控制和流量控制;
•无编号帧(U 帧)用于提供对链路的建立、拆除以及多种控制功能。
例题:
答案:C
解析:
REJ用于后退N帧ARQ流控方案,SREJ帧用于选择重发ARQ流控方案
当发送站发送了编号为0,1,2,3,4的5帧时,收到了对方应答帧REJ3,此时发送站应从编号为3的帧重新发送后续的帧:3,4,5;若收到对方应答为SREJ3,则重新发送编号为3的帧,以及后续5,6帧,即3,5,6
PPP协议是一种点到点(一根链路两端只有两个接口)链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。
•PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
•PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
•PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
•PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
•PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
•无重传机制,网络开销小,速度快。
PPP的报文格式
1、Flag域:标识一个物理帧的起始和结束,该字节为二进制序列01111110(0X7E);
2、Address 域:字节固定为11111111 (0XFF),是一个广播地址;
3、Control 域:默认为00000011(0X03),表明为无序号帧;
4、Protocol字段:用来说明PPP所封装的协议报文类型;
典型的字段值有:0XC021代表LCP报文,0XC023代表PAP报文,0XC223代表CHAP报文。如果协议字段被设为0XC021,则说明通信双方正通过LCP报文进行PPP链路的协商和建立:
5、information字段:包含协议字段中指定协议的数据包。
•Code字段,主要是用来标识LCP数据报文的类型。
典型的报文类型
配置信息报文(Configure Packets: 0x01)
配置成功信息报文(Configure-Ack: 0X02)
终止请求报文(Terminate-Request:0X05)。
•Identifier域为1个字节,用来匹配请求和响应。
•数据字段的默认最大长度(不包括协议字段)称为最大接收单元MRU(Maximum Receive Unit),MRU的缺省值为1500字节。
6、帧校验序列(FCS):是个16位的校验和,用于检查PPP帧的完整性。
PPP链路建立状态机
Dead阶段:也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。
Establish阶段:PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。
Authenticate阶段:多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。
Network阶段:PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。NCP协商成功后,PPP链路将保持通信状态。
PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。
更加详细的知识点可以看:
10张图带你搞懂数据链路层PPP点到点协议 - 知乎 (zhihu.com)
例题
为了控制IP数据报在网络中无限转发,在IPV4数据报首部中设置了 (27)字段
A标识符 B.首部长度 C生存期 D.总长度
答案:C
IP数据报的分段和重装配要用到报文头部的报文ID.数据长度、段偏置值和M标志4个字段,其中(23)的作用是指示每一分段在原报文中的位置,若某个段是原报文的最后一个分段,其(24)值为“0”(23)A段偏置值 B.M标志 C.报文ID D.数据长度
(24)A段偏置值 B.M标志 C.报文ID D.数据长度
答案:A,B
P数据报首部中IHL(Internet首部长度)字段的最小值为(65)
A.5 B.20 C.32 D.128
答案 A
解析:
首部长度占4位,单位为4字节,可表示最小值是5,最大值为15;
最小为5,即5x32bit=160bit=20字节
最大为15,表示15x32bit=480bit=60字节
例题:
若主机采用以太网接入Internet,TCP段格式中,数据字段最大长度为 (24)字节
A.20
B.1460
C.1500
D.65535
答案:B
解析:TCP报头20个字节,IP报头20个字节
补充:
UDP头部是8个字节
TCP头部是8个字节
IP头部是20~60字节
FTP 21控制端口,20数据端口
SNMP 161 162
OSPF封装在IP中
RIP封装在UDP的520中
BGP封装在TCP中
动态路由协议的分类
•距离天量路由协议
•计算跳数: 最大15跳,16跳不可达,一般用于小型网络
•几个时钟:30s周期性更新路由表、180s无更新表示不存在、240s删除路由表
•支持等价负载均衡和链路冗余,使用UDP的520端口
RIPv1和RIPv2的区别
距离矢量路由协议
使用距离矢量路由协议的路由器并不了解网络的拓扑,该路由器只知道
•自身与目的网络之间的距离
•应该往哪个方向或哪个接口转发数据包
距离矢量路由选择协议的特点
•周期性地更新(广播)整张路由表
•RIP以条数作为度量值,虽然简单,但事实不科学,例如
•RIP路由表
•路由优先级
RIP的防环机制
•最大跳数:当一个路由条目发送出去会自加1跳,跳数最大为16跳,意味着不可达
•水平分割:一条路由信息不会发送给信息的来源
•反向毒化的水平分割: 把从邻居学习到的路由信息设为16跳,再发送给那个邻居
•抑制定时器和触发更新也可以防止环路
RIP协议总结
•RIP (Routing Information Protocols,路由信息协议)
•应用较早、使用较为普遍的内部网关协议
•适用于小型网络,是典型的距离矢量路由协议
•RIP基于UDP,端口520
•华为设备上路由优先级为100
•OSPF是一种链路状态路由协议,在RFC 2328中描述
•Open意味着公有,任何厂商都能支撑OSPF,目前业内使用最广泛的IGP
•在华为设备上,OSPF协议优先级Internal 10,External 150;
•路由器之间交互的是链路状态信息,而不是直接交互路由
•每台OSPF路由器都知晓网络拓扑结构,采用SPF算法(迪杰斯特拉算法)计算达到目的地的最短路径
•支持VLSM,支持手工路由汇总
OSPF的基本特点
•适应范围广:支持各种规模的网络
•快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步
•无自环:使用SPF最短路径树算法进行路由计算,不会产生环路
•区域划分:允许网络被划分成区域来管理,链路状态数据库仅需和区域内其他路由器保持一致。减小对路由器内存和CPU的消耗。同时区域间传送的路由信息减小,降低网络带宽占用。
Router ID
•Router ldentifier,路由器标示符,用于在一个OSPF域中唯一地标识一台路由器,每台运行OSPF的路由器具备Router-ID。
•相同OSPF域内,禁止出现两台路由器有相同RouterlD
•OSPF Router-ID可以通过手工配置的方式,或使用自动获取的方式。
自动选取的机制是:若路由器存在loopback接口,则选最大的loopback接口IP地址,若无,则选活跃的物理接口中IP地址最大的作为RouterlD(实际项目手工配置)。
Router-ID值遵循稳定第一的原则,不会抢占。如果需要更新RouterlD:
•重配地址: Undoip address
•重启进程: Reset ospf process
OSPF Cost
•OSPF使用Cost“开销”作为路由度量值。
•OSPF接口cost=100M/接口带宽,其中100M为OSPF参考带宽(reference-bandwidth),可修改。
•每一个激活OSPF的接口都有一个cost值。
•一条OSPF路由的cost由该路由从起源一路到达本地的所有入接口cost值的总和。
OSPF区域概念
•所有非骨干区域必须与骨干区域直连(OSPF的骨干区域是0)
OSPF路由器角色
OSPF总结
•OSPF(Open Shortest Path First,开放式最短路径优先协议)内部网关协议,链路状态路由议,通过连通性、距离、时延、带宽等状态计算最佳路径,采用Dijkstra算法(也叫SPF算法)
•Area 0.0.0.0或者Area 0来表示,不是区域1
•点对点网络上每10秒发送一次hello,在NBMA网络每30秒发送一次,Deadtime为hello时间4倍
OSPF系统内几个特殊组播地址:
•224.0.0.1---在本地子网的所有主机
•224.0.0.2----在本地子网的所有路由器
•2240.0.5----运行OSPF协议的路由器
•224.0.0.6----0SPF指定/备用指定路由器DR/BDR
•目标地址224.0.0.5指所有路由器,用于发现建立邻居、还用于选出区域内的指定路由器DR和备份指定路由器BDR(DR/BDR组播地址是224.0.0.6)。
注:RIPv2也是组播更新:224.0.0.9
•外部网关协议,用于不同自治系统ABGP寻找最佳路由。
•通过TCP179端口建立连接。支持VLSM和CIDR,是一种路径矢量协议(RIP是距离矢量协议)。目前最新版本是BGP4而BGP4+支持IPV6。
•Open建立邻居关系,Keepalive周期性探测邻居存活。每一个自治系统要选择至少一个路由器作为该自治系统的“BGP发言人”。支持增量更新,支持认证。可靠传输,防止环路。自治通信策略选路。支持无类、支持聚合。
BGP的四种报文