网络数据通信
2021-03-04 20:02:42 Author: www.freebuf.com(查看原文) 阅读量:157 收藏

说在前面

逻辑接口:

逻辑接口指能够实现数据交换功能但物理上不存在,需要通过配置建立的接口,包括Dialer(拨号)接口、子接品、LoopBack接口、NULL接口、备份中心逻辑通道以及虚拟模板接口等。(逻辑接口就是虚拟接口的意思,像逻辑地址也是)

带宽:

网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量,即每秒多少比特。即数据传输速率。像100M这样就是带宽。

什么是网络?

答:连接各种终端,实现数据通信。

一、企业网络架构

  • 企业网络包括广泛应用在各个行业中如小型办公室,教育、政府、银行等等机构或行业。
  • 企业网络远程互联:企业网络组不受地域地限制,就是将分布在不同物理地域地网络通过各种远程互连技术连接在一起。
  • 企业网络基本架构

1614847054_60409c4e76ef0232ee1e7.png!small?1614847058730

接入层:连接终端

汇聚层:汇聚来自接入层的流量,安全隔离,如:vlan 安全隔离

核心层:快速转发流量

交换机的一个指标:转发容量

(1)小型企业网是一种扁平网络结构,结构单缺少冗余机制,可靠性不高,容易发生业务中断,但是比较灵活,减少部署与维护成本

(2)大型企业网络结构采用层次化结构,业务连续要求比较高,通过网络冗余备份来实现高可靠性。层次化结构进行业务访问控制,以及流量优化。

二、传输介质

  • 同轴电缆
  • 双绞线(现在一般传输千兆用6类双绞线):我们常称的网线
  • 光纤(多模和单模(一种信号一种光))(黄色一般为单模,橙色一般为多模)远距离高速传输
  • 无线
  • 串口电缆(24和v.35)

三、冲突域和广播域

冲突域(存在共享式网络中)(冲突发生的最小范围)

检测冲突的技术:CSMA/CD(Carrier Sense Multiple Access with Collision Detection

带冲突检测的载波监听多路访检测技术)

先听后发,边听边发,冲突停发,随即延迟后再发

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)可以检测冲突,但无法避免,适宜于总线型局域网拓扑结构。而CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance带冲突避免的载波监听多路访检测技术)可以避免冲突,但是适用于无线网络。

1614849722_6040a6bad89a1687ff258.png!small

什么是冲突域?

答:在共享式网络中多个终端同一时刻发送数据

广播域:广播包所能达到的最大范围

物理层设备    集线器(Hub):属于同一个冲突域,同一个广播域

中继器:中继器(RP repeater)是工作在物理层上的连接设备,是对信号进行再生和还原的网络设备:OSI模型的物理层设备。中继器是局域网环境下用来延长网络距离的,但是它不属于网络互联设备,操作在OSI的物理层,中继器对在线路上的信号具有放大再生的功能,用于扩展局域网网段的长度(仅用于连接相同的局域网网段)。

数据链路层设备   二级交换机:接口分割冲突域,同一个广播域

网络层设备    路由器:分割广播域,冲突域(路由器默认一个接口为一个广播域)

二层交换机属于数据链路层,三层交换机既属于数据链路层也属于网络层

四、单工和双工

单工模式的数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。

双工

半双工:同一时刻只能单向收或发数据

全双工:同一时刻可以同时收发数据

五、通信模型

(1)1614853695_6040b63f6a5625aa51e56.png!small?1614853695951

以太网协议只是IEEE802中的一个子协议

IBM公司的SNA协议

Novell公司的IPX/SPX协议

(2)OSI七层模型

1614853749_6040b6755066a48ffe651.png!small?1614853749671

5、6、7(上三层)打包封装

1、2、3、4(下四层)传送数据

1614853759_6040b67f34de8bbe6bbea.png!small?1614853759520

作用:简化网络操作,提供不同厂商的兼容性,促进标准化,层次化结构可以很好的排除网络中出现的障碍,方便学习。

1614853766_6040b686d8a22f73f45c5.png!small?1614853767257

数据链路层:控制相邻两个节点间的访问

(3)TCP/IP

1614853782_6040b6967488ffc0f4d5c.png!small?1614853782779

TCP/IP协议是OSI模型的衍生(在实际应用最多的模型)

链路层:作用是将数据从主机发送到网络上。

网络层:解决网络逻辑转发问题。

传输层:保证源端到目的端的可靠传输。

OSI的“应用层”,“表示层”,“会话层”合为TCP/IP模型中的“应用层”通过各种协议提供业务应用。

六、数据封装

(封装与解封装的概念)

1614853871_6040b6efb580800c37ed4.png!small?1614853872323

1614853879_6040b6f718c0e432f404d.png!small?1614853879290

1614853885_6040b6fd4be9759719d99.png!small?1614853885634

传输数据时,每到一层就要封装每一层的报头,不同的PDU中含有不同的信息

PDU:协议数据单元(层与层间数据通信方式)   segment:数据段

packet:数据包  frame:数据帧   bit:比特流

七、终端间的通信

拓展:

【数据链路层:局域网的数据链路层分为逻辑链路层LLC和介质访问控制MAC两个子层。逻辑链路控制(Logical Link Control或简称LLC)是局域网中数据链路层的上层部分,IEEE 802.2中定义了逻辑链路控制协议。用户的数据链路服务通过LLC子层为网络层提供统一的接口。在LLC子层下面是MAC子层。MAC(medium access control)属于LLC(Logical Link Control)下的一个子层,提供介质访问控控制的功能。

1614854175_6040b81fa38dca5e2ca65.png!small?1614854175946

由于TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 (Ethernet II帧格式也称为DIX帧格式)而不是 802.3 标准中的几种局域网,因此现在 802 委员会制定的逻辑链路控制子层 LLC(即 802.2 标准)的作用已经不大了。

很多厂商生产的网卡上就仅装有 MAC 协议而没有 LLC 协议。

FCS:Frame Check Sequence(帧校验序列),俗称帧尾,即计算机网络数据链路层的协议数据单元(帧)的尾部字段,是一段4个字节的循环冗余校验码。】

(1)数据帧格式

数据链路层控制控制数据帧在物理链路上传输,数据封装的信息决定了数据如何传输

两种帧格式:Ethernet_II和IEEE802.3

1614854240_6040b8608ea519f2804fe.png!small?1614854240933

①两种帧格式区别在于Type(标识上层协议是那种协议)字段和length字段

不同的字段值可以区别不同的协议,当length/type>=1536(0x0600)时-->Ethernet II,当length/type<=1500时--->IEEE802.3

②Date字段包含了网络层头部和传输层头部

1614854249_6040b86976d5a1a1bf027.png!small?1614854249802

1614854267_6040b87b5a968bb3262cf.png!small?1614854267968

注:(1)是世界上第一个局域网产品(以太网)的规范。

只有很小的差别,因此,在概念上当不需要界定很清楚时,可以说这两个属于同一个标准,都是以太网标准。

(以太网上使用两种标准帧格式,第一种是Ethernet II帧格式,第二种是IEEE 802.3帧格式。以太网V2协议是数据链路层的,也就是帧格式,所以Ethernet II帧格式应该也可以说是以太网V2协议;IEEE802.3标准是一个协议集(一组协议的聚集),IEEE 802.3 局域网协议, 以太网协议是由一组 IEEE 802.3 标准定义的局域网协议集)

以太网和局域网的区别主要在于局域网源规模稍大,局域网内部还可以使用IEEE制定的802.3协议标准。以太网是采用以太网V2协议的局域网,局域网是根据网络规模划定的,一个学校内部网络可以是局域网,比如一个学校在本地有分校,那么主校和分校间构成城域网,也是一种局域网。

数据链路层是基于MAC地址进行数据帧的传输,在二层链路上时根据MAC地址来唯一标识网络设备,实现局域网中设备间的通信

1614854343_6040b8c78a911ec0f4d04.png!small?1614854343903

(2)MAC地址(MAC Address)

(网卡物理地址,因为MAC地址在每台电脑的网卡上)MAC(Medium/Media Access Control)地址,或称为 MAC位址、硬件地址,用来定义网络设备的位置,由48比特长,12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”(Organizationally Unique Identifier)。是识别LAN(局域网)结点的标志。地址的24到47位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个网卡会有一个全球唯一固定的MAC地址,但可对应多个IP地址。MAC地址中,单个字节来看第八bit位是最低位,第一bit位是最高位,然后依次排下去,这个就是一个字节一共有8bit,一个二进制等于1bit,从左往右依次是128 64 32 16 8 4 2 1 0,所以就是最左边是最高位,右边是最低位。

(3)三种帧的发送方式

  • 单播:单一的源端发送到单一的目的端

单播MAC地址是指第一个字节的最低位为0的MAC地址,就是第八bit位

此图为单播MAC地址

1614854412_6040b90c1875979129c8c.png!small?1614854412397

  • 广播:全F

广播MAC地址是指每个比特都是1 的MAC地址。广播MAC地址是组播MAC地址的一个特例。

此图为广播MAC地址

1614854441_6040b929190d134d64735.png!small?1614854441351

  • 组播:

组播MAC地址是指第一个字节的最低位为1的MAC地址,就是第八bit位

此图为组播MAC地址

1614854448_6040b9300f7be3d017301.png!small?1614854448450

八、传输协议(TCP/UDP)

(1)TCP

传输控制协议(TCP,Transmission Control Protocol)。TCP在IP报文的协议号是6。

1614854471_6040b9478190c40b161b7.png!small?1614854471861

注:确认号不是用于告知数据丢失的,确认号用于确认自己收到的数据段。如果没有收到主机发送的数据段的话,服务器就不会发送确认号,主机就会重新发送数据段。

为什么这里三个数据段才传一个确认号?

答:因为不会对每一个序列号都确认,不然带宽都被确认包占用了。

数据段乱序的话会重新排序(TCP的报文存在序列号,就算数据段乱序之后也是根据序列号来接收报文,这个就算排序,然后会根据最大的序列号,这一次的确认号会被当做下一次的序列号);数据段丢失会重传(如果没有收到主机发送的数据段的话,服务器就不会发送确认号,主机就会重新发送数据段)。

1614854515_6040b973215e7c9c60593.png!small?1614854515549

1614854651_6040b9fbc3a7d5b07bdf5.png!small?1614854652258

1614854698_6040ba2ab522397470fb5.png!small?1614854699062

因为UDP无需建立连接,所以没有连接状态;而TCP需要建立连接,所以有连接状态。

(2)UDP

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,提供面向事务的简单不可靠信息传送服务。UDP在IP报文的协议号是17。

无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序。

九、ARP协议

ARP协议是“Address Resolution Protocol”(地址解析协议)

1614854762_6040ba6a5ddf3668136b1.png!small?1614854764247

1614854776_6040ba78d5369db3effa9.png!small?1614854778190

如果是直连路由,即在同一个广播域就有五个包,因为不用进行ARP请求了。而这里中间隔着几台路由器,第一个ping包ping不通的原因是上面那张图的2),(它去进行了一个动作,就是去进行ARP请求了,ARP请求也是需要时间的,在这个时间ARP还没有收到对方的响应,故ICMP报文就丢了,就不能进行封装了)第二次再ping就不会丢包。但是过180s不动就又会出现此情况,是因为ARP缓存表上的信息是动态的,会老化消失,一个条目(即一个IP地址与MAC地址的对应关系)从其被建立或最近一次被使用(某个条目在每次被使用时,该条目的生存期都会被重新设置为180s)算起,会有180s(该时间值可通过配置进行修改)的生存期,一旦过了生存期,该条目就会被删除。所以又要重新进行APR请求,就又丢包了。

tracert在windows系统和路由器系统运行时的工作原理有什么不同?

Windows系统:
1、探测包使用ICMP报文
2、第一次探测ICMP TTL=1,第二次ICMP TTL=2  .(收到ICMP超时消息).依次类推
3、每次发3个包(避免中间丢包)

路由器系统:
1、探测包使用UDP    ,端口比较大(3w~4w左右)
2、第一次探测UDP  TTL=1,第二次UDP TTL=2  .(收到ICMP超时消息).依次类推
3、每次发3个包(UDP不可靠)
4、源设备接收到ICMP 目标不可达消息

在windows系统中,

目标主机收到ICMP报文会怎么做?

1614854812_6040ba9c9c52483ef7458.png!small?1614854815680

前面的No.里19,21,23,25,27发一个request包都会返回一个exceeded的超时包,在28的request包发完收到最后一个超时包后,29再发送一个request包就不会返回超时包(因为是第一次tracert,之前都没有tracert或者ping),然后30再发送一个request包后,目标主机返回了一个echo reply包。所以怎么标识tracert探测结束?答案是收到目标主机的echo reply 报文。

1614854819_6040baa33ff55a11232e5.png!small?1614854820240

在28的request包发完收到最后一个超时包后,29再发送一个request包就不会返回超时包(因为是第一次tracert,之前都没有tracert或者ping),然后30再发送一个request包后,目标主机返回了一个echo reply包,而对于一个目的地址(这里是172.16.1.3)request包只会发送三个,29浪费了一个,所以最后只能收到2个echo reply包。

1614854872_6040bad89569646e62fd8.png!small?1614854878336

1614854898_6040baf2540fb92ee7dd1.png!small?1614854901831

可是为什么tracert第一次或者ping完第一次后再tracert就有三个echo reply包了呢?因为第一次我们可以把设备当成傻瓜,不知道28就是最后一个超时包;第二次就学聪明了,懂得到58已经是最后一个超时包了。

路由器系统类似

1614854911_6040baff97936d7431e72.png!small?1614854919254


文章来源: https://www.freebuf.com/articles/others-articles/265144.html
如有侵权请联系:admin#unsafe.sh