| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【计算机网络4】网络层 -> 正文阅读 |
|
[网络协议]【计算机网络4】网络层 |
一、网络层提供的服务1、网络层应向运输层提供怎样的服务,即面向连接(虚电路服务)还是面向无连接(数据报服务)?传统电信网的虚电路服务,是面向连接的通信方式,是一种可靠传输的服务,互联网的先驱认为电信网这种端到端的虚电路服务对简单无差错处理能力的电话机是很合适的,但是对计算机来数并不合适。互联网设计了网络层向上层只提供简单灵活的、无连接、尽最大努力交付的数据报服务。 2、网络层向上层只提供简单灵活的、无连接、尽最大努力交付的、数据报服务。如何理解呢?
二、IP协议1、网络层简介网络层又叫网际层、IP层。IP层主要是IP协议。IP协议是TCP/IP体系中主要的协议之一,也是最重要的因特网标准协议之一。与IP协议配套使用的还有三个协议:
2、啥是虚拟互联网络?要把世界上数不尽的计算机网络都互联起来并能够通信是一件复杂的任务,其中会解决诸多问题, 如果让大家都使用相同的网络肯定是不可行的,因为用户的需求是多样的,没有一种单一的网络能够适应所有用户需求。如计算机之间可以直接进行通信,计算机间可以通过路由器进行间接通信。计算机网络间还可以通过无线局域网进行通信、计算机之间也可以通过卫星链路进行通信。因此一些中间设备就诞生了如,路由器,路由器也是目前进行网络互联时使用最多的中间设备。不同的计算机网络都遵循IP协议然后通过路由器连接起来就形成了虚拟互联网络。 3、IP地址IP地址是一个32位的标识符,由ICANN(互联网名字和数字分配机构)进行分配。他表示互联网上一台主机或者路由器。 IP地址的编址大致经历了三阶段:分类ip地址、子网的划分、构成超网。
IP地址由网络号+主机号组成。
所谓“分类的IP地址”就是将IP地址划分为若干个固定类:A类、B类、C类、D类、E类。
4、IP地址与硬件地址(MAC)区别MAC地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址。 数据自上层往下层发送时经过IP层会封装成IP数据报,这时数据报的首部就会存放ip地址。 当IP数据传递到数据链路层时就会被封装成MAC帧,MAC帧在传输数据时使用的源地址,和目的地址都是硬件的MAC地址。硬件MAC地址写在MAC帧的首部中。 连接在通信链路上的设备(主机或路由器)在接收MAC帧时,其根据是MAC帧首部中的硬件地址。在数据链路层看不见隐藏在MAC帧的数据中的IP地址。只有在剥去MAC帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。 ps: (1)IP层,IP数据报中的首部的源IP地址、目标ip地址是始终不变的。虽然经过多个路由器进行分组转发。 (2)数据链路层MAC帧的首部、尾部在不同的链路进行传输时是不断变化的。 (3)虽然在ip数据报有源站IP地址,但路由器只根据目的IP地址网络号进行路由选择。 5、主机或者路由器怎样知道应在MAC帧的首部填入什么样的MAC地址当IP数据报流入计算机或者路由器的链路层时,链路层会重新对MAC帧进行整理,原地址改为本机的MAC地址,目标地址改为下一目标的MAC地址。那么需要传送数据的目标ip地址是已知的,如何获得目标MAC地址呢?这里需要ARP协议配合。 由于IP协议使用了ARP协议通常把ARP协议归到网络层。 APR协议的作用是从网络层使用的IP地址解析出链路层使用的MAC地址。 还有个协议叫RARP逆地址解析协议,它的作用是知道自己MAC地址的主机可以通过这个协议逆向得到自己使用的IP地址。不过现在的DHCP协议已经包含了这个协议的功能。 三、IP数据报格式在TCP/IP的标准中,各种数据格式常常以32位(即4字节)为单位来描述。 一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。 1、首部固定部分:(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4 ,即IPv4。 (2)首部长度 占4位,可表示的最大十进制数值是15,最小的十进制数是5。 首部长度字段所表示数的单位是32位字(1个32位字长是4字节) 因此,首部长度字段的最小值是5可表示(5*4)20个字节,首部长度最大值15可表示60个字节。 首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此IP数据报的数据部分永远在4字节的整数倍时开始,这样在实现IP协议时较为方便 首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。 (3)区分服务 占8位,一般的情况下都不使用这个字段。 (4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216 - 1 = 65 535字节。 然而实际上传送这样长的数据报在现实中是极少遇到的,因为在数据链路层,数据超过MAC帧规定的最大传送单元MTU时,数据链路层会把过长的数据报进行分片处理。 进行分片时(见后面的“片偏移”字段),数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的的数据长度的总和。 (5)标识 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。 这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。 当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 (6) 标志 占3位,但目前只有两位有意义:
(7)片偏移 占13位,表示相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。每个分片的长度一定是8字节(64位)的整数倍。 (8)生存时间 占8位,生存时间字段常用的英文缩写是TTL (Time To Live),表明是数据报在网络中的寿命。 其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因白白消耗网络资源。例如从路由器R1转发到R2,再转发到R3,然后又转发到R1。 (9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
(10)首部校验和 占16位。这个字段只检验数据报的首部,不检验数据部分。 数据报每经过一个路由器,路由器都要重新计算一下首部一些字段。因为首部的生存时间、标志、片偏移等字段都可能发生变化。不检验数据部分可减少计算的工作量。 (11)源地址 占32位。 (12)目的地址 占32位。 2、首部可变部分一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。 此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。 优点:
缺点:
四、VPN和NAT1、网络地址转换 NAT(Network Address Translation)IPv4 地址只有 32 位长,因而最多只能提供 42.9 亿个唯一 IP 地址。不可能所有主机都分配一个唯一的 IP 地址。1994 年, NAT作为解决 IPv4 地址即将耗尽的一个临时性方案。 这种方案需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
RFC 1918指明了一些专用地址(private address)。这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。换言之,专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。 采用这样的专用IP地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。显然,全世界可能有很多的专用互连网络具有相同的专用IP地址,但这并不会引起麻烦,因为这些专用地址仅在本机构内部使用。专用IP地址也叫做可重用地址(reusable address)。
2、虚拟专用网VPN有时一个很大的机构有许多部门分布在相距很远的一些地点,而在每一个地点都有自己的专用网。假定这些分布在不同地点的专用网需要经常进行通信。这时,可以有两种方法: (1)第一种方法是租用电信公司的通信线路为本机构专用。这种方法的好处是简单方便,但线路的租金太高。 (2)第二种方法是利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN (Virtual PrivateNetwork)。 之所以称为“专用网”是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。 如果专用网不同网点之间的通信必须经过公用的因特网,但又有保密的要求,那么所有通过因特网传送的数据都必须加密。 “虚拟”表示“好像是”,但实际上并不是,因为现在并没有使用专线而是通过公用的因特网来连接分散在各场所(site)的本地网络。一个机构要构建自己的VPN就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN系统都知道其他场所的地址 一般使用IP隧道技术实现虚拟专用网。 The End |
|
网络协议 最新文章 |
使用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/25 21:30:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |