本系列文章为湖南科技大学高军老师的计算机 络微课堂学习笔记,前面的系列文章链接如下:
计算机 络:P1-概述
计算机 络:P2-物理层
计算机 络:P3.1-数据链路层(上)
计算机 络:P3.2-数据链路层(中)
计算机 络:P3.3-数据链路层(下)
计算机 络:P4.1- 络层(上)
计算机 络:P4.2- 络层(中)
文章目录
- 七、IPv4数据 的首部格式
- 八、 际控制 文协议ICMP
- 九、虚拟专用 VPN与 络地址转换NAT
- 十、软件定义 络SDN
七、IPv4数据 的首部格式
IPv4数据 的首部格式
为了简单起见,之后我们将IPv4数据 简称为IP数据 ,而不指出版本 。IP数据 的首部格式及其内容是实现IP协议主要功能的基础。因此,我们有必要搞清楚这部分内容。如图所示,这是IP数据 的首部格式。
首部长度字段
该字段占4个比特,用来表示IP数据 首部的长度。该字段的取值以4字节为单位,最小十进制取值为5,表示IP数据 首部只有20字节的固定部分。最大十进制取值为15,表示IP数据 首部包含20字节的固定部分和最大40字节的可变部分。
填充字段
该字段用来确保首部长度为4字节的整数倍,使用全0进行填充。我们之前刚刚介绍过,首部长度字段是以4字节为单位的。换句话说,IP数据 的首部长度一定是4字节的整数倍。由于首部中的可选字段的长度从1个字节到40个字节不等,那么当20字节的固定部分加上1到40个字节长度不等的可变部分,会造成首部长度不是4字节的整数倍时,就用取值为全0的填充字段填充相应的字节,以确保IP数据 的首部长度是4字节的整数倍。
总长度字段
该字段占16个比特,用来表示IP数据 的总长度,也就是首部和数据载荷的长度总和。最大取值为十进制的65535,以字节为单位。需要注意的是,在实际应用中很少传输这么长的IP数据 。
生存时间字段
该字段占8个比特,最初以秒为单位,最大生存周期为255秒。路由器转发IP数据 时,将IP数据 首部中的该字段的值减去IP数据 在本路由器上所耗费的时间。若不为0就转发,否则就丢弃。现在以跳数为单位。路由器转发IP数据 时,将IP数据 首部中的该字段的值减1。若不为0就转发,否则就丢弃。
协议字段
该字段占8个比特,用来指明IP数据 的数据部分是何种协议数据单元。
首部检验和字段
该字段占16个比特,用来检测IP数据 首部在传输过程中是否出现差错。所采用的检错码比循环冗余检错码简单,称为因特 检验和,我们就不再赘述了,有兴趣的同学可自行查阅相关资料。IP数据 每经过一个路由器,路由器都要重新计算首部检验和。因为某些字段,例如生存时间、标志、片偏移等的取值可能会发生变化。由于IP层本身并不提供可靠传输的服务,并且计算首部检验和是一项耗时的操作。因此,在IPV6中,路由器不再计算首部检验和,从而更快转发IP数据 。
例题
【2018年题47】某公司 络下图所示。IP地址空间192.168.1.0/24被均分给销售部和技术部两个子 ,并已分别为部分主机和路由器接口分配了IP地址,销售部子 的MTU=1500B,技术部子 的MTU=800B。
(2)假设主机192.168.1.1向主机192.168.1.208发送一个总长度为1500B的IP分组,IP分组的头部长度为20B,路由器在通过接口F1转发该IP分组时进行了分片。若分片时尽可能分为最大片,则一个最大IP分片封装数据的字节数是多少少需要分为几个分片个分片的片偏移量是多少br>
例题
【2011年题47】题47-a图是 络拓扑,题47-b图是主机进行Web请求的1个以太 数据帧前80个字节的十六进制及ASCII码内容。
(1)Web服务器的IP地址是什么主机的默认 关的MAC地址是什么br> (4)该帧所封装的IP分组经过路由器R转发时,需修改IP分组头中的哪些字段。
源点抑制
当路由器或主机由于拥塞而丢弃数据 时,就向源点发送源点抑制 文,使源点知道应当把数据 的发送速率放慢。
例子: H1给H2发送IP数据 。当该数据 传输到路由器R20时,由于R2拥塞,也就是R2比较繁忙。R2根据自己的丢包策略,丢弃了该数据 ,并向发送该数据包的源主机H1发送ICMP差错 告 文,其类型为源点抑制。
时间超过
当路由器收到一个目的IP地址不是自己的IP数据 时,会将其生存时间TTL字段的值减1。若结果不为0,则将数据 转发出去。若结果为0,除丢弃该数据包外,还要向源点发送时间超过 文。
例子: 某个生存时间等于2的IP数据 传输到了路由器R1。R1将其生存时间减1后,结果是1。这表明该数据 的生存时间还没有结束,R1将其转发出去。当该数据 传输到路由器R2后,R2将其生存时间减1后,结果是0。这表明该数据 的生存时间结束了,R2丢弃该数据 ,并向发送该数据包的源主机H1发送ICMP差错 告 文,其类型为时间超过。
改变路由
路由器把改变路由 文发送给主机,让主机知道下次应将数据 发送给另外的路由器,这样可以通过更好的路由。
例子: 假设我们给主机H1指定的默认 关是路由器R1,则H1要发往 络N2的IP数据包都会传输给R1,由其帮忙转发。当R1发现H1发往N2的数据 的最佳路由不应当经过R1,而是应当经过R4时,就用改变路由 文把这个情况告诉主机。于是,H1就在自己的路由表中添加一个项目,到达N2应经过路由器而似而不是默认 关R1。之后,H1要发往N2的IP数据包都会传输给R4,由其帮忙转发。
小测验
1、下列关于ICMP 文的说法中,错误的是
A. ICMP 文直接封装在链路层帧中发送
B. ICMP 文可用于 告IP数据 的传输错误
C. ICMP 文需要封装在IP数据 中发送
D. ICMP 文本身出错将不再处理
答案:A
2、以下关于ICMP差错 告 文的描述中,错误的是
A. 对于已经携带ICMP差错 告 文的IP数据 ,不再产生ICMP差错 告 文
B. 对于已经分片的IP数据 ,只对第一个分片产生ICMP差错 告 文
C. PING使用了ICMP差错 告 文
D. tracert使用了ICMP回送请求和回答 文以及差错 告 文
答案:C
3 、若某个路由器收到TTL值为1的IP数据 ,则
A. 转发该IP数据
B. 仅仅丢弃该IP数据
C. 丢弃该IP数据 并向发送该IP数据 的源主机发送类型为终点不可达的ICMP差错 告 文
D. 丢弃该IP数据 并向发送该IP数据 的源主机发送类型为时间超过的ICMP差错 告 文
答案:D
九、虚拟专用 VPN与 络地址转换NAT
虚拟专用 VPN(Virtual Private Network)的基本工作原理
例子: 假设这是某机构部门A的局域 ,这是该机构部门B的局域 。部门A的局域 位于北京,部门B的局域 位于上海。那么,如何才能让这两个专用 络可以通信呢br>
OpenFlow协议与SDN体系结构的关系
OpenFlow协议是一个得到高度认可的标准。在讨论SDN时,往往与OpenFlow一起讨论。OpenFlow协议可被看成是SDN体系结构中控制层面与数据层面之间的通信接口。如图所示,这是SDN体系结构中的控制层面和数据层面,OpenFlow协议是控制层面与数据层面之间的通信接口。OpenFlow协议使得控制层面的控制器可以对数据层面中的物理设备进行直接访问和控制。OpenFlow协议的技术规范由非盈利性的产业联盟开放 络基金会ONF负责制定。ONF的任务是致力于SDN的发展和标准化,但并未规定必须使用OpenFlow。只不过大部分SDN产品采用了OpenFlow作为其控制层面与数据层面的通信接口。OpenFlow从2009年底发表的1.0版开始,每年都被更新,历经12次更新,到2015年3月发布了1.5.1版。目前较为成熟的是1.3版本。
根据这条转发规则,SDN远程控制器应该给OpenFlow交换机S1设置这样的流表项:
—-在匹配中的源IP地址等于,表明左起前3个十进制数分别为10.0.1的任何IP地址。主机H1和H2的IP地址都是其中的地址。同理,目的IP地址等于,表明左起前3个十进制数分别为10.0.2的任何IP地址。主机H3和H4的IP地址都是其中的地址。
—-在动作中的表明,Open声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!