javaEE 网络原理(TCP UDP)

目录

前言:TCP/IP五层协议

一.应用层

二.传输层

1.数据的协议封装与分用

2.UDP协议

1>:对应用层数据包的封装格式

2>:源端口号与目标端口号

3>:知名端口

4>:UDP长度

5>:检验和(checksum)

6>:特点

7>:总结

3.TCP协议

1>:对应用层数据包的封装格式

2>:源端口、目标端口与校验和

3>:首部长度

4>:保留位

5>:特点

(1).确认应答

(2).网络传输的后发先至问题+序列号与确认序列号

(3).超时重传

(4).小总结:

(5).连接管理

(6).TCP的状态

(7).滑动窗口

(8).流量管理

(9).拥塞窗口

(10).捎带机制

(11).面向字节流

(12).异常情况

(13).内容补充

6>:UDP与TCP总结

三:网络层

1>.协议格式

[2>.版本 与 首部长度](#2>.版本 与 首部长度)

[3>.服务类型(type of service)](#3>.服务类型(type of service))

4>.16位总长度

[5>.16位标识 + 3位标志 + 13位片偏移](#5>.16位标识 + 3位标志 + 13位片偏移)

6>.8位生存时间

7>.IP地址

(1).解决方法:

(2).IP地址管理:⽹段划分

(3).子网掩码

(4).网关

(5).路由选择

[8>:8位协议 与 16位首部校验和](#8>:8位协议 与 16位首部校验和)

四.数据链路层

1>.认识以太网

2>.协议格式

3>.目的地址与源地址

(1).介绍

(2).mac地址的数据传输

4>:类型

(1).介绍

(2).ARP请求/应答

5>:CRC

[五: DNS(域名系统)](#五: DNS(域名系统))

六.总结

1.应用层

2.传输层

3.网络层

4.数据链路层


通过之前的回显服务器编写,我们简单了解TCPUDP的特点,可对于面试来说,这点知识是不够的,所以这个博客用于面试顺便加深了解

前言:TCP/IP五层协议

接下来了解每一层具体的使用

一.应用层

1.应用程序所在地就是应用层,平时编写的代码就是在应用层编写

2.应用层包括

(1).自定义协议

自定义协议就是前后端接口交互的的规定 ,规定了数据的传输信息 (前端后端之间如何互相传输数据),确定了传输的数据格式(传输的数据以怎样的格式传递)

(2).现有的协议,其中最具有代表性的为HTTP协议

二.传输层

传输层包括一堆协议,最典型的为UDP协议与TCP协议

1.数据的协议封装与分用

数据进入每一层都需要对应的协议封装,如:

这只是传输,接收方从物理层接收数据后,需要一步一步解析到应用层数据包,最终才能收到消息,这个解析过程称为"分用"

2.UDP协议

UDP传输是以数据报进行传输

1>:对应用层数据包的封装格式

官方给定:

这个图看着不能很好表达效果,优化一下:

2>:源端口号与目标端口号

UDP进行传输,源端口 是发送方使用的端口,目标端口是接收方使用的端口,用于确定数据发送或返回到那个服务上

3>:知名端口

端口号的大小为2个字节(0-65535),而一般写服务器指定端口号不选择0 - 1023,因为这个范围是知名端口的范围

知名端口 :早期计算机在传输层 为一些重要的服务 提供的端口号,范围在0 - 1023

如:ssh服务器用22端口 ,http服务器用80号端口


小知识:

a .知名端口代表建议使用该端口 ,eg:建议http服务器使用80端口,但也可以使用其他未冲突端口

b .随着时代更新,一些服务早已被淘汰,但知名端口范围未缩减,依旧是0-1023

4>:UDP长度

长度 2字节,取值范围: 0 - 65535,单位字节, 表示整个UDP包括报头+载荷的长度 ,但报头大小为8字节,所以一般描述载荷(数据)的大小


问题:一个UDP长度为2字节,数值表示最大为65535个字节,即:64kb,若传输的数据大小超过64kb怎么办?

a.在应用层拆包解包

接着这两个数据包后续进行封装,通过物理层传输到对方物理层开始进行分用,直到应用层进行解包组合操作

优点 :将大数据进行传送 缺点:实现太复杂

b.采用TCP协议

因为TCP是面向字节流,不用担心数据大小

5>:检验和(checksum)

UDP的特点是容易丢包 ,所以在传输之前,会将当前数据 按照一定的方式通过数学公式计算一个值checksum1 ,等传输后,再回根据当前数据进行计算校验值checksum2,若checksum1 = checksum2,表示传输没问题,但不能完全解决丢包,万一整个数据都丢了呢~~

6>:特点

7>:总结

基于UDP特点,若本身不容丢包,且对传输效率较高,不要求建立连接可用UDP

3.TCP协议

注意: 前四个标题解释封装格式,至于剩下的会在TCP的特点中讲到

1>:对应用层数据包的封装格式

2>:源端口、目标端口与校验和

这三个与UDP一样,这里就不介绍了

3>:首部长度

长度为4bit,取值范围: 0 - 15,描述了报头长度

eg:当首部长度取值 15,因为协议规定单位为4字节,代表报头大小: 15 × 4 = 60字节

4>:保留位

核心功能为TCP后续扩展预留空间(如:流量控制、安全标识等)

5>:特点

在UDP中,数据以数据报的形式传输,若成功发送或者中途出现丢包,因为无连接性无法确定数据是否传递过去,会造成用UDP发送一个重要信息,结果因为不清楚对方是否收到,造成种种安全隐患

在TCP中,虽然无法保证数据100%传递,但能确定对方是否收到该数据

接下来讲:TCP的可靠传输

(1).确认应答

核心:数据发送后,对方会返回一个应答报文(ack),代表收到该消息

如:

上述可以理解为一次TCP传输过程,此时暧昧对象说的"可以呀"就是应答报文(ack),我通过这个ack就知道信息成功发送且她答应了

应答报文是特殊的报文,没有载荷,此时这里的ack = 1,表示应答报文

(2).网络传输的后发先至问题+序列号与确认序列号

比如:

这种后发先至问题会造成什么影响,大家都知道,不多赘述

那么如何处理呢,暧昧对象可以引用这些话,分别说:"可以"、 " 一边去",这样即使出现后发先至我也知道她的回答,此时这里的"引用这些话"相当于编号

TCP为了解决这种问题,按照序列号 给传输的数据按照字节编号 ,最后对方按照编号进行排序 ,并返回一个ack (我收到数据,并且期望下次传输时的起始编号 是多少(确认序号))

所以:

32位序号列: 随机产生一个数字,作为传送数据的起始数字编号

32位确定序号:

**(1).**返回当前接受的数字编号的最大值+1

(2). 代表发送方当前传输的数据成功被接收

重点 :32序号列是随机产生一个数字作为起始编号,不是从固定值开始,为了防止序号被预测数据被攻击、应对残留报文

接下来讲 :TCP如何确保"尽可能把数据完整传输" ,即:抵抗丢包

(3).超时重传

在数据传输过程中,丢包是普遍现象,在UDP传输时,为了速度会经常产生丢包现象,在TCP则会超时重传

如:

假设发送的过程中出错,就会出现这种情况

具体情况如下:

第一次发送等待 t1 时间接收ack,若时间超出 t1,再重新发送,继续等待 t2 时间接收ack,若时间超出 t2,再重发并且成功接收ack,此时每一次的时间间隔越来越大,即:t2 > t1

若连续发送多次都是发送错误,没必要继续重传浪费系统资源 ,会认为当前出现严重的网络错误,会断开当前连接

此外,若返回值ack出现丢包,如:

此时,有人问了,发送方一直发送数据,那接收方那边会不会造成数据冗余??不会的

(4).小总结:

TCP的特点之一可靠传输的体现:

a. 数据发送过去对方会给反馈

b. 传输的数据即使乱序 ,也会重新排序保证数据的正确性

c. 即使出现丢包 ,也会触发超时重传

一般来说,除非网络问题,多触发几次超时重传都会成功传输

d.超时重传与确认应答是TCP实现可靠传输的核心概念

接下来讲TCP的"有连接性"

(5).连接管理

开始连接:

TCP的特点之一:有连接性 ,在之前TCP的回显服务器中,客户端在构造方法处 就会与服务器建立连接,具体的连接过程称为"三次握手"

简略图如下:

详细图如下:

问题一:3次握手,那有没有四次握手、五次握手等等?

问题二:三次握手的意义?

1. 先初步确定通信是否通畅 ,是后续传输大量数据的前提

2 .验证对方的发送与接收能力是否正常

3. 进行一些参数的协商工作,如:数据的起始序列号


断开连接:

连接需要三次握手,那么对应的断开连接 则涉及 "四次挥手"

问题:为什么不是三次挥手?

这里 ackfin 不能一起传输,因为ack由操作系统内核控制 ,反应快;而fin 由应用程序控制,反应较慢

回顾之前回显服务器:

(6).TCP的状态

分为两个过程:建立连接关闭连接

a.建立连接

为了方便大家了解,先给出连接过程的图解与对应状态

LISTEN状态 :服务器准备就绪,随时可以被客户端连接

只运行服务器:


ESTABLISTEN :表示当前连接可以通信

接着运行客户端:


SYN_RENT(连接发送) 与 SYN_RCVD(连接收到)

当客户端发送syc进入SYN_RENT状态 ,服务器接收syc进入SYN_RCVD状态 ,等连接完成进入ESTABLELISHED状态

因为连接速度快,肉眼不容易观察,若某天电脑观察到这个现象,请仔细检查网络或代码逻辑

b.删除连接

为了方便大家了解,先给出关闭连接过程的图解与对应状态

这些关闭过程运行很快,肉眼无法观察,所以采取文字叙述

1:客户端发起关闭请求(FIN_WAIT_1 状态)

客户端(主动关闭方 )发送一个 FIN (结束)报文,表示要关闭从客户端到服务器的连接。 此时客户端进入 FIN_WAIT_1 状态

2:服务器确认关闭请求(CLOSE_WAIT 状态)

服务器 FIN 报文,会发送一个ACK (确认)报文,来确认客户端的关闭请求。此时服务器进入 CLOSE_WAIT 状态,表示服务器可以准备关闭连接了,等待调用close()关闭连接

3:服务器发起关闭请求(LAST_ACK 状态)

服务器调用close方法关后,在关闭之前,会发送一个 FIN 报文,表示要关闭从服务器到客户端的连接, 此时服务器进入 LAST_ACK 状态

4:客户端确认并等待(TIME_WAIT 状态)

客户端收到FIN 报文段后,会发送一个 ACK 报文来确认服务器的关闭请求。此时客户端进入 TIME_WAIT 状态,需要等待120s,因为此时要处理ack 或者 FIN可能丢包问题和清除旧数据包,若发送ack后就关闭连接,万一出现丢包会导致数据重传服务器无法处理

5:连接完全关闭(CLOSED 状态)

客户端在 TIME_WAIT状态等待一段时间后,会进入CLOSED状态,完全关闭连接。

(7).滑动窗口

没错,就是算法中的滑动窗口,不过那个是根据这里的滑动窗口演化而来

在TCP网络传输中,每次传输一个数据都要等ack确认,这对于大量的数据传输来说速度太慢了,若是每次传输都有一堆数据传输,速度会更快

如图:`

与滑动窗口关系:

出现的问题:

问题一:若出现丢包怎么办?
a.ack丢包

b.数据包丢失

这种"滑动窗口 "的传输方式,在传输中出现数据包丢失 会不停地的提醒对方发送该数字编号对应的数据称为快速重传

一般接收到对方传来的3次提醒,就会重新传输数据,若是传输失败,则启动超时重传

问题二:快速重传与超时重传的区别??

相同 :都是为了可靠性传输 ,保证数据尽可能完整传输
不同:

(1).触发方式与响应速度:

a. 超时重传依赖计时器超时触发,响应慢

b. 快速重传靠接收方发送的3个重复ACK触发,响应快
(2).定位与适用场景:

a. 超时重传是TCP应对丢包的兜底机制,适用于所有场景(含网络中断);

b. 快速重传是优化机制,仅适用于数据快速传输 与"丢包后后续数据包能正常到达 "的场景,若其失效则启动超时重传

(3).当快速重传处理不了,就会启动超时重传来处理

(8).流量管理

为了使数据快速传输,引入了滑动窗口,每次把一个窗口的数据传输,极大提高了传输速度,窗口越大,传输效率越大,但并不是越大越好,所以流量管理就是对窗口大小的控制

处理方式:

(1).在建立连接中根据报文 确定初始的窗口大小 ,后续根据对方缓冲区剩余空间进行动态调整

(2).若接收方满了,会暂停发送 ,启动超时重传 ,进入等待 ,若超出等待时间 还未传输数据,会发送无数据的"窗口探测报" ,询问对方有空间传输数据吗?

(9).拥塞窗口

⽹络上有很多的计算机, 可能⽹络状态就⽐较拥堵. 在该情况下, 贸然发送⼤量的数据, 很危险
所以, 网络传输不但要考虑对方的接受能力,还要考虑传输环境阻塞情况

那么拥塞窗口如何解决???放一张图来演示:

1.AB阶段

开始传输数据,此时不知道网络情况,此时从A点会发送很小的数据包 ,称为慢启动 ,若不出现丢包(即网络不阻塞 ),则后续的数据传输速度(即:窗口大小)呈指数增长,直到B点,到达设定的阈值

2.BC段

到达阈值后,在不出现丢包情况下,数据传输速度(即:窗口大小)呈现线性增长

3. C点

到达C点后,出现丢包现象 ,会执行快速重传,接着有两种处理方式(GH 与 DF)

4.第二阶段

DF阶段:

此时阈值 变为丢包位置的一半 ,窗口急速缩小,继续进行上述操作,先慢启动 ,数据呈现指数增长,到达阈值进入线性增长,直到丢包···········

这种传输每次丢包都是慢启动,传输效率太低了,目前早被pass

GH阶段:

此时阈值 变为丢包位置的一半,接 着从该点开始数据传输呈线性增长 ,直到丢包继续让阈值变一半,接着从该点开始线性增长···········

这种传输效率明显得到了优化


所以说流量管理根据对方接收处理数据能力动态改变窗口大小 ,而拥塞控制根据网络环境动态改变窗口大小,这两个共同维护窗口大小

(10).延迟应答

在滑动窗口的数据传输中,每次发送一组数据,接收方都会频繁地发送ack带来了额外开销 ,又因为确认应答的报文后一个ack会包含前一个ack的信息

那么若是可以让一些ack晚点发送,剩下来的资源可以稍微扩大窗口,进一步提高传输速率

如:

可以看到,降低了额外开销,从而进一步增加传输效率

(10).捎带机制

因为延迟机制导致ack会晚点发送,所以会出现这种情况

大概意思就是:在我发送的时候,发现你也要发送,就顺手把你也一起发过去

(11).面向字节流

说到字节流,在文件IO里讲过,其他这里就不多赘述了,主要讲在传输过程的粘包问题

(12).异常情况

正常情况下,连接关闭会涉及四次挥手,但不正常情况如下:

情况一:进程崩溃

当进程奔溃后(无论客户端还是服务器),操作系统都会回收崩溃方所有资源 ,此时内核 向对端发起RST复位操作 ,对端接收后,删除该TCP连接中PCB的文件描述表中对应的资源

情况二:电脑关机

关机后,电脑会等一回儿才息屏,此时进行的操作:

1. 向所有进程发送正常关闭连接 的通知,并给定一定的时间**进行四次挥手,**等待全部进程关闭连接

2. 若关闭成功 ,则会完成关机;否则,会向没有关闭的进程发送进程崩溃的通知进行强制关闭

情况三:电脑掉电

这里掉电指的是硬件设备没有电池,纯靠插电工作,出现突然断电

接收方掉电:

发送方掉电:

情况四:网络断开

(13).内容补充

这些做个了解,因为现在很多少用

6>:UDP与TCP总结

• TCP⽤于可靠传输的情况, 应⽤于⽂件传输, 重要状态更新等场景;
• UDP⽤于对⾼速传输和实时性要求较⾼的通信领域, 例如, 早期的QQ, 视频传输等.
具体还得看应用场景来决定用哪个

三:网络层

网络层的两个目标:

1.地址管理:描述网络上的每个节点(路由器/主机)的IP地址

**2.路由选择:**描述数据传输的路径规划

而接下来讲的网络层的重点IP协议就负责这个

1>.协议格式

2>.版本 与 首部长度

4位版本 :实际上只有两个:ipv4(当前介绍)ipv6,后续详细讲到

4位首部长度: 描述报头长度 ,因为选项的存在与否,报头长度是可变的

3>.服务类型(type of service)

4>.16位总长度

与UDP长度一样,最大为64kb,但UDP最大只能传递64kb ,而IP协议传递大小超过64kb,会自动拆包,由接收方自动组包

5>.16位标识 + 3位标志 + 13位片偏移

整体描述了如何拆包+组包

在开始分片时就在重新封装的报文中确定这三个值

6>.8位生存时间

当传输IP数据报时目标地址 填错了,IP数据报在传输中不可能无限传输,此时规定TTL传输的次数 (值为32/68/128),表示每经过一个路由器进行一次转发,TTL值减一,当TTL = 0时,数据直接丢失

7>.IP地址

IP采用32bit位表示,最大值约为43亿,现在每个人都有许多联网设备,这些也占用了IP数量,那么43亿够吗????

(1).解决方法:

a.解决IP数量的方法一:动态分配IP数量

根据当前设备是否需要上网,动态决定是否分配IP地址

有些设备是不要上网,例如报废的电脑,那么此时就不会分配IP,减少了IP的数量

b.解决IP数量的方法二:NAT网络地址转换

NAT 本质上提高复用率,让一个IP代表许多IP

其次并规定在不同的局域网内: 内网IP允许重复,外网IP唯一

针对这些就涉及不同的访问规则

每一部分的内网IP转化的外网IP通常是一样的,所以一个外网IP代表一堆内网IP,提高复用率

c.解决IP数量的方法三:使用ipv6

ipv6使用了128bit位代表IP地址,数值为:2^128次方,非常大,都可以把地球每一粒沙子表示


(2).IP地址管理:⽹段划分

网段划分: 在同一个局域网 内,按照多个IP地址划分划分多个网段

IP地址分为两个部分, ⽹络号主机号,比如:127.0.0.1,其中127.0.0 是网络号 ,1 是主机号
⽹络号: 保证相互连接的两个⽹段具有不同的标识;
主机号: 同⼀⽹段内, 主机之间具有相同的⽹络号 , 但是必须有不同的主机号;

先了解路由器的两个接口:LAN口与WAN口

如图:

接下来解释:

问题:为什么修改网络号就无法通信???

首先了解,在局域网内传输数据 前,先会检查目标设备IP地址的网络号与当前设备网络号是否相同 ,若相同,则通过交换机 传输数据;否则,将数据传递给路由器,由路由器进行网络号匹配 ,最终发送数据

那如果我此时修改其中一个网络号,首先肯定不能通过交换机来传输数据,因为网络号不匹配,那么他就会让路由器进行匹配,但由于路由器中未更新这个网络号,在这个局域网内路由器也找不到我对应的设备IP,所以无法通信


(3).子网掩码

网络号必须是前三个吗?不一定,还得看子网掩码

子网掩码 :二进制为1的位数代表ip前多少位为网络号

如图:子网掩码为 255.255.0.0,二进制为: 11111111 11111111 00000000 00000000

有16位为1,表示IP地址前16位为网络号

有的同学还在课本见到老版本的网络号表示:

(4).网关

网关:网络数据传输的入口与开口,由所连接的路由器自动分配值

网络传输的数据总是先发送给网关,再由网关进行剩下的传递工作,接收数据也是如此

(5).特殊的网络IP

a .将IP地址中的主机地址 全部设为0, 就成为了**⽹络号** , 代表这个局域⽹的网段IP;

如我当前的IP为:172.28.58.65,那么局域网IP为:172.28.0.0,不能把这个IP分给机器使用

b. 将IP地址的主机地址全部设为1, 就成为**⼴播地址**, ⽤于给同⼀个网段的所有主机发送数据包

广播地址就是向同一网段内的所有主机发送数据

c. 127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1

本机回环主要用于测试 ,当我们上线一个软件,首先要在自己的电脑上测试判断可不可行,一般回环地址习惯写成"127.0.0.1"

d.域名

地址全是数字,输入时非常难记,镜就想到用英文单词表示IP地址,假设搜狗的IP为:220.181.125.61, 输入就可以写为**: www.sogou.com**

(5).路由选择

网络数据通过路由传递,那么如何确定数据传输的准确??

这种便是数据传输的路由选择

8>:8位协议 与 16位首部校验和

8位协议:对应着传输层协议类型,由系统自动分配
16为首部校验和:检验首部传输是否正确

问题:为什么载荷不用校验,不担心载荷出现传输问题吗?

答: 假设传输UDP或者TCP数据报 ,在IP协议载荷中都有16位校验和确保传输层的数据正确 ,后面在数据链路层 中会有CRC 来保证数据完整性,在双重保险下,不需要担心数据数据完整性,所以网络层对首部进行校验,确保不会传输不会出错,增加效率

四.数据链路层

数据链路层中最著名的协议为以太网(IEEE 802.3)

1>.认识以太网

让家庭、办公室里的电脑、手机、打印机等设备,能通过网线或 Wi-Fi 互相连网、传数据的 "通用规则"

就比如电脑通过网线进行数据传输与通信所构成的局域网,这就是个以太网,网线称为以太网线

2>.协议格式

3>.目的地址与源地址

(1).介绍

目的地址与源地址是mac地址 ,专门处理两个相邻设备之间的数据传输,大小6字节,数值:2^48, 因为很大**,不需要NAT或动态分配,设备出厂时分配唯一地址,也可作为一个电脑的标识**

如图就是一个mac地址:

IP地址与mac地址区别:

IP地址的分配是站在宏观角度上,规定大方向的数据走向

mac地址是用于两个相邻节点之间的具体数据走向

(2).mac地址的数据传输

可以清楚看出IP规定大方向,而MAC处理相邻位置的具体走向

4>:类型

(1).介绍

类型为2字节,按照取值的不同来选择后续的载荷格式

(2).ARP请求/应答

对于网络层 ,内部有路由表 ,通过此表可以判断数据走的LAN 口或WAN口,而在数据链路层 存在转发表,存储相邻节点的具体信息,通过此表可以快速确定数据的走向

5>:CRC

crc校验和:4位,进行最后的数据检验,后续到物理层进行传输

6>:MTU 与 MSS

MTU:单次传递载荷允许不分包的最大长度,最大为:1500字节,约等于1.5kB,当载荷超过1.5kb,会自动分包

既然会进行拆包,为了传输效率,规定了MSS

MSS:单次的最大有效数据长度,默认1460字节(MTU最大值 - IP报头 - TCP 报头)

五: DNS(域名系统)

对于访问网页而言,记住IP非常麻烦,所以用英文单词代表IP,并把对应的映射关系存储在DNS中,访问时就会解析(有点类似HASH)

开始的DNS为一个hosts文件

但因为host是个记事本,每次修改要在记事本挨个修改,太麻烦了,所以后来升级为DNS,自动对域名与IP进行修改

但当同一时间大量数据进行访问,DNS解析也会崩溃,此时的解决办法

方法一:放入缓存区

访问某个网站后,会把对应的域名IP映射放在访问端的缓存区,后续若再次进行访问,从缓存区中拿取

方法二:采取分布式

采用多个服务器维护DNS

六.总结

1.应用层

• 应⽤层的作⽤: 满⾜我们⽇常需求的⽹络程序, 都是在应⽤层
• 能够根据⾃⼰的需求, 设计应⽤层协议.
• 理解DNS的原理和⼯作流程

2.传输层

• 传输层的作⽤: 负责数据能够从发送端传输接收端.
• 理解端⼝号的概念.
• 认识UDP协议, 了解UDP协议的特点.
• 认识TCP协议, 理解TCP协议的可靠性. 理解TCP协议的状态转化.
• 掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗⼝, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
• 理解TCP⾯向字节流, 理解粘包问题和解决⽅案.
• 能够基于UDP实现可靠传输.
• 理解MTU对UDP/TCP的影响.

3.网络层

⽹络层的作⽤: 在复杂的⽹络环境中确定⼀个合适的路径.

• 理解IP地址, 理解IP地址和MAC地址的区别.
• 理解IP协议格式.
• 了解⽹段划分⽅法
• 理解如何解决IP数⽬不⾜的问题, 掌握⽹段划分的两种⽅案. 理解私有IP和公⽹IP
• 理解⽹络层的IP地址路由过程. 理解⼀个数据包如何跨越⽹段到达最终⽬的地.
• 理解IP数据包分包的原因.
• 了解NAT设备的⼯作原理.

4.数据链路层

数据链路层的作⽤: 两个设备(同⼀种数据链路节点)之间进⾏传递数据

• 以太⽹是⼀种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理层的内容. 例如: 规定了⽹络 拓扑结构, 访问控制⽅式, 传输速率等;
• 以太⽹帧格式
• 理解mac地址
• 理解arp协议
• 理解MTU

如果对你有用,点个赞吧~~~

相关推荐
迷失蒲公英2 小时前
IP纯净度检测工具
网络·ip纯净度·ip质量检测·ip风控检测
basketball6163 小时前
13. 初识 NVMe over RDMA
服务器·网络·nvme
程序猿(雷霆之王)5 小时前
网络层协议——IP
网络·网络协议·tcp/ip
摇滚侠6 小时前
子路由器如何设置 路由器LAN-WAN级联的设置方法
网络·智能路由器
艾菜籽6 小时前
网络原理-HTTP补充1
网络·网络协议·http
智能化咨询7 小时前
“爬虫逆向——RPC技术”在反爬对抗中的破局实践:从Hook到链路级伪造
网络
豆浆whisky8 小时前
netpoll性能调优:Go网络编程的隐藏利器|Go语言进阶(8)
开发语言·网络·后端·golang·go
晓晨的博客9 小时前
查看未知LiDAR设备的IP地址
tcp/ip·lidar
无敌最俊朗@9 小时前
TCP/IP 四层模型协作流程详解
服务器·网络·网络协议·tcp/ip·dubbo