| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络(九)网络层详解 -> 正文阅读 |
|
[网络协议]计算机网络(九)网络层详解 |
网络层的功能? ? ? ? 1.路由选择与分组转发(选择最佳路径) ? ? ? ? 2.异构网络互联(不同类型的网络:4G、WIFI等) ? ? ? ? 3.拥塞控制(所有结点都处于高负荷不得不大量丢弃分组,采取手段缓解) ? ? ? ? ? ? ? ? 开环控制(静态) ? ? ? ? ? ? ? ? 闭环控制(动态) 数据交换方式? ? ? ? 交换网络:由大量路由器组合的网络 ? ? ? ? 电路交换? ? ? ? ? ? ? ? 例:电话网络 ? ? ? ? ????????步骤:建立连接(呼号/电路连接)->通信->释放连接(拆除电路) ? ? ? ????????? 特点:独占资源 ? ? ? ? ? ? ? ? 优点:1.通信时延小、2.有序传输、3.没有冲突、4.实时性强 ? ? ? ? ? ? ? ? 缺点:1.建立连接时间长、2.线路独占,效率低、3.灵活性差、4.无差错控制 ? ? ? ? 报文交换? ? ? ? ? ? ? ? 优点:1.无需建立连接、2.存储转发,动态分配线路、3.线路可靠性较高、4.线路利用率较高、5.多目标服务 ? ? ? ? 分组交换? ? ? ? ? ? ? ? 分组:把大的数据报文切割为小的数据块(分组) ? ? ? ? ? ? ? ? 优点:1.有报文交换的全部优点、2.存储更易管理(相对于报文交换) ? ? ? ? ? ? ? ? 缺点:1.有存储转发时延、2.需要传输额外的信息量、3.乱序到达目的主机,需要进行重新排序????????(总体时延小于报文交换) ? ? ? ? ? ? ? ? Attion!? ? ? ? 1 Byte(B-字节)=8 bit(b-比特) 、1 Mbps=10^3 kbps=10^6 bps ? ? ? ? 总结? ? ? ? ? ? ? ? 1.报文交换和分组交换都采用了存储转发 ? ? ? ? ? ? ? ? 2.传送数据量大,且传送时间远大于呼叫时间,选择电路交换。电路交换传输实时延最小(不需要存储转发) ? ? ? ? ? ? ? ? 3.从信道利用率来看,报文交换和分组交换优于电路交换,其中分组交换时延更小 ? ? ? ? 数据报方式:无连接服务? ? ? ? ? ? ? ? 每个分组都携带源地址和目的地址 ? ? ? ? ? ? ? ? 根据路由协议/算法构建转发表;检索转发表;每个分组独立选路 ? ? ? ? 虚电路方式:连接服务? ? ? ? ? ? ? ? 一种逻辑上的连接,虚电路上的每个结点都维持一张虚电路表 路由算法和路由协议? ? ? ? 路由算法 ? ? ? ? ? ? ? ? 静态路由算法:管理员手工配置网络 ? ? ? ? ? ? ? ? 动态路由算法(自适应)路由器之间彼此交换信息,按照路由算法优化出路由表项 ? ? ? ? ? ? ? ? ? ? ? ? 全局性:OSPF(知道全局网络拓扑) ? ? ? ? ? ? ? ? ? ? ? ? 分散性:RIP(只掌握相邻的链路拓扑) ? ? ? ? 分层次的路由选择协议 ? ? ? ? ? ? ? ? 自治AS ? ? ? ? ? ? ? ? 内部网关协议IGP ? ? ? ? ? ? ? ? 外部网关协议BGP TCP/IP协议栈? ? ? ? ?IP数据报格式? ? ? ? ? ? ? ? ? ? ? ? ?固定部分的长度为固定的20字节 ? ? ? ? ? ? ? ? ? ? ? ? ?首部长度的单位是4Byte(例如首部长度为5,则其表示的为5X4B=20B,取值范围为5-15) ? ? ? ? ? ? ? ? ? ? ? ? ?总长度:首部+数据(单位是1B,最大为65535B) ? ? ? ? ? ? ? ? ? ? ? ? ?协议字段不同于版本字段,指的是数据部分使用的协议 ? ? ? ? ? ? ? ? ? ? ? ? ?首部检验和:只检验首部 ? ? ? ? ? ? ? ? ? ? ? ? ?可选字段的长度为0-40B,不4B对其的数由填充字段补齐 ????????数据报的分片? ? ? ? ? ? ? ? ? ? ? ? 标识位:同一数据报使用同一标识 ? ? ? ? ? ? ? ? ? ? ? ? 标志位? ? ? ? 中间位DF=1禁止分片、DF=0允许分片 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?最低位MF=1“还有分片”、MF=0没有分片? ? ? ? ? ? ? ? ? ? ? ? ? 片偏移:分片后分组在原分组中的相对位置,以8B为单位 ? ? ? ? IPv4地址? ? ? ? ? ? ? ? ? ? ? ? 分类的IP地址? ? ? ? ? ? ? ? A类:1~126 ? ? ? ? ? ? ? ? 环回地址:127(用于软件环回测试) ? ? ? ? ? ? ? ? B类:128~191 ? ? ? ? ? ? ? ? C类:192~223 ? ? ? ? ? ? ? ? ? ? ? ? 私有IP地址与NAT转换? ? ? ? ? ? ? ? A类:10.0.0.0~10.255.255.255 ? ? ? ? ? ? ? ? B类:172.16.0.0~172.31.255.255 ? ? ? ? ? ? ? ? C类:192.168.0.0~192.168.255.255 ? ? ? ? ? ? ? ? ????????路由器不会转发目的地址是私有IP地址的数据报 ? ? ? ? ? ? ? ? ? ? ? ? 主机发送的数据报到达NAT后,首部中的源IP地址和端口号会依据NAT转换表替换成路由器IP地址和端口号 ? ? ? ? ? ? ? ? ? ? ? ? 子网的划分? ? ? ? ? ? ? ? 子网掩码 ? ? ? ? ? ? ? ? ? ? ? ? ?将子网掩码与IP地址逐位取与,得到子网网络号:145.13.3.0 ? ? ? ? ?解析:子网掩码255.255.252.0对应前16位都是1(网络号),用IP地址与子网掩码按位取与得到结果:180.80.76.0(其中76是由77->010011 01取前6位得到的) ? ? ? ? ? ? ? ? 又由于需要发送广播,故剩下的主机号应该全部为1(010011 11->79) ? ? ? ? ? ? ? ? 结果是180.80.79.255,选D ? ? ? ? ? ? ? ? ? ? ? ? 构成超网? ? ? ? 如 128.14.32.0/20表示网络前缀长度为20--子网掩码前20位为0 ? ? ? ? 构成超网:将网络前缀缩短,使得多个子网聚合成一个较大的子网 ? ? ? ? 例如:206.1.0.0/17 + 206.1.128.0/17 = 206.1.0.0/16 ? ? ? ? 最长网络前缀匹配:选择路由表中匹配结果中前缀最长的那一跳。(前缀长=包含的地址块小) ? ? ? ? ?网络前缀为24位,可以得出其使用最后8位用于划分子网,同时由其掩码可知,其最后8位中前5位是子网号,后3位是主机号 ? ? ? ? 最大子网个数=2^5=32个? ? ? ? ? ? ? ? 最大可分配地址为:2^3-2=6 IPv6? ? ? ? IPv6数据报格式:基本首部+有效载荷(选项+数据部分,选项包括各种扩展首部) ? ? ? ? ?IPv6首部格式(基本首部40B)? ? ? ? ? ? ? ? ?流标签:属于同一个流的数据报具有同样的流标签 ? ? ? ? ? ? ? ? ?下一个首部:标识下一个扩展首部或上层协议首部(报文段)(扩展首部中也有) ? ? ? ? IPv6的区别? ? ? ? ? ? ? ? ?IPv6的地址位扩大到了128位(16B) ? ? ? ? ? ? ? ? ?IPv6彻底移出了校验和,使得每一跳的处理时间减少 ? ? ? ? ? ? ? ? ?IPv6支持即插即用(自动配置),无需使用DHCP协议 ? ? ? ? ? ? ? ? ?IPv6首部长度为8B的整数倍,IPv4的首部为4B的整数倍 ? ? ? ? ? ? ? ? ?IPv6只能在主机处分片,而IPv4还可以在路由器分片(ICMPv6--“分组过大”--不允许路由器分片) ? ? ? ? ? ? ? ? ?IPv6支持资源预分配 ? ? ? ? ? ? ? ? ?IPv6取消了总长度字段改为有效载荷字段(首部和数据报长度合二为一) ? ? ? ? ? ? ? ? ?IPv6取消了服务类型字段 ? ? ? ? IPv6的地址? ? ? ? ? ? ? ? 单播:一对一,可以作为源地址和目的地址 ? ? ? ? ? ? ? ? 多播:一对多,仅可作为目的地址 ? ? ? ? ? ? ? ? 任播:对一个多播组内的一个用户发送,仅能作为目的地址(一般是最近的地址) ? ? ? ? IPv6和IPv4的过渡? ? ? ? ? ? ? ? 双栈技术:同时启用两个协议栈、互相转换 ? ? ? ? ? ? ? ? 隧道协议:重新封装 ? ? ? ? IPv6组播 ????????????????发送者仅发送一次数据,利用组播路由协议为其建立组播分发树,数据传输到终点才会开始分发和赋值 ? ? ? ? ? ? ? ? ?组播组成员即可以在同一局域网内,也可以在不同局域网内,需要路由器支持组播协议 ? ? ? ? ? ? ? ? 组播地址:属于多播组的设备将会被分配一个组播组IP地址(相同标识符) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 范围:224.0.0.0~239.255.255.255(D类地址) ? ? ? ? ? ? ? ? ????????组播数据报是不可靠交付,应用于UDP ? ? ? ? ? ? ? ? ????????组播数据报不会产生ICMP差错报文 ? ? ? ? ? ? ? ? ????????不是所有D类地址都能作为组播地址 ? ? ? ? ? ? ? ? 硬件组播 ? ? ? ? ? ? ? ? ? ? ? ? 组播MAC地址以01-00-5E开头 ? ? ? ? ? ? ? ? ? ? ? ? 收到组播数据报的主机还需要在软件层进行过滤,不属于本机要接收的组播数据报要丢弃 ? ? ? ? ? ? ? ? ?实现组播需要:IGMP协议和组播路由选择协议 路由器? ? ? ? ?三层设备的区别 ? ? ? ? ? ? ? ? 路由器:可以互联两个不同网络层协议的网段 ? ? ? ? ? ? ? ? 网桥:可以互联两个物理层和链路层不同的网段 ? ? ? ? ? ? ? ? 集线器:不能互联两个物理层的不同网段 ? ? ? ? ?路由表 ? ? ? ? ? ? ? ? ?路由表可以得出转发表:转发表每一列都包含输出端口和某些MAC地址功能的映射 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:50:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |