| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络学习笔记(7)---网络层、虚电路网络、数据报网络、IP协议、DHCP(动态主机配置协议)、NAT(网络地址转换) -> 正文阅读 |
|
[网络协议]计算机网络学习笔记(7)---网络层、虚电路网络、数据报网络、IP协议、DHCP(动态主机配置协议)、NAT(网络地址转换) |
目录 1.1 网络层---从发送主机向接收主机传送数据段(segment) 1.2 虚电路网络(virtual-circuit network) ?1.5 IP协议(3)---IP编址(addressing) ?1.6 IP协议(4)---有类IP地址(Addresses) ?1.9 DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 1 网络层1.1 网络层---从发送主机向接收主机传送数据段(segment)(1)发送主机:将数据段(segment)封装到数据报(datagram)中; (2)接收主机:向传输层交付数据段(segment); 1、每个主机和路由器都运行网络层协议 2、路由器检验所有穿越它的IP数据报的头部域:决策如何处理IP数据报; 3、网络层的核心功能------转发(forwarding)与路由 ?4、网络层核心功能------连接建立 ? ?5、网络层服务模型 (1)无连接服务(connection-less service)---数据报网络(datagram network) a、不是先为系列分组的传输确定传输路径; b、每个分组独立确定传输路径; c、不同分组可能传输路径不同; (2)连接服务(connection service)---虚电路网络(virtual-circuit network) a、首先为系列分组的传输确定从源到目的经过的路径(建立连接); b、然后沿该路径(连接)传输系列分组;系列分组传输路径相同 c、传输结束后拆除连接; 1.2 虚电路网络(virtual-circuit network)1、连接服务与无连接服务 (1)数据报(datagram)网络与虚电路(virtual-circuit)网络是典型的两类分组交换网络; (2)数据报网络提供网络层无连接服务;虚电路网络提供网络层连接服务; (3)类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务: 主机到主机的服务、网络核心实现 2、虚电路(virtual circuits) (1)通信过程:呼叫建立(call setup)->数据传输->拆除呼叫; (2)每个分组携带虚电路标识(VC ID),而不是目的主机地址; (3)虚电路经过的每个网络设备(如路由器),维护每条经过它的虚电路连接状态; (4)链路、网络设备资源(如带宽、缓存等)可以面向虚电路VC进行预分配; 3、VC虚电路的具体实现 (1)每条虚电路包括: a、从源主机到目的主机的一条路径;b、虚电路号(VCID),沿路每段链路一个编号; c、沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路; (2)沿某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址; (3)同一条VC在每段链路的VCID通常不同---路由器转发分组时依据转发表改写/替换虚电路号; 4、VC(虚电路)转发表---VC路径上的每个路由器都需要维护VC连接的状态信息! ?5、虚电路信令协议(signaling protocols) (1)用于VC的建立、维护与拆除----路径选择; (2)应用于虚电路网络---如ATM、帧中继(frame-relay)网络等; (3)目前Internet不采用; ?1.2 数据报网络(datagram)1、数据报网络特点 (1)网络层无连接;(2)每个分组携带目的地址; (3)路由器根据分组的目的地址转发分组; a、基于路由协议/算法构建转发表;b、检索转发表;c、每个分组独立选路 2、数据报转发表 (1)路由算法(协议)确定通过网络的端到端路径;转发确定在本路由器如何转发分组; ? ?(2)最长前缀匹配优先 ? 在检索转发表时,优先选择与分组目的地址匹配前缀最长的入口(entry);? ?3、数据报网络 or VC网络? ? ?1.3 IP协议(1)---IP数据报?1、Internet网络层 ? ?2、IP数据报(分组)格式 (每行4个字节32个比特位,固定部分就有5行,20个字节) (1)版本号:字段占4位,IP协议的版本号,例如4->IPv4;6->IPv6; (2)首部长度:4位,IP分组首部长度;以4字节为单位,例如5->IP首部长度为20(5*4)字节 (3)服务类型(TOS):字段占8位,指示期望获得哪种类型的服务; a、1988年这个字段改名为区分服务;只有在网络提供区分服务(DiffServ)时使用; b、一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H; ?(4)总长度:字段占16位,IP分组的总字节数(首部+数据); a、最大IP分组的总长度:65535B;b、最小的IP分组首部:20B; c、IP分组可以封装的最大数据:65535-20=65515B (5)生存时间(TTL):字段占8位,IP分组在网络上中可以通过的路由器数(或跳步数) a、路由器转发一次分组,TTL减1;b、如果TTL=0,路由器则丢弃该IP分组; (6)协议:字段占8位,指示IP分组封装的是哪个协议的数据包; a、实现复用/分解; b、例如:6为TCP,表示封装的是TCP段,17为UDP,表示封装的是UDP数据段; (7)首部校验和:字段占16位,实现对IP分组首部的差错检测; a、计算校验和时,该字段置全0;b、采用反码算术运算求和,和的反码作为首部校验和字段; c、每次经过路由器转发时,首部校验和都要重新计算;逐跳计算,逐跳校验; (8)源IP地址、目的IP地址字段各占32位:分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址; (9)选项字段:长度可变,在1-40B之间:携带安全、源选路径、时间戳和路由记录等内容; 实际上很少被使用; (10)填充:字段占长度可变,范围在0-3B之间,目的是补齐整个首部,符合32位对齐,即保证首部长度是4字节的倍数; 1.4 IP协议(2)---IP分片1、最大传输单元(MTU)---链路层数据帧可封装数据的上限 2、IP分片与重组? ?IP分组格式:标识(ID)、标志位、片偏移 ?(1)标识字段:占16位,标识一个IP分组, ?a、IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识; ?(2)标志位:字段占3位;保留+DF+MF ?(3)片偏移字段:占13位,一个IP分组分片封装原IP分组数据的相对偏移量; ?a、片偏移字段以8字节为单位; 3、IP分片过程 ? ?4、IP分片过程举例 ? ?1.5 IP协议(3)---IP编址(addressing)1、IP分组 ?(1)源地址(SA)-从哪里来;(2)目的地址(DA)-到哪里去; 2、接口(interface):主机/路由器与物理链路的连接 (1)实现网络层功能;(2)路由器通常有多个接口; (3)主机通常只有一个或两个接口(e.g,有线的以太网接口,无线的802.11接口) 3、IP子网(Subnets)? ?1.6 IP协议(4)---有类IP地址(Addresses)?1、特殊IP地址 ?2、私有(Private)IP地址 ?1.7 IP协议(5)---IP子网划分与子网掩码?1、子网划分 ?2、子网掩码 ?? ?3、子网划分举例 ? ?4、子网掩码的应用---将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址 ?5、一个C类网络划分子网举例 ?1.8 IP协议(6)---CIDR与路由聚合?1、CIDR(Classless InterDomain Routing)无类域间路由 ?(1)消除传统的A类、B类和C类地址界限:NextID+SubID->Network Prefix(Prefix)可以任意长度 ?(2)融合子网地址与子网掩码,方便子网划分:无类地址格式:a.b.c.d/x,其中x为前缀长度 ? ?2、CIDR(Classless InterDomain Routing)无类域间路由的优点 (1)提高IPv4地址空间分配效率; (2)提高路由效率:a、将多个子网聚合成一个较大的子网;b、构造超网(supernetting) ?3、路由聚合(route aggregation)---大大简化路由表,记录超网 ? ?1.9 DHCP(Dynamic Host Configuration Protocol)动态主机配置协议?1、IP地址获取 (1)“硬编码”---静态配置 (2)DHCP(Dynamic Host Configuration Protocol)动态主机配置协议: a、从服务器动态获取:IP地址、子网掩码、默认网关地址、DNS服务器名称与IP地址; b、“即插即用”;c、允许地址重用;d、支持在用地址续租;e、支持移动用户加入网络; 2、DHCP(动态主机配置协议)工作过程示例? ? ?2.0 网络地址转换(NAT)? ?1、网络地址转换(NAT)动机 (1)只需/能从ISP申请一个IP地址:IPv4地址耗尽; (2)本地网络设备IP地址的变更,无需通告外界网络; (3)变更ISP时,无需修改内部网络设备IP地址; (4)内部网络设备对外界网络不可见,即不可直接寻址(安全); ?2、NAT实现 ?(1)替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号) ?(2)记录:将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中; (3)替换:根据NAT转换表,利用(源IP地址,源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址,新端口号); ?3、NAT实现的问题 (1)16-bit端口号字段:可以同时支持60,000多并行连接; (2)NAT主要争议:a、路由器应该只处理第3层功能; b、违背端到端的通信原则:应用开发者必须考虑到NAT的存在,e.g,P2P应用; c、地址短缺问题应该又IPv6来解决; 4、NAT穿透问题---实现外网对内网的地址直接访问 ? |
|
网络协议 最新文章 |
使用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年12日历 | -2024/12/29 11:18:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |