计算机网络
2023-02-11 19:35:00 12 举报
AI智能生成
计算机网络
作者其他创作
大纲/内容
重要的设备:中继器(Repeater,也叫放大器)和集线器。
确保原始的数据(比特流)可在各种物理媒体上传输
物理层
数据链路层为网络层提供可靠的数据传输;
基本数据单位为帧;
主要的协议:以太网协议;
两个重要设备名称:网桥和交换机。
将数据组合成数据块(帧(frame)),该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
数据链路层
网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
基本数据单位为IP数据报;
IPv4是32位IP地址,而IPv6是128位IP地址。IPv4是数字地址,用点分隔。IPv6是一个字母数字地址,用冒号分隔。
1.地址类型:IPv4具有三种不同类型的地址:多播,广播和单播。IPv6还具有三种不同类型的地址:任意广播,单播和多播。
2.数据包大小:对于IPv4,最小数据包大小为576字节。对于IPv6,最小数据包大小为1208字节。
3.header区域字段数:IPv4具有12个标头字段,而IPv6支持8个标头字段。
4.可选字段:IPv4具有可选字段,而IPv6没有。但是,IPv6具有扩展header,可以在将来扩展协议而不会影响主包结构。
5.配置:在IPv4中,新装的系统必须配置好才能与其他系统通信。在IPv6中,配置是可选的,它允许根据所需功能进行选择。
6.安全性:在IPv4中,安全性主要取决于网站和应用程序。它不是针对安全性而开发的IP协议。而IPv6集成了Internet协议安全标准(IPSec)。IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性的。
7.与移动设备的兼容性:IPv4不适合移动网络,因为正如我们前面提到的,它使用点分十进制表示法,而IPv6使用冒号,是移动设备的更好选择。
8.主要功能:IPv6允许直接寻址,因为存在大量可能的地址。但是,IPv4已经广泛传播并得到许多设备的支持,这使其更易于使用。
IP协议(Internet Protocol,因特网互联协议)(IPV4 IPV6)
属于网络层,主要传递差错报文,和其他信息
主机不可达报文什么时候发出:路由器给主机寻路没有找找到路径向源ip发回icmp不可达
分类:差错报文和查询报文
主机发送ip数据报给R1默认下一跳R1 R1收到数据后检查路由表下一跳是R2于是给主机发送重定向报文,R1接受后数据报发送给R2不在给R1
ICMP重定向报文出现在在何种场合
1.向目的主机发送多个icmp回送请求报文
2.通过返回的回送报文的时间和成功相应次数估算数据包往返时间及丢包率
ping是icmp重要的应用
ICMP协议(Internet Control Message Protocol,因特网控制报文协议)
实现从IP 地址到MAC 地址(物理地址)的映射
ARP高效运行的关键:每个主机都有ARP缓存
ARP报文:以太网首部+以太网地址+帧类型+ARP首部+发送者ip和硬件地址接受者ip和硬件地址
1.在局域网内,主机A向主机B发送IP数据报时,首先会在主机A的ARP缓存表中查询iP--->mac的映射,有则加入MAC帧的首部,并通过局域网将该MAC帧发送到MAC地址所在的主机
2.没找到就广播,B收到消息给A以单播的形式发送一个带有自己MAC地址的相应分组
3.收到后就在ARO缓存表中写入主机B的ip和对应的MAC地址
4.如果不在同一个局域网,就去找吓一跳的路由器的地址,然后一跳一跳找到最终的B然后建立通信链路
ARP的过程
ARP协议(Address Resolution Protocol,地址解析协议)
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)
包含的主要协议:
重要的设备:路由器
\"路径选择、路由及逻辑寻址\"
网络层
传输层负责将上层(应用层)数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;(段或报文)
首字节自己、初始随机
序列号字段Seq 32bits
确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号(Ack num=Seq+1)
确认号字段Ack 32bits
用于流量控制、表示接收方缓存中的剩余空间
窗口字段 16bits
占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。(ACK是连接建立状态的标志。)
ACK 字段
RST:表示TCP出现差错,必须释放连接重新建立新的连接
连接建立和拆除
RST、SYN、FIN字段
指明数据在段内的起始位置
HeaderLength
TCP头部20字节
1.客户端向服务端发送SYN,携带目标ip 端口信息以及自己的序列号seq 然后进入SYN-SEND状态
2.Listen状态的服务端收到后给客户端返回SYN +ACK包、ack=x+1 seq 然后进入SYN-RCVD状态
3.客户端收SYN+ACK后向服务端返回ACK确认包,发送完毕后进入连接状态
1.TCP是可靠的通信协议,希望接受的数据是完整有序的。TCP为了实现可靠传输引入序号seq、确认号ack字段以此来判断对方是否收到没有就重发,通信时需要确认对方收到了初始序号。
1.客户端不知道服务端的序列号从而认为连接未建立
2.客户端第一次发的请求延时很久导致这次连接结束后服务端又收到了,然后又建立了连接
2.两次握手下的场景及出现的问题
3.三次握手可以避免两次握手的情况
问题1:为什么不是两次握手而是三次握手
客户端:一般通过connect()函数来连接服务器,第二次握手返回成功值,认为已经建立了连接会发送数据的带服务端的RST包响应感知错误
服务端:SYN-RCVD状态会根据tcp超时重传机制,等待3秒6秒12秒后重新发送SYN+ACK包,重发次数在/proc/sys/net/ipv4/tcp_synack_retries修改默认是5,如果超过指定次数任然未收到ACK应答则断开连接。
问题2:如果最后一次握手ACK丢失会出现什么状态
三次握手
1.首先客户端向服务端发送FIN序列号seq、然后客户端进入FIN-WAIT -1终止状态表示没有数据要发了
2.服务段收到客户端的FIN后,发出确认报文ACK、然后服务端进入CLOSE-WITE状态并通知应用层,等待数据发送完毕
3.客户端收到ACK后进入FIN-WITE-2状态对方已经同意释放连接了,此时服务度完成所有数据发送、给客户端发送FIN并进入LAST-ACK最后确认状态
4.客户端收到FIN后发出确认ACK,然后进入time-wait状态并经过2MSL(最长报文寿命)的时间后,进入CLOSE状态
MSL:最大分段寿命MSL典型值是30S 1min,表示一个分段在网络中的最大时间
1.tcp是全双工的面向连接的可靠协议,所以A给B发后表示A没有数据发了,并不代表B没有数据发了,此时A还能收到B的数据,B给A发了ACK以后表示B知道A没数据发了但是B还有数据发。
2.建立连接时可以同时返回SYN-ACK 但是断开时,服务端数据并不一定完全发送完毕,所以要先确任然后等待数据发送完毕后再进行FIN请求
问题3:为什么是四次挥手而不是三次
1.保证全双工TCP可以连接正常终止,如果没有当A给B响应ACK后A关闭连接,次时如果ACK丢失,B以为A没有收到自己的关闭请求会重试发送FIN,此时A无法收到这个连接,导致B端异常
2.数据包正常过期防止lost duplicate对后续新建立的连接传输造成破坏
问题4.1 TIME-WAIT状态的意义
正常来说四次挥手就应该断开连接,但是网络是不可靠的,有可能最后一个ACK丢失,2MSL是一个发送和回复的最大时间,如果直到2MSL都没到FIN客户端会以为ACK已经被成功接收断开连接
问题4.2 为什么TIME-WAIT状态需要经过2MSL才能CLOSE
会导致高并发下大量端口被占用、多到把可用端口耗尽(65535),一段时间后大量释放、使得服务呈现忽好忽坏的变化
大量TIME-WAIT会发生什么
1.客户端改成长连接 需要客户端改动比较大可以彻底解决问题高并发下性能较好
2.修改linux内核减少MSL时间:可以降低出问题的概率难度很高
解决方案:优化TCP.IP内核参数(难度和风险很大),及时将time-wait状态的端口清理掉
问题4.3 TIME-WAIT的危害
问题4:TIME-WAIT
TCP有一个保活计时器,每次请求都会复位,如果两小时都没有收到客户端的信息,服务端会发送探测报文段每隔75秒发一次连续发10次都没有响应,服务器会认为客户端出现问题,接着关闭连接
问题5:如果已经建立连接,客户端突然故障怎么办
1.服务器保持了大量TIME_WAIT状态
TIME_WAIT 814CLOSE_WAIT 1FIN_WAIT1 1ESTABLISHED 634SYN_RECV 2LAST_ACK 1
常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
2.服务器保持了大量CLOSE_WAIT状态
改改linux参数即可。
检查自己的代码吧,反正close_wait基本就是自己这边的问题了。
close-wait的解决办法
服务端接口耗时较长,客户端主动断开了连接,此时,服务端就会出现 close_wait
而TIME_WAIT和CLOSE_WAIT两种状态如果一直被保持,那么意味着对应数目的通道就一直被占着,而且是“占着茅坑不使劲”,一旦达到句柄数上限,新的请求就无法被处理了,接着就是大量Too Many Open Files异常,tomcat崩溃。。。
linux分配给用户的文件句柄是有限的1024
问题6:如何解决大量的close_wait和close_wait
四次挥手
保证可靠传输:数据包校验、失序的数据包重排交给应用层、丢弃重复数据、应答机制、超时重发、流量控制
TCP将保持首部和数据的校验和。这是个端到端的校验和,检测数据是否在传输过程中发生变化,如果收到的校验和有差错,TCP将丢弃这个报文段和不确认收到
1.校检和
1.TCP连接都有固定大小的缓冲空间、接收端只允许发送接收端缓冲区能接纳的数据、如果接收方来不及处理数据,能提示发送方降低发送速率,防止丢包。(可变大小的滑动窗口协议)
2.发送窗口大小等于min(拥塞控制窗口),接收方(接受窗口)
3. 0窗口探测,解决滑动窗口关闭的死锁问题
2.流量控制:接收方要求发送方降低速率、tcp利用16位接收窗口字段实现
防止一开始大量传输导致网络拥塞,探测网络能接受的程度
初始cwnd=1 然后每次翻倍直到ssthresh出发拥塞避免
1.慢启动
每次cwnd+1 ,到达门限出发拥塞发生算法
2.拥塞避免
计时器 基于时间的
1.超时重传、ssthresh减半然后重置慢启动--->开始慢启动
门限减半-->开始快恢复
接收方收到失序报文后立即发出确认(让对方早知道),而不是等待自己发送数据再发送,发送方只有连续收到三个重复确认就立刻重传未收到的报文,而不是等待设置的重传计时器时间到期再重传
概率学问题、因为内部顺序也是不一致的两次duuplicated ack可能是乱序造成的,三次也可能是丢包造成的、四次更可能是但是四次效率太低了,这是实践结果
为什么三次确认?
快重传
2.快速重传
3.拥塞发生时的两种算法
3表示3个ack已经发送成功了这3个分段已经离开网络了,也就是可以再发3个分段了
门限减半、起点减半+3*SMSS-->进入拥塞避免
如果没有快恢复会用定时器要求传输停止,暂停的时间没有新的数据包发送
4.快恢复
3.拥塞控制:网络拥塞时,减少数据的发送
原理:发送完一个分组停止、等待对方确认,对方确认后再发下一个分组,如果发送方发完后一段时间没有收到确认帧,通常会重新发
优点:简单
缺点:信道利用率低,等待时间长
tcp发出一个段后,启动一个定时器,等待目的段确认没如果不能及时收到就重发
超时重传机制
A向B发 B给A确认,但是确认丢了A不知道,超时后A继续发 B会做两个事:1丢弃A重发的消息,2重新A发确认消息
确认丢失机制
B给A回的迟到,导致A一次收到两次确认:A丢弃第二次B的消息、B丢弃A第二次的消息
确认迟到机制
1.停止等待ARQ
原理:提供信道利用率,发送维持一个窗口,窗口内的分组连续发送出去不需要等对方确认,接收方累计确认对最后一个分组发送确认即可
优点:利用率高、容易实现、丢失也不必重传
缺点:不能及时给发送端反馈
2.连续ARQ
4.ARQ自动重传协议
TCP如何保证可靠传输
1.要发送的数据大于TCP发送缓冲区剩余大小、发送拆包2.待发送的数据大于MSS(最大报文长度),tcp将进行拆包3.要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入的数据一次发出去,进行粘包4.接收端应用层没有及时读取接受缓冲区的数据,将发送粘包
发生原因
1.给每个数据包增加首部,包含数据包实际长度,接收端就知道了2.发送端每个数据包封装为固定长度(不够补0)3.可以在数据包边界增加特定符号以方便拆包
解决方案
粘包&拆包
有确认、三次握手等机制容易实现DOS、DDOS、CC等攻击
易受攻击
数据准确无误传递、HTTP、HTTPS、FTP等传输文件协议
场景
TCP
源端口 16bit
目的端口 16bit
长度 16bit
UDP校验和 16bit
8个字节头+有效载荷字段
不可靠、无连接协议
DNS、视频、聊天室
UDP
1.TCP是建立连接 UDP是无连接的
2. TCP是可靠、无差错、不丢失、不重复、按序到达;UDP不保证
3.TCP是面向字节流、UDP面向报文
4.UDP无拥塞控制适合实时性
5.TCP是点到点;UDP支持一对多,多对一
6.TCP首部20个字节;UDP8个字节
7.TCP全双工可靠信道;UDP不可靠信道
区别
包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
重要设备:网关。
传输层
首先在浏览器缓存中找
然后在windows DNS缓存中找
然后在操作系统的host文件中找
然后本地的域名服务器去找 一般在你所在城市的某个角落
DNS 根域名服务器去找
顶级域名解析服务器
权威域名解析服务器
span style=\
1.点下回车进行DNS域名解析
2.使用三次握手建立tcp连接
3.浏览器发起http请求
4.服务器解析http请求并找到指定资源后返回http响应
5.客户端解析html代码、然后请求代码中的资源
6.渲染展示界面
7.四次挥手关闭tcp连接
协议:DNS TCP OSPF ARP HTTP
输入url到渲染一次网页的过程,以及用了什么协议
地址转换程序
管理com\et\\cn等顶级域名ip地址
提供TLD服务器的IP地址
根域名服务器(最重要)
管理各自域名下面的全为域名如apple.com域名服务器的ip地址
顶级域名服务器
管理www.apple.com的ip地址
权限域名服务器
本地域名服务器
域名服务器
域名空间
组成
本地DNS缓存
本地host文件
大公司、网络运行商自己的 DNS 服务器 比如Google 的“8.8.8.8\"
本地的DNS服务器【非权威域名】
减轻域名解析的服务器压力
DNS缓存是由操作系统维护的临时数据库。它存储了以前的DNS信息。有助于减少DNS服务器的网络流量和DNS的平均时延。
DNS缓存
根域名-->顶级域名-->权威域名搜到后-->存在本地DNS缓存
客户端-->本地 (递归查询host和本地缓存)
查找过程
DNS(域名系统:主机----ip地址)
定义:http是超文本传输协议传输文字、图片、音频、视频等超文本数据的约定和规范
1.http明文传输和https密文传输
2.http不需要ca证书、https需要
4.http端口80,https为443
http和https的区别
相同的公钥加密
适合大数据加密、公钥的安全性需要考虑
对称加密
最好不用的秘钥 公钥加密私钥加密公钥解密
公钥随意分发、私钥自己保存
适合少数据量
非对称加密
单向散列函数
报文加密
https的加密机制
1.浏览器发起https请求 要求和服务器建立ssl连接2.服务端返回https证书,生成一对公钥和私钥 公钥发回给客户端3.客户端验证证书是否合法,不合法就提示告警
证书验证阶段
1.服务端拥有非对称加密的公钥A和私钥A2.浏览器向网站服务器请求,服务器把公钥A明文传给客户端3.客户端随机生成对称加密的秘钥X,通过公钥A加密后发送给服务端4,服务度解密后拿到对称秘钥X5,后续双方使用X秘钥进行加密解密传输
数据传输阶段
ssl过程
中间人劫持后换成自己的非对称秘钥B来欺骗客户端,然后解密得到客户端的随机秘钥X
中间人攻击
公钥由第三方认证机构CA来去报同一个
预防
bug
客户端发送支持的SSL版本号、session id、随机数、客户端支持的加密列表
服务端应答
1. 建立安全连接
2. 服务器鉴别和秘钥交换
3. 客户端鉴别和秘钥交换
4.完成
握手协议
保密性,使用握手协议定义的秘钥实现
完整性,握手协议定义了消息认证码MAC保证完整性
客户端和服务端鉴别对方确认安全信息的算法
记录协议
会删除相关的会话号秘钥等第一个字节是错误类型,1是waring2是error 第二个字节是实际的错误类型
双方发现错误时向对方发送,致命错误立刻关闭ssl连接
警报协议
客户端携带session id发送给服务端
服务端检索session id缓存记录,如果没有检查到缓存过期就按正常的握手过程进行
如果有就返回之前的加密的秘钥
如果session已经有了执行会话恢复
处于应用层和传输层之间
主要任务是提供私密性,信息完整性和身份认证
SSL协议
请求方法GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
get方法显示在?地址栏有字符限制最多1024个字符不适合大数据量传输
GET在浏览器回退时是无害的,而POST会再次提交请求。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST么有。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
post方法不显示封装在http请求数据中
GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
GET产生一个TCP数据包;POST产生两个TCP数据包
GET /index.html HTTP/1.1
请求方法+URL+HTTP协议
请求行
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:User-Agent:产生请求的浏览器类型。Accept:客户端可识别的内容类型列表。Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
请求头部
空格
请求数据
请求报文
100继续101转换协议102由webDAV扩展的状态码,代表处理将被执行
1XX消息接收继续处理
200 OK客户端请求成功206与200基本相同但是响应头后面没有body数据,服务端区分是有必要的
2XX成功
308 永久跳转不允许post转向get请求
301 请求资源永久的更换了URI
303 任意请求到get重定向307 不允许post到get重定向
允许各种重定向
400 请求报文有错误401 未授权需要身份验证403 收到请求缺拒绝执行404 没有找到请求的资源405 采用浏览器不允许的请求方法请求
4XX客户端错误
500错误通用码501 not implemented 客户端请求的功能还不支持502 bad gateway 对用户访问请求的响应超时503 服务器忙、无法响应服务
5XX服务端错误
状态码
状态行=协议类型及版本号+状态码+状态码文字描述
状态行
首部行
响应正文
实体行
响应报文
http报文格式
http2.0解决
对头阻塞问题
浏览器DNS hosts 本地DNS缓存问题
DNS查询问题
1.1解决
建立连接三次握手和慢启动
延迟
主要是带宽和延迟(现在网络基础建设不用愁带宽影响网速了)
引入更多的缓存策略
缓存处理
允许只传输头部 206状态码
节约宽带
没有host头域会报告400错误
可存在多个虚拟主机共享一个ip地址
Host域
新增24个状态码 409请求资源与当前状态冲突 410服务器某个资源被永久删除
一个tcp可以传送多个http请求和响应
长连接
一个连接处理多个请求 对头阻塞的问题
多路复用
编码压缩,双方维护索引表,记录出现过的head key-value
头部压缩
服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。正因为没有发起请求,建立连接等操作,所以静态资源通过服务端推送的方式可以极大地提升速度
请求资源时服务器把多个资源传输给你
服务器推送
现在二进制健壮性
二进制协议
放弃了tcp协议基于udp的quic协议
短连接的优点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段。
strong style=\
服务器生成一串字符,作为客户端请求的令牌减少服务器和数据库查询的压力跨服务器使用无状态可扩展安全、无法伪造使用设备号加MAC地址作为token用session值做token可以从http头部携带
Token
session服务端保存的数据结构、表示和跟踪用户状态打开和关闭浏览器算作一次会话cookie客户端的一种机制、存在客户端、不安全可以被用户静止单个容量不能超过4K 一个站点最多保存20个cookie sessionid 在cookie作用域是一次请求均无法夸域名、token可以跨域名
我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
http
2的32次幂为节点
增加虚拟节点每个服务器多次hash保证均匀
轮训、最快响应时间、最少连接数、哈希和一致性哈希
只承担转发的作用,负载均衡的作用
代理
1.直接本地的端口创建ServerSocket的实例用来监听指定端口的连接请求2.通过accept()方法返回socket实例,建立一个和客户端的新连接3.通过Socket实例获取inputStrenm和outputStream读写数据4.数据传输结束 close关闭
服务端
1.指定的远程服务器ip地址和端口创建Socket实例2.通过Socket实例获取InputStream和OutputSteam来进行数据的读写3.数据传输结束,调用soclet的close方法关闭连接
基于TCP的编程
指定本地端口创建DatagramSocket实例通过字节数组创建DatagramPacket实例,调用其receive方法来接受数据设置实例返回的数据、调用send方法发送传输完成关闭连接
创建实例通过ip和端口调用send方法发送数据包通过字节数组创建实例 receive方法接受数据包传输完成关闭连接
客户端
基于UDP的Socket编程
传输层给应用层提供的接口socket
应用层(TCP/IP,包括下三个)
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
会话层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换(JPEG、ASCII、EBCDIC)等。
表示层
为操作系统或网络应用程序提供访问网络服务的接口。件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等
应用层
网络层次的划分(tcp/ip五层,OSI七层)
问题2.1 TIME-WAIT状态的意义
问题2.2 为什么TIME-WAIT状态需要经过2MSL才能CLOSE
问题2.3 TIME-WAIT的危害
ping命令是应用层协议,直接使用网络层的icmp协议向计算机发生ICMP回应报文
问题6:ping命令是哪一层的协议?
URI是统一资源标志符,主要作用唯一标识一个资源--->身份证
URL统一资源定位符,提供路径--->通过URL地址找人
问题7:URL和URI的区别
属于网络层协议,主要作用实现ip地址到mac地址的映射,每个主机或者路由器都有一个ARP缓存表,来找MAC地址
1. 基于功能来考虑,ARP是链路层协议2. 基于分层/包封装来考虑,ARP是网络层协议
问题8:ARP协议
1.ip地址用户可以更改,管理相对困难,MAC地址不可更改所以两者结合使用
2.只用MAC也是不行的,以前只用mac地址但是现在网络越来越多,路由过程越来越复杂,对于目的地址在其他子网的数据包,路由只需要送到子网就行
3.ip和地域关联 ,同一个子网的设备ip前缀都一样,这样路由器通过ip前缀就可以找到子网,如果只用mac,则路由器需要极大的空间来记录mac对应的子网,无法实现
问题9:有了IP地址,为什么还要MAC地址?
问题汇总
计算机网络
0 条评论
回复 删除
下一页