当前位置:   article > 正文

1.1 数据通信模型_终端设备接收到数据帧时,会如何处理?

终端设备接收到数据帧时,会如何处理?

目录

00. 企业网络架构介绍

一、网络的组成和结构

二、企业网络

01. 传输介质简介

02. 通信模型介绍

一、协议

二、模型

三、数据封装过程

四、终端之间的通信

03. 传输层协议TCP与UDP

04. 网络层协议ARP

05. 网络层协议ICMP


00. 企业网络架构介绍

一、网络的组成和结构

1. 终端设备:PC、iphone、ATM提款机、汽车导航。

2. 网络互联设备:集线器、交换机、路由器、防火墙、IDS、IPS、AP、基站。

IDS:入侵检测系统

IPS:集成电路板

AP:无线接入点

3. 用于连接设备的链路/介质:同轴电缆、双绞线、光纤、无线。

二、企业网络

1. 企业网络远程互连技术:VPN(虚拟专用网络)

2. 企业网络基本架构:核心层、汇聚层、接入层

接入层:提供流量接入

汇聚层:对接入的流量进行汇集

核心层:将企业网络流量进行转发

运作方式:

大量主机接入交换机(数量较大)—> 将很多的交换机汇聚在几台交换机 —> 连接路由器进行上网

图示:

01. 传输介质简介

1. 同轴电缆:现在不怎么用了。传输速率:10M

2. 双绞线:最大传输距离100米,尽量控制在90米以内。传输速率:10M、100M、1000M

3. 光纤:单模(黄色)/多模(橙色)。传输速率:10M、100M、1000M

4. 串口电缆:传输速率只有几M。

知识卡片1:冲突域与CSMA/CD

 冲突域(使用同轴电缆或集线器)

使用CSMA/CD(避免冲突)

原理:先听后发,边发边听,冲突停发,随机延迟后重发。

知识卡片2 :双工模式

双工模式

1)全双工:收、发数据可以同时进行。

2)半双工:收、发数据不能同时进行。

共同点:都支持双向传输数据(即:可以发也可以收)

02. 通信模型介绍

一、协议

1. 协议的必要性:统一数据格式和传输,实现通信。

/*类比:假设有一个只会说英语的外国人和一个只会说中文的中国人,他们之间要实现无阻碍交流,怎么办呢?

答案是:让他们说相同的语言,就能沟通无阻。  相同的语言类比为协议。

不同的厂商、不同CPU、不同操作系统之间要想实现通信,必须要有相同的协议。*/

二、模型

1. OSI七层模型 (实际中并不使用)

1)应用层:用户APP里的数据(如:图片、声音、文字等等)

2)表示层:对APP的数据进行编码(编码成计算机理解的形式)

             如:用BMP或JPG编码,来表示图片数据

                    用WAV或MP3编码,来表示声音数据

                    用WMV或AVI编码, 来表示视频数据

3)会话层:建立两个APP之间的会话。 如:淘宝上面用微信支付。

      网站服务会管理和控制登录状态(网站登录后,不用每次都登录)

      负责同步服务(视频关掉,下次打开从断点继续播放)

4)传输层:建立TCP或UDP连接

TCP:适合对完整性要求高的应用,如:文件传输。(可靠传输、但有延时)

UDP:适合对实时性要求高的应用,如:视频聊天。(不可靠传输、速度快)

(利用端口号实现服务进程到服务进程的传输)

5)网络层:基于IP地址进行路由转发。(所有地址采用同一个协议)【类比:普通话】

                  (逻辑地址端到端传输)

6)数据链路层:各段链路的通信协议。(不同链路段采用不同协议)【类比:方言】

                            使用MAC地址(物理地址跳到跳传输)

7) 物理层:比特流传输。

三、数据封装过程

【发送流程】

 表示层发送报文 ——传输层—> 加上端口号,封装成段 ——网络层——> 加上IP地址,封装成包

——数据链路层——> 加上MAC地址,封装成帧 ——物理层——> 比特流

四、终端之间的通信

1. 数据链路层控制数据帧在物理链路上传输。

两个主机传输的数据最终形态是数据帧。

2. 数据帧的协议

如何区分两个协议?

Length/Type >= 1536              Ethernet_Ⅱ

Length/Type <= 1500              IEEE802.3  

 3. Ethernet_Ⅱ的帧格式

Type表示上层(网络层)使用的协议:

0x0800:IP协议

0x0806:ARP协议

4. MAC地址(48位):唯一标识一台主机

MAC地址的组成:

MAC地址由两部分组成,分别是供应商代码和序列号。

前24位代表供应商代码(由IEEE管理和分配),后24位序列号由厂商自己分配。

5. 数据帧的发送方式

1)单播:一对一

 第8个比特位是0 —> 单播

2)广播:发送给所有人

3)组播:分小组传播

  第8个比特位是1—> 组播

如何区分单播和组播?

        第8个比特位:为0 —> 单播

                                为1 —> 组播

6. 数据帧的发送和接收

问题1. 如何知道 送往哪个上层协议?

    答:数据帧中的Type字段表示上层协议。

问题2. 终端设备接收到数据帧时,会如何处理?

①查看数据帧的目的MAC地址,若与自身相同接收,若不同则丢弃;

②查看帧校验FCS,若校验完整将数据帧解封装,若检验不完整则丢弃。

7. IP报文(32位)

1)IP报文头部

2)IP包分片

 标识符:同一个数据包的分片具有相同的标识符。

 标志(3bit):

        第2个比特位是DF(表示“不能分片”),DF=0允许分片。

        第3个比特位是MF(表示“还有分片”),MF=0表示这是最后一个数据包片。

片偏移:表示每个分片在原始报文中的位置。

3)生存时间(TTL)

目的:路导致的网络拥塞。

           每经过一台三层设备,TTL减1。当报文中

           TTL减为0时,报文被丢弃。

4)协议

含义:与数据帧中的Type字段一样,IP报文的协议字段同样表示上层使用的协议

协议字段

TCP:0x06(6)

UDP:0x11(17)

03. 传输层协议TCP与UDP

1. 众所周知端口:0-1023

21端口:FTP文件传输服务

22端口:SSH端口

23端口:TELNET终端仿真服务

25端口:SMTP简单邮件传输服务

53端口:DNS域名解析服务

80端口:HTTP超文本传输服务

110端口:POP3“邮局协议版本3”使用的端口

443端口:HTTPS加密的超文本传输服务

1433端口:MS SQL SERVER数据库 默认端口号

1521端口:Oracle数据库服务

1863端口:MSN Messenger的文件传输功能所使用的端口

3306端口:MySQL默认端口号

8000端口:腾讯QQ

2. TCP与UDP

 UDP和TCP可类比为写信和打电话:

UDP类似于写信通讯:它无法确认对方是否收到·,无法确认内容是否完整,以及顺序是否正确。

TCP类似于电话通讯:它的流程很完整,包括电话接通,互相通话以及结束挂断。

3. TCP如何保障通信?

三次握手、传输确认、四次挥手

(1)三次握手:

①客户端首先向服务端发起连接请求数据SYN,询问对方是否同意建立连接。

②服务端确认建立连接,并回复一个SYN+ACK包。

③客户端收到后回复一个ACK包。

问:为什么是3次握手而不是2次?

答:为了解决网络信道不可靠的问题

假设该场景:若只有2次握手过程。

客户端发送了一个SYN1包给服务端,但中途因为某些原因没有发送到服务端。

于是客户端重发一个SYN2给服务端,服务端返回SYN+ACK包给客户端,建立起连接;

然而,此时SYN1又重回到该信道上,继续传送给服务端,服务端以为是一个新的连接请求,于是将其接收后再次返回给客户端一个SYN+ACK包。

现在,服务端认为有2个连接,其实客户端只发起了1个连接,造成了状态不一致。

如果在3次握手的情况下:服务端收不到客户端的ACK包,不会认为连接建立成功,从而建立可靠的连接。

 

(2)如何解决丢包问题和乱序问题?

①TCP为每一个连接建立了一个发送缓冲区,发送数据时从发送缓冲区取一部分数据组成发送报文,在其TCP协议头中会附带序列号和长度。

②接收端收到数据后,需要回复确认报文, 确认报文中的ACK=序列号+长度,也就是下一包的发送序号,这样一问一答的发送方式,能够使发送端确认发送的数据已经被对方收到。

③发送端也可以一次发送多包数据,接收端只需要回复一次ACK就可以了。于是,发送端可以把要发送的数据分隔成一系列的碎片发送到对端,对端根据序列号和长度重构完整的数据包。

④假设在发送过程中丢失了其中的某些数据包,接收端可以要求发送端重传。比如假设丢失了100-199的报文,接收端向发送端发送ACK=100的报文,发送端收到后重传这包数据,接收端再将其补进去。

(3)四次挥手

①客户端向服务端发送连接关闭请求FIN,自己进入终止等待1状态,这是第一次挥手。

②服务端收到FIN包后,回复一个ACK包,表示自己进入到了关闭等待的状态,客户端进入终止等待2状态,这是第二次挥手。

③服务端此时还可以发送未发送的数据,而客户端还可以接受数据,待服务端发送完数据之后,发送一个FIN包,进入最后确认状态,这是第三次挥手。

④客户端收到后回复ACK包,进入超时等待状态,经过超时时间后关闭连接;而服务端收到ACK包后立即关闭连接,这是第四次挥手。

问:为什么客户端需要等待超时时间?

答:为了保证对方已接受到ACK包,确保可靠的断开。

        因为如果一发完ACK包后立马释放连接,一旦ACK包丢失,服务端将一直停留在最后确认阶段。如果客户端在发送完ACK包之后等待一段时间,服务端要是没收到ACK包,会重发FIN包,客户端收到后会重发ACK包并刷新超时时间,从而建立可靠的断开。

4. TCP与UDP的区别

TCP稳定可靠,适用于准确无误的传输,如:文件传输、发送邮件、浏览网页等。

UDP速度快,但可能有丢包的可能,适用于对实时性高但丢少量包不敏感的场景,如:域名查询、语言电话、视频电话。

UDP有一个十分重要的应用场景——隧道网络,比如:VPN,VXLAN。

04. 网络层协议ARP

1. ARP:由IP得出MAC地址的过程是由ARP协议来实现的。

【场景】主机A向主机B发送数据

在发送数据之前,查看arp表,看看表中是否有主机B的MAC地址。

使用  arp -a 查看arp缓存表,如果有,则将MAC地址带入并封装为数据帧。

2. 工作过程

①源主机和目的主机在同一个局域网络中

a.    假设PC2是新增进来的主机,此时PC1的arp表中没有PC2的信息。故,PC1会广播一个arp请求报文以获取PC2的MAC地址:

b.    此Request请求报文中包括:目的IP地址、源IP地址、源MAC地址,由于以广播的形式发送,所以目的MAC地址是全F(广播地址)。

c.    该局域网下的所有主机都会收到PC1发出的arp请求报文,并比对自身IP是否与目的IP相一致,若一致,则接收;不一致,则丢弃。

d.    因此,PC2主机接收了PC1发起的Arp请求报文,并返回一个响应报文。其中,将源IP地址和目的IP地址填入自己的,目的IP地址和目的MAC地址填写PC1的。并以单播方式返回给主机PC1。

e.    PC1收到PC2发的响应报文后,比对自身的地址是否与响应报文中的目的地址相同,若相同,则将源IP地址和目的IP地址写入arp表中的目的IP和目的MAC中。

至此,主机PC1和PC2都有彼此完整的arp表。

②源主机和目的主机处于不同的网络中(Arp代理)

PC1先将arp请求报文传给R1,R1再去网2匹配。与上面一个场景相似,无非多了一个R1中间人。

位于不同网络的网络设备在不配置网关的情况下,可以通过Arp代理实现相互通信。

3. 免费arp

作用:用来检测IP地址是否冲突。

某台主机发送arp请求报文,目的IP和源IP都是自己的,目的MAC为空,将其封装为以太网帧时,目的MAC地址为广播地址。按理说,如果该网络中自己的ip地址是唯一的话,就不会收到arp响应报文了,但如果收到了,则说明ip地址冲突。

问:网络设备在什么情况下会发送arp request报文?

答:当主机之间要进行通信时,然后arp表中没有对方的MAC地址,则通过目的ip地址利用arp请求报文得到目的MAC地址。

问:网络设备什么时候会产生免费arp?

答:网络设备获取ip地址时;网络设备修改ip地址时——> 用来检测该ip地址是否已经存在去。

 

05. 网络层协议ICMP

1. 定义:Internet控制消息协议ICMP(Internet Control Message Protocal)。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

2. ICMP差错检测

例:Ping ·检测网络是否连通。发送回声请求,返回一个回声回复。

 用winshark抓包查看icmp报文:

 3. ICMP重定向

【工作原理】主机A要向服务器A发送消息,但是主机A的网关设置的是10.0.0.100,即右边的路由器R2是它的网关,所以无论去哪都要先经过网关。当消息到达路由器R2时,它发现报文应该发往服务器A,于是R2向主机A发送ICMP的重定向消息,通知主机A直接通过另外一个网关,即10.0.0.200发送,下次就直接从R1走 ——> 次优路径(类比生活中“绕远路”)

ICMP重定向的攻击:

        假设有一台攻击主机(30.0.0.1),攻击者向主机A发送报文,告诉主机A要想发消息给服务器A,就直接发往30.0.0.1发,于是主机A就重定向到攻击主机了。造成ICMP重定向攻击。

4. ICMP错误报告

        网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。

5. ICMP数据包格式

ICMP是网络层协议,向上封装在IP下,再向上封装在以太网帧下。

Type:消息类型,比如回声请求、回声响应。

Code:编码类型。

6. ICMP消息类型和编码类型

7. ICMP应用

(1)ping

ping -a        选择源IP地址

ping -c        选择发送回声请求报文的数量。比如华为路由器默认发5个请求。

ping -f         不分片

ping -h        设置ttl值。默认是255。

ping -i         选择出接口

(2)Tracert 缺省:通过缺省发送报文,探测通信双方之间信息通信的路径。

【注】每经过一跳,TTL值减1,直到减为0为止,都是报文到达目的地所经过的路径。

问:Ping使用的是哪两类ICMP消息?

答:回声请求和回声回复。

问:当网络设备收到TTL值为0的IP报文时,会如何操作?

答:TTL为0的报文将其视为无效报文,丢弃。

参考文献:互联网数据传输原理 |OSI七层网络参考模型_哔哩哔哩_bilibili

制作不易,还请多多支持哦!

想要了解更多关于通用技术的知识?轻轻划动你的手指,访问我的主页叭⁽(◍˃̵͈̑ᴗ˂̵͈̑)⁽

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/173552
推荐阅读
相关标签
  

闽ICP备14008679号