网络协议与设备

网络模型

这里采用用5层级的网络模型:物理层、链路层、网络层、运输层、应用层。在TCP/IP协议族中,与后4个层级相关,如下图所示:

TCPIP协议族

ps:网络的的发展,大概是从局域网,慢慢发展到了广域网,最终实现了互联网。从协议来看,上层的协议依赖底层的协议,那么在出现的顺序上,一定是底层的协议先出现。这样底层的协议,解决的往往是局域网的问题,如链路层往往解决的是局域网问题,到了网络层解决的是广域网的问题。

  • 网络层

    以上这个模型并不好,我觉得是IP、ARP、RARP、ICMP共同促成了IP协议。

  • 链路层

    链路层有不同的链路方式,最常用的是以太网,它的地址称为以太地址,也就是MAC地址,每个网卡一个。另外还有令牌网(总线型、环型、星型)等

    这里以最常用的以太网(RFC 894)为例,它的报文结果如下:

    以太网报文

    这里的地址是48位的MAC地址。

网络协议

前边对TCP协议已经做了较详细的整理,这里仅对其下层的ARP、RARP、IP、ICMP、RIP进行简单的整理。

这里对几个协议进行简单的整理,只求对它们有一个印象。

ARP与RARP

参考1参考2

graph TD IP地址 -->|ARP| MAC地址 MAC地址 -->|RARP| IP地址
  • 功能

    ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

    RARP(Reverse ARP)即反向ARP或者翻转ARP,顾名思义,它跟常规的ARP功能恰恰是相反的,ARP是实现IP到MAC地址的映射,而RARP是实现MAC到IP地址的映射

    例如,一个电脑刚接入网络,没有IP地址就无法上网,此时它便会通过本地MAC地址,对外发送RARP Request广播请求,看看局域网里面是否有RARP Server,若Server上面有关于此MAC地址的映射IP,则会向此电脑返回RARP Reply回应,电脑便获取了IP地址。

  • 报文格式

    它俩属于链路层,ARP的报文格式如下:

    ARP报文

    帧类型0800是IP报文,0806是ARP报文,8035是RARP报文。

    硬件类型字段表示硬件地址的类型。它的值为 1即表示以太网地址。

    协议类型字段表示要映射的协议地址类型。它的值为 0 x 0 8 0 0即表示 IP地址。(这个与帧类型一致,有意设计的)

    操作字段(op)指出四种操作类型,它们是 A R P请求(值为1)、A R P应答(值为 2)、R A R P请求
    (值为 3)和R A R P应答(值为 4)。

  • 逻辑

    • A R P发送一份称作 A R P请求的以太网数据帧给以太网上的每个主机。这个过程称作广
      播。 A R P请求数据帧中包含目的主机的 IP 地址,其意思是“如果你是这个 IP地址的拥有者,请回答你的硬件地址。
    • 目的主机的 A R P层收到这份广播报文后,识别出这是发送端在寻问它的 IP地址,于是
      发送一个A R P应答。这个 A R P应答包含IP地址及对应的硬件地址。
    • 收到A R P应答后,使 A R P进行请求—应答交换的 IP数据报现在就可以传送了。
  • 数据:ARP高速缓存

    这里有一个Map映射,被称为ARP高速缓存,它存放了最近IP地址到MAC地址之间的映射记录。高速缓存中每一项的生存时间一般为 2 0分钟。

    通过arp -a命令,可以显示该内容。

    XiaoQiang (192.168.31.1) 位于 8c:de:f9:d4:b6:80 [ether] 在 wlx1cbfce13f027
    00e04c33961d (192.168.31.142) 位于 00:e0:4c:33:96:1d [ether] 在 wlx1cbfce13f027
    HUAWEI_Mate_40-d5ee005531 (192.168.31.134) 位于 92:5e:9b:24:97:fd [ether] 在 wlx1cbfce13f027
    

IP

  • 功能简介

    IP是T C P / IP协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以IP数据
    报格式传输。

    不可靠( u n r e l i a b l e)的意思是它不能保证 IP数据报能成功地到达目的地。 IP仅提供最好
    的传输服务。如果发生某种错误, IP有一个简单的错误。处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。
    无连接( c o n n e c t i o n l e s s)这个术语的意思是 IP并不维护任何关于后续数据报的状态信息。
    每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。

  • 报文格式

    IP报文
    • 版本好是4,也被成为IPv4
    • 首部长度,指的是占32位(4字节)的数目,因为是4位(15)长度,也就是最多15*4=60字节长度
    • TOS,虽然是8位,但3位弃用,1位未用(必须置0),剩余4位每位表示一个类型:最小延时、最大吞吐量、最高可靠性、最小费用。这个就比较有趣了,相当于对IP选路提出了不同的要求。
    • 总长度是整个IP报文的长度,以字节为单位。所以IP数据包最大可达65535字节。尽管可以传送一个长达 6 5 5 3 5字节的 I P数据报,但是大多数的链路层都会对它进行分片,主机也要求不能接收超过 5 7 6字节的数据报。UDP应用数据报长度一般为512字节,TCP块数据传输时可以达8192字节。
    • 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1
    • TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为 32或64),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0时,数据报就被丢弃,并发送 ICMP报文通知源主机。
  • 逻辑

    从概念上说, IP路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。大多数的主机都是采用这种简单机制。

    IP层既可以配置成路由器的功能,也可以配置成主机的功能。当今的大多数多用户系统,包括几乎所有的 U n i x系统,都可以配置成一个路由器。我们可以为它指定主机和路由器都可以使用的简单路由算法。本质上的区别在
    于主机从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。

    • IP层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。

    • 当数据报来自某个网络接口时, IP首先检查目的IP地址是否为本机的 IP地址之一或者IP广播地址。如果确实是这样,数据报就被送到由 IP首部协议字段所指定的协议模块进行处理。

    • 如果数据报的目的不是这些地址,那么

      • 如果(1)IP层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下面对待发出的数据报一样处理);

      • 否则(2)数据报被丢弃。

  • 数据:路由表

    通过netstat -rn可以显示路由表

    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         192.168.31.1    0.0.0.0         UG        0 0          0 wlx1cbfce13f027
    169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlx1cbfce13f027
    172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
    172.18.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-5a1c27fb30c2
    172.19.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-428a73a1623e
    172.21.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-7ed43a1d0f0d
    192.168.31.0    0.0.0.0         255.255.255.0   U         0 0          0 wlx1cbfce13f027
    192.168.49.0    0.0.0.0         255.255.255.0   U         0 0          0 br-53b0bd88ff00
    

ICMP

参考

  • 功能简介

    ICMP 的全称是 Internet Control Message Protocol(互联网控制协议),它是一种互联网套件,它用于IP 协议中发送控制消息。也就是说,ICMP 是依靠 IP 协议来完成信息发送的,它是 IP 的主要部分,但是从体系结构上来讲,它位于 IP 之上,因为 ICMP 报文是承载在 IP 分组中的,就和 TCP 与 UDP 报文段作为 IP 有效载荷被承载那样。

    ICMP 协议和 TCP、UDP 等协议不同,它不用于传输数据,只是用来发送消息。因为 IP 协议现在有两类版本:IPv4 和 IPv6 ,所以 ICMP 也有两个版本:ICMPv4 和 ICMPv6

    对于 ICMP 的功能,主要分为两个

    • ICMP 的第一个功能是确认 IP 包是否能够成功到达目标地址,当两个设备通过互联网相连时,任意一个设备发送给另一个设备的 IP 包如果没有到达,就会生成 ICMP 数据包发送给对方。
    • ICMP 的第二个功能是进行网络诊断,经常使用 ICMP 数据包的两个终端程序是 pingtraceroute,traceroute 程序用于显示两台互联网设备之间可能的路径并测量数据包在 IP 网络上的时延。ping 程序是 traceroute 的简化版本,我们经常使用 ping 命令来测试两台设备之间是否互联,ping 通常用来测试两台主机之间的连接速度,并准确报告数据包到达目的地并返回后所花费的时间。
  • 报文格式

    ICMP的报文是装在IP报文中的,如下:

    ICMP报文-1 IP报文-2

    类型字段可以有 1 5个不同的值,以描述特定类型的 I C M P报文。某些 I C M P报文还使用代码字段的值来进一步描述不同的条件。

    ICMP报文类型

    从类型上可以看出ICMP协议的作用,最主要的是显示目标是否可达,以及网络重定向,另外可以用于请求子网掩码与时间戳。

  • 逻辑

    ICMP逻辑

    端口不可达:UDP的规则之一是,如果收到一份 UDP数据报而目的端口与某个正在使用的进程不相符,那么UDP返回一个 ICMP不可达报文,也就是端口不可达报文。

  • 工具

    ping与traceroute,这里主要介绍一下traceroute命令。

    traceroute命令是一款充分利用 ICMP 差错报文类型的应用,其主要用作追踪路由信息,它的原理就是利用 IP 包的 TTL 从 1 开始按照顺序递增的同时发送 UDP 包,强制接收 ICMP 超时消息的方法。

    • 它发送一份 T T L字段为1的I P数据报给目的主机。处理这份数据报的第一个路由器将 T T L值减 1,丢弃该数据报,并发回一份超时I C M P报文。这样就得到了该路径中的第一个路由器的地址。

    • 然后 Tr a c e r o u t e程序发送一份T T L值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。

    • 到了目的主机后,它选择一个不可能的值作为 U D P端口号(大于 30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的 U D P模块产生一份“端口不可达”错误(见 6 . 5节)的 I C M P报文。这样, Tr a c e r o u t e程序所要做的就是区分接收到的 I C M P报文是超时还是端口不可达。

RIP

  • 功能简介

    当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。路由器上有一个进程称为路由守护程序( routing daemon),它运行选路协议,并与其相邻的一些路由器进行通信。路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。

    路由表的使用没有变化,这里讨论的主要是路由器中,路由表的动态增减的算法。如果守护程序发现前往同一信宿存在多条路由,那么它(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该问题。

  • 协议格式

    RIP报文包含中在UDP数据报中,格式:IP首部+UDP首部+RIP报文

    RIP报文
    • 名字字段:1为请求、2为应答
    • 后边20个字节包括地址系列(address family)对于IP是2、4字节的IP、以及度量。这里的度量,指的是距离该IP的跳数。
    • 一个报文最多可以传25条IP地址。20*25 + 4 = 504
  • 逻辑

    • 初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送
      一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其
      他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的 U D P端口号是
      5 2 0(这是其他路由器的路由守护程序端口号)。
      这种请求报文的命令字段为 1,但地址系列字段设置为 0,而度量字段设置为 1 6。这是一
      种要求另一端完整路由表的特殊请求报文。
    • 接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送
      给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度
      量设置成我们的值,否则将度量置为 1 6(度量为1 6是一种称为“无穷大”的特殊值,它
      意味着没有到达目的的路由)。然后发回响应。
    • 接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行
      修改,或是将已有表项删除。
    • 定期选路更新。每过 3 0秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发
      送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。
    • 触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,
      而只需要发送那些发生变化的表项。
      每条路由都有与之相关的定时器。如果运行 R I P的系统发现一条路由在 3分钟内未更新,
      就将该路由的度量设置成无穷大( 1 6),并标注为删除。这意味着已经在 6个3 0秒更新时间里
      没收到通告该路由的路由器的更

小结

TCP/IP协议族中的链路层我觉得更像是链路层与IP层之间的转换,具体这个链路如何发过去,并不是TCP/IP协议的范围了,链路层解决的是连接的问题。
ARP与RARP相当于链路层与IP层之间的接口,保存着IP与MAC的映射关系,为IP做一个准备工作。
IP协议解决的就是选路的问题,这也是整个协议族的核心。
像ICMP简直不能当成一个协议,只是IP的一个特殊报文。
TCP协议是真正在IP基础上的协议了,它通过一些列算法,解决了可靠传输的问题。

网络设备

计算机网络层次代表设备

设备
应用层应用网关
传输层传输网关
网络层路由器
链路层网桥、交换机
物理层光纤、中继器、集线器

光纤

网线

1、网线的传输距离。目前在使用的网线除了八类线外,大部分网线的最长布线距离是不大于100米。这指的是在无有源设备对信号进行中继的情况下的布线长度。当有中继器时,其布线长度可以延长,当然,还是得在不大于100米的距离内加中继器。所以,如果家庭电脑离服务器几百公里,如果单纯使用网线。需要几千个中继器。不划算。

2、多模光纤的传输距离。在无中继的情况下,多模光纤的最长传输距离可到2公里。但是,多模光纤随着传输速率的上升,其传输距离降下来了。这与多模光纤的模间时延差有关。用于传输万兆的多模光纤的传输距离就不大于500米。所以,如果家庭电脑离服务器几百公里,如果单纯使用网线。需要几百个中继器。不划算。

3、单模光纤的传输距离。在无中继的情况下,优质的单模光纤的最长传输距离可到上百公里。并且,单模光纤本身的传输带宽就很大。足以满足现在的通信要求。但是,单模光纤的价格较昂贵。

4、**实现远距离传输的方案。**以下我说的为常见一般方案。首先,从你的电脑到光猫这一段的水平链路,使用的是铜缆系统(也就是我们经常说的网线)。从光猫到我们这栋建筑的配线间(一般在一楼)为多模光纤。从建筑的配线间开始到服务器这一段使用的是单模光纤。如果,服务器的距离超过单模光纤的无中继最长传输距离。就使用中继器进行传输

单模光纤与多模光纤

物理层:中继器、集线器

  • 中继器是最简单的网络互联设备,负责在两个节点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。

    由于存在损耗, 在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的。它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同。

  • 集线器(Hub)是中继器的一种形式,区别在于集线器能够提供多端口服务,也称为多口中继器。

    中继器、与集线器要保证每一个分支中的“数据包”和“逻辑链路协议”是相同的,只能是一种链路方式(如以太网)。

链路层:网桥、交换机

  • 网桥(Bridge)是一个局域网与另一个局域网之间建立连接的桥梁,根据MAC地址来转发帧。网桥不仅包含了中继器的功能和特性,还能连接不同的物理分支,如“以太网”和“令牌网”。网桥的典型应用是,将局域网分段成子网,从而降低数据传输的瓶颈。

    网桥
  • 交换机,可以理解为高级的网桥,他有网桥的功能,但性能比网桥强。交换机和网桥的细微差别就在于:交换机常常用来连接独立的计算机,而网桥连接的目标是LAN,所以交换机的端口较网桥多。

    交换机中有一张MAC地址表,如果知道目标地址在何处,就把数据发送到指定地点,如果它不知道就发送到所有的端口。这样过滤可以帮助降低整个网络的数据传输量,提高效率。但是交换机的功能还不止如此,它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的数据信息流量而使每个网络更有效,提高整个网络效率。

    交换机

网络层:路由器

前边的IP、RIP对路由器的介绍就比较度了,路由器的主要工作就是为经过路由器的每个IP数据包寻找一条最佳传输路径,并将该数据有效地传送到目的站点。

路由器根据路由表,进行数据的转发,也跟根据选路协议,动态的维护路由表。

这个家里都用,比较常见。

更高层:网关

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。

网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言之间,甚至体系结构完全不同的两种系统之间,如HTTPS与SSL之间。

对于语音网关来说,他可以连接PSTN以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。

如下图VoIP网关,提供了4个以太网与16个电话接口。

网关

其他

  • 为什么有时候还要在路由器的后面先接1台交换机再接计算机?

    路由器内部可实现拨号上网,然后通过共享给多台电脑同时上网,而交换机内部不具有拨号功能,但交换机的作用是将网络信号分流,以实现更多电脑连接共享上网。

    为什么标准都是路由器接交换机然后再接电脑等终端,是因为路由器本来就是一个路由设备,用来选路的,不适合大量的数据交换,交换机是用来大量数据交换的,终端在内网的性质就是需要使用交换机,所以标准就是路由器地下接交换机的形式。一般是情况就是在路由器下面接交换机,路由器主要起数据转发,也就是寻址、路由的功能,交换机起到用户接入的目的。

# tcp/ip 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×