赞
踩
目录
1. 终端设备:PC、iphone、ATM提款机、汽车导航。
2. 网络互联设备:集线器、交换机、路由器、防火墙、IDS、IPS、AP、基站。
IDS:入侵检测系统
IPS:集成电路板
AP:无线接入点
3. 用于连接设备的链路/介质:同轴电缆、双绞线、光纤、无线。
1. 企业网络远程互连技术:VPN(虚拟专用网络)
2. 企业网络基本架构:核心层、汇聚层、接入层
接入层:提供流量接入
汇聚层:对接入的流量进行汇集
核心层:将企业网络流量进行转发
运作方式:
大量主机接入交换机(数量较大)—> 将很多的交换机汇聚在几台交换机 —> 连接路由器进行上网
图示:
1. 同轴电缆:现在不怎么用了。传输速率:10M
2. 双绞线:最大传输距离100米,尽量控制在90米以内。传输速率:10M、100M、1000M
3. 光纤:单模(黄色)/多模(橙色)。传输速率:10M、100M、1000M
4. 串口电缆:传输速率只有几M。
知识卡片1:冲突域与CSMA/CD
冲突域(使用同轴电缆或集线器)
使用CSMA/CD(避免冲突)
原理:先听后发,边发边听,冲突停发,随机延迟后重发。
知识卡片2 :双工模式
双工模式
1)全双工:收、发数据可以同时进行。
2)半双工:收、发数据不能同时进行。
共同点:都支持双向传输数据(即:可以发也可以收)
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)
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。
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地址是否已经存在去。
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
制作不易,还请多多支持哦!
想要了解更多关于通用技术的知识?轻轻划动你的手指,访问我的主页叭⁽(◍˃̵͈̑ᴗ˂̵͈̑)⁽
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。