zoukankan      html  css  js  c++  java
  • 计算机网络复习

    目录
    1. 网络层次结构的三种模型 
    2. TCP/IP的网络体系层次结构 
    2.1 第四层 应用层(应用协议): 
    2.2 第三层 传输层(端口协议): 
    2.3 第二层 网络层(网络协议): 
    2.4 第一层 网络接口层(硬件协议): 
    2.5 详细信息请参考wiki: 
    3. 网际网络层 
    3.1 网络层的两大特点: 
    3.2 IPv4 与 IPv6 地址表示 
    3.3 IPv4 与 IPv6 地址数量对比 
    3.4 IPv6的历史及未来 
    3.5 国内的IPv6 
    3.6 IPv6连接测试:http://test-ipv6.com/ 
    3.7 wiki/IPv4
    3.8 wiki/IPv6
    4. 网络接口层 
    4.1 MAC地址 
    4.2 MAC地址和IP地址的区别 
    5. 查看IP地址及MAC地址 
    6. 其他信息 

    1. 网络层次结构的三种模型

    开放系统互联(OSI)七层参考模型,常用与教学和设计网络。

    实际广泛使用的是4层架构。

    2.TCP/IP的网络体系层次结构

    File:Internet layering.svg


    wiki的svg原图地址:https://upload.wikimedia.org/wikipedia/en/a/a6/Internet_layering.svg

    2.1第四层应用层(应用协议):

    面向用户的应用程序,应用软件运行在某个会话里,使用某个应用层协议;(比如浏览器,使用http协议)

    • FTP协议:文件传输协议,用于文件的上传下载。
    • Telnet协议:用户远程登录服务。
    • DNS协议:域名解析协议,提供域名到IP的解析。
    • SMTP协议:简单的邮件传送协议,用于控制信件的发送中转。
    • NFS协议:网络文件系统,用于不同主机间文件共享。
    • HTTP协议:超文本传输协议,用于实现互联网访问功能。 

    2.2 第三层 传输层(端口协议):

    上面的应用协议绑定传输层的某个TCP/UDP端口;(http协议默认使用TCP 80端口)

    • TCP协议:传输控制协议,面向连接的、可靠的、基于IP的传输层协议。
    • UDP协议:用户数据报协议,提供面向事务的简单不可靠信息传送协议。

    2.3 第二层 网络层(网络协议):

    网络协议层;(上面浏览器地址栏里输入服务器的IP地址或域名(域名会被DNS服务解析为IP))

    • IP协议:通过路由选择将数据封装后交给链路层。
    • ICMP协议:用于主机和路由器直接传递控制消息,常用的ping就是用这个协议。
    • ARP协议:是正向地址解析协议,通过IP查找mac地址。
    • RARP协议:是反向地址解析协议,通过mac地址查找IP。

    2.4 第一层 网络接口层(硬件协议):

    可以简单理解为网卡设备,与外界联通的出入口,有理论上全球唯一的MAC地址。通过路由的一系列网络设备连通到目标主机。

    • IEEE 802.3 Ethernet
    • IEEE 802.11 Wireless LAN (WLAN) & Mesh (Wi-Fi certification)
    • IEEE 802.15 Wireless PAN active
    • IEEE 802.15.1 Bluetooth certification active

    2.5 详细信息请参考wiki:

    http://www.ieee802.org/
    https://en.wikipedia.org/wiki/IEEE_802
    https://en.wikipedia.org/wiki/Computer_network
    https://en.wikipedia.org/wiki/File:Internet_layering.svg

    3. 网际网络层

    3.1 网络层的两大特点:

    • 互联网的拓扑结构是无中心的。
    • 与硬件和操作系统无关。

    3.2IPv4 与 IPv6地址表示

    IPv4 地址的文本格式为nnn.nnn.nnn.nnn,其中0<=nnn<=255,而每个n 都是十进制数。
    简单计算4个256相乘得到总数是:4294967296。二进制表示就是有4段,每段8位二进制。最小8个0,到最大8个1.

    IPv6 地址的文本格式为xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个x 都是十六进制数,表示4 位。可省略前导零。
    可在地址的文本格式中使用一次双冒号(::),用于指定任意数目的0 位。例如,::ffff:10.120.78.40表示IPv4 映射的IPv6 地址。

    3.3IPv4 与 IPv6地址数量对比

    众所周知,IPv4最大的缺陷是地址不足。可用总数不到40亿。
    IPv6 地址的数目比IPv4 地址的数目大1028(79228 162 514 264 337 593 543 950 336)倍。注:是大出这么多倍!
    直观点的说:全球人口按70亿人计算,平均分配IP地址。
    IPv4地址若不使用NAT等技术划分子网,全球人口是不够分的,2个人才能分到1个。
    IPv6地址每个人可分得约4.86×1028(486117667×1020)个IPv6地址。

    3.4IPv6的历史及未来

    虽然IPv6在1994年就已被IETF指定作为IPv4的下一代标准,在1998年12月由互联网工程工作小组以互联网标准规范(RFC2460)的方式正式公布。
    但由于早期的路由器、防火墙、企业的企业资源计划系统及相关应用程序皆须改写,所以在世界范围内使用IPv6部署的公众网与IPv4相比还非常的少,技术上仍以双架构并存居多。
    预计在2025年以前IPv4仍会被支持,以便给新协议的修正留下足够的时间。
    IPv6能解决的核心问题与互联网当前所面临的关键问题之间出现了明显的偏差,难以给互联网的发展带来革命性的影响。
    与IPv4的各种地址复用解决方案相比,IPv6能够降低复杂性和成本,然而当前却只有制造商较能够感受到这个优势,用户和运营商​​无法直接感受到,导致产业链缺乏推动IPv6的动力。
    IPv4使用了NAT等技术划分出无数个子网节点,让有限的40亿变为无限数量…
    扩展了数量,损失了速度。增加了拓扑的复杂程度及维护和设备成本。出现异常的几率也会增加。
    IPv6可以提高速度,安全,稳定性;降低复杂性和成本。
    尚在推广的5G最大的特点是速度带宽的大幅提升。使得很多实验室技术可以成为现实。
    自动驾驶,远程手术都需要稳定高速,近乎没有延时的响应速度。
    IPv6不需要NAT,没有地址掩码,本身就有足够的地址可以分配给几乎所有的设备。
    所以5G和IPv6是相辅相成的。

    3.5国内的IPv6

    2017年11月26日,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》,要求各地各部门贯彻落实。其中主要目标包括:到2018年末,IPv6活跃用户数达2亿,互联网用户中占比不低于20%;到2020年末,IPv6活跃用户数超过5亿,互联网用户中占比超过50%,新增网络地址不再使用私有IPv4地址;到2025年末,中国IPv6网络规模、用户规模、流量规模位居世界第一,网络、应用、终端全面支持IPv6[25]。

    3.6 IPv6连接测试:http://test-ipv6.com/

    • i 你的公网IPv4 地址是89.42.31.211
    • i 你的公网IPv6 地址是2001:ac8:21:8::376e:989b
    • i 你的运营商(ISP)是M247
    • i 你已接入IPv6,因此我们增加了一个标签页,显示你能否访问其他IPv6 网站。
    • ! 你已经有IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。
    • i 本站现已支持HTTPS。

    ok 你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。
    IPv6 状况评分
    10/10 这一分数表示当访问只支持 IPv6 的网站时,你的 IPv6 运行状况

    //评分总共10分,上面是测试通过支持IPv6的结果;下面的则尚不支持IPv6。 

    • i Your IPv4 address on the public Internet appears to be 112.20.121.1
    • i Your Internet Service Provider (ISP) appears to be CMNET-JIANGSU-AP China Mobile communications corporation
    • ! Tests using this web site are unreliable from your location.
    • x No IPv6 address detected [more info]
    • i You appear to be able to browse the IPv4 Internet only. You will not be able to reach IPv6-only sites.
    • i To ensure the best Internet performance and connectivity, ask your ISP about native IPv6.
    • i HTTPS support is now available on this site.
    • ok Your DNS server (possibly run by your ISP) appears to have IPv6 Internet access.

    Your readiness score
    0/10 for your IPv6 stability and readiness, when publishers are forced to go IPv6 only

    https://zh.wikipedia.org/wiki/

    3.7 wiki/IPv4

    https://en.wikipedia.org/wiki/IPv4

    被广泛用于各种教科书的现在被称为有类网络,定义了5个类别;
    A,B,C具有不同长度的网络识别。主要的区别就是可容纳的主机数量。适应大中小三种规模的机构或组织。
    D类用于组播。
    E类保留用于未来。
    https://en.wikipedia.org/wiki/Classful_network
    有类网络最长接触的是C类192开头的网络段。几乎所有的路由器,交换机默认分配子网都是使用C类。
    也有些高端路由器,大型交换机默认使用10开头的局域网IP。192,172,10开头IP地址的都是子网IP地址。

    另外一种表示方法是无类别域间路由(CIDR),无类别域间路由基于可变长度子网掩码(VLSM),CIDR旨在允许对任何地址空间进行重新分区,以便可以将更小或更大的地址块分配给用户。
    https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing

    3.8 wiki/IPv6

    https://zh.wikipedia.org/wiki/IPv6
    IPv6地址可分为三种

    单播(unicast)地址
    单播地址标示一个网络接口。协议会把送往地址的数据包送往给其接口。IPv6的单播地址可以有一个代表特殊地址名字的范畴,如链路本地地址(link local address)和唯一区域地址(ULA,unique local address)。单播地址包括可聚类的全球单播地址、链路本地地址等。
    任播(anycast)地址
    Anycast是IPv6特有的数据发送方式,它像是IPv4的Unicast(单点传播)与Broadcast(多点广播)的综合。IPv4支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。
    而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址列表,但指定为Anycast的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。
    以当前的应用为例,Anycast地址只能分配给中间设备(如路由器、三层交换机等),不能分配给终端设备(手机、计算机等),而且不能作为发送端的地址。
    多播(multicast)地址
    多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。多播地址由皆为一的字节起始,亦即:它们的前置为FF00::/8。其第二个字节的最后四个比特用以标明"范畴"。
    一般有node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和global(0xE)。多播地址中的最低112位会组成多播组群识别码,不过因为传统方法是从MAC地址产生,故只有组群识别码中的最低32位有使用。定义过的组群识别码有用于所有节点的多播地址0x1和用于所有路由器的0x2。
    另一个多播组群的地址为"solicited-node多播地址",是由前置FF02::1:FF00:0/104和剩余的组群识别码(最低24位)所组成。这些地址允许经由邻居发现协议(NDP,Neighbor Discovery Protocol)来解译链接层地址,因而不用干扰到在区网内的所有节点。 

    4.网络接口层

    4.1MAC地址

    (英语:MediaAccess Control Address),直译为媒体访问控制地址,也称为局域网地址(LANAddress),以太网地址(EthernetAddress)或物理地址(PhysicalAddress),它是一个用来确认网络设备位置的地址。
    在OSI模型中,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

    MAC格式
    MAC地址共48位(6个字节),以十六进制表示。
    前24位叫做组织唯一标志符(OrganizationallyUnique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
    后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
    ff:ff:ff:ff:ff:ff则作为广播地址。
    01:xx:xx:xx:xx:xx是多播地址,
    01:00:5e:xx:xx:xx是IPv4多播地址。

    注:网卡MAC地址可以通过驱动程序或其他工具修改。但在同一个子网中必须唯一。
    MAC地址的总数越70万亿个。但由于是固化在网络设备上的,所以用一个少一个。并没有报废回收机制,总有一天会被用完。

    MAC地址归属厂商查询:
    IEEE-SA- Registration Authority MA-L Public Listing
    MAC地址分配表
    http://standards.ieee.org/develop/regauth/oui/oui.txt

    https://www.zhihu.com/question/25216328

    4.2MAC地址和IP地址的区别

    • IP地址可以自动获取或者自己指定,只要是子网范围内可用的即可。
    • MAC地址通常会被烧录在网络设备芯片内,不可更改。
    • IPv4地址为32位,MAC地址为48位,IPv6地址为128位。
    • IPv4地址的分配基于网络拓扑,MAC地址的分配基于制造厂商。
    • IP应用与网络层;MAC应用与数据链路层。

    5.查看IP地址及MAC地址

    Windows使用ipconfig查询;Linux使用ifconfig或者更新的ip命令查询;

    $ ip address
    link/ether00:1c:bf:3e:5c:8c brd ff:ff:ff:ff:ff:ff
    inet192.168.31.177/24 brd 192.168.31.255 scope global noprefixroute
    inet6fe80::21c:bfff:fe3e:5c8c/64 scope link
    从上往下以此是:
    MAC地址: 00:1c:bf:3e:5c:8c
    IPv4地址:192.168.31.177
    IPv6地址:fe80:0:0:0:21c:bfff:fe3e:5c8c

    网卡上的IPv4地址包括:

    • IP地址:192.168.31.177
    • 子网掩码的2种表示方法
      • 255.255.255.0
      • 192.168.31.177/24  //简单的说就是二进制的24个1,后面都是0。总共32位,后面还有8个0;
    • 网关:192.168.31.1
    • DNS: 8.8.8.8

    6. 其他信息

    https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_71/rzai2/rzai2compipv4ipv6.htm
    IPv4 与IPv6 的比较 (非常详细的比较)

    进制转换命令
    比如在bc中输入obase=2;240,能输出240的二进制形式。
    obase=2;240
    11110000
    obase=2;255
    11111111

    $ bc -h
    -h --help print this usage and exit 打印此用法并退出
    -i --interactive force interactive mode 强制互动模式
    -l --mathlib use the predefined math routines 使用预定义的数学例程
    -q --quiet don't print initial banner 不要打印初始横幅
    -s --standard non-standard bc constructs are errors 非标准的bc结构是错误的
    -w --warn warn about non-standard bc constructs 警告非标准的bc结构
    -v --version print version information and exit 打印版本信息并退出
    $ dc -h
    -e, --expression=EXPR evaluate expression 计算表达式
    -f, --file=FILE evaluate contents of file 评估文件的内容
    -h, --help display this help and exit 显示此帮助并退出
    -v, --version output version information and exit 输出版本信息并退出

     

    https://blog.csdn.net/a962230275/article/details/79576881
    网卡MAC地址(物理地址)映射为IPv6接口标识符

    EUI-64:64 位 EUI 64 地址是由电气和电子工程师协会 (IEEE) 定义的。将 EUI-64 地址指派给网络适配器,或从 IEEE802 地址派生得到该地址。IEEE EUI-64 地址代表网络接口寻址的新标准。公司 ID 仍然是 24 位长度,但扩展 ID 是 40 位,从而为网络适配器制造商创建了更大的地址空间。EUI-64 地址使用 U/L 和 I/G 位的方式与 IEEE 802 地址相同。
    全局/本地 (U/L):U/L 位是第一个字节的第七位,用于确定该地址是全局管理的还是本地管理的。如果将 U/L 位设置为 0,那么通过分配唯一的公司 ID,IEEE 已对地址进行了管理。如果 U/L 位被设置为 1,则地址是本地管理的。网络管理员已覆盖制造地址,并指定其他地址。
    · 个人/组 (I/G):I/G 位是第一个字节的最低位,用来确定地址是个人地址(单播)还是组地址(多播)。设置为 0 时,地址是单播地址。设置为 1 时,地址是多播地址。
    对于典型的 802.x网络适配器地址,U/L 和 I/G 位均设置为 0,对应于全局管理的单播MAC 地址。
    将EUI-64地址映射到IPv6接口标识:
    要获取用于 IPv6单播地址的 64 位接口标识,EUI-64 地址中的 U/L 位将进行求反(如果是 1,则被设置为 0;如果是 0,则被设置为 1);
    要从 IEEE 802 地址获取 IPv6 接口标识,必须先将 IEEE 802 地址映射到 EUI-64 地址,然后对 U/L 位求反;
    主机A 的以太网MAC 地址是 00-AA-00-3F-2A-1C。首先,通过在第三个和第四个字节之间插入 FF-FE 将其转换为 EUI-64 格式,其结果是 00-AA-00-FF-FE-3F-2A-1C。然后,对 U/L 位(第一个字节中的第七位)求反。第一个字节的二进制形式为 00000000。将第七位求反后,变为 00000010 (0x02)。最后的结果是 02-AA-00-FF-FE-3F-2A-1C,当转换为冒号十六进制符号时,成为接口标识 2AA:FF:FE3F:2A1C。结果是,对应于 MAC 地址 00-AA-00-3F-2A-1C 的网络适配器的链接本地地址是 FE80::2AA:FF:FE3F:2A1C。

    更多参考:
    https://wiki.archlinux.org/index.php/IPv6
    https://wiki.archlinux.org/index.php/IPv6_(简体中文)
    https://wiki.archlinux.org/index.php/IPv6_tunnel_broker_setup

    https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_71/rzai2/rzai2compipv4ipv6.htm#rzai2compipv4ipv6__compaddressmask
    https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzai2/rzai2ipv6addrformat.htm
    https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_74/rzai2/rzai2ipv6intro.htm
    https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_71/rzai2/rzai2ipv6concepts.htm?view=embed
    https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_71/rzai2/rzai2ipv6addrtypes.htm?view=embed#ipv6addrtypes

    https://zh.wikipedia.org/wiki/IPv4
    https://zh.wikipedia.org/wiki/IPv6
    https://zh.wikipedia.org/wiki/IPv4位址枯竭
    https://zh.wikipedia.org/wiki/IP地址

    http://test-ipv6.com/

  • 相关阅读:
    58) Gitlab加入LDAP认证 (windows AD)
    57) 《乌合之众》读书笔记【1】
    56) 监控系统简单介绍
    前端学习建议汇总(留着自己看的心灵鸡汤)
    vscode分享代码插件Polacode
    PHP论坛实现积分系统的思路
    thinkphp删除图片的方法实现
    php高并发问题解决思路
    PHP和Thinkphp模拟留言板,应对XSS攻击(超完整!)
    sql server特殊字符查询问题及ESCAPE的使用
  • 原文地址:https://www.cnblogs.com/sztom/p/10803883.html
Copyright © 2011-2022 走看看