数据链路层协议:以太网

发布于:2025-02-11 ⋅ 阅读:(46) ⋅ 点赞:(0)

目录

引言

认识以太网

以太网帧格式

认识MAC地址

交换机作用

认识MTU

MTU对IP协议的影响

MTU对UDP协议的影响

MTU对于TCP协议的影响

查看硬件地址和MTU

ARP协议

ARP数据报的格式

arp欺骗

基于arp的中间人模式(arp代理),本质也是一种arp欺骗

其他重要协议或技术

DNS(Domain Name System)

ICMP协议

ping命令

traceroute命令

NAT技术

NAPT

NAT技术的缺陷

内网穿透

NAT和代理服务器

正向代理与反向代理

面试题:输入url后发生的事情

总结


引言

之前学习了应用层协议:http https

传输层协议:tcp udp

网络层协议:ip

本文介绍数据链路层协议(倒数第二层,最后一次是物理硬件层):以太网协议。

以太网主要用于局域网通信。

广域网就是一个个由路由器互联的局域网,因此广域网通信也是靠的是一个个局域网以太网通信。

数据链路层:用于两个设备(同一种数据链路节点)之间进行传递.

认识以太网

"以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;

例如以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等;
以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等;
LAN口ip就是局域网ip
运营商的WAN口ip就是公网ip

以太网帧格式

以太网的帧格式如下所示:

源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的;
帧协议类型字段有三种值,分别对应IP、ARP、RARP;
帧末尾是CRC校验码。

认识MAC地址

MAC地址用来识别数据链路层中相连的节点;
长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
对比理解 MAC 地址和 IP 地址
IP地址描述的是路途总体的 起点 和 终点;
MAC地址描述的是路途上的每一个区间的起点和终点。
通信时,每个主机都会接收到报文,只不过在验收过程中,目的MAC不是自己,就会丢弃这个报文。

路由器连接两个局域网

跨网络传输的本质就是不同局域网之间的跳转

路由器的进行数据的跳转的时候,先链路层拆包然后到网络层分析ip的src与dest,分析完之后重新交给链路层,然后重新封装mac地址---得到对方的mac。

交换机作用

交换机(Switch)在局域网(Local Area Network, LAN)通信中扮演着核心角色,其主要作用包括以下几点:
1. **数据包转发**:交换机根据数据帧中的MAC地址(媒体访问控制地址)决定如何转发数据。当交换机接收到一个数据帧时,它会检查数据帧的目的MAC地址,并在其MAC地址表中查找相应的端口,然后将数据帧转发到该端口。
2. **MAC地址学习**:交换机会动态地学习连接到其各个端口的主机的MAC地址。当交换机收到一个数据帧时,它会记录下数据帧的源MAC地址和接收该帧的端口,并将其添加到MAC地址表中。
3. **建立和维护MAC地址表**:交换机通过MAC地址表来决定如何转发数据帧。这个表包含了MAC地址与交换机端口的映射关系。交换机会定期更新这个表,以反映网络拓扑的变化。
4. **过滤和隔离流量**:由于交换机是基于MAC地址进行转发的,它能够有效地隔离流量,只将数据帧转发到目的主机所在的端口,而不是广播到所有端口,这减少了网络拥塞并提高了网络的安全性。
5. **支持多个并发通信**:交换机能够同时处理多个端口上的数据传输,因为它为每个端口提供了独立的传输通道,这使得多个设备可以同时进行通信,而不会相互干扰。
6. **全双工通信**:交换机支持全双工通信模式,这意味着设备可以同时发送和接收数据,从而提高了网络的带宽利用率。
7. **网络分段**:通过使用交换机,可以将大型局域网分割成多个较小的虚拟局域网(VLAN),这样可以提高网络性能,增强安全性,并简化网络管理。
8. **网络监控和管理**:许多交换机支持网络管理协议,如SNMP(简单网络管理协议),允许网络管理员监控网络状态、配置交换机参数、诊断网络问题等。
9. **提供服务质量(QoS)**:一些高级交换机支持QoS功能,允许网络管理员为不同类型的流量分配优先级,确保关键应用(如VoIP或视频会议)获得足够的带宽和低延迟。
总之,交换机通过提供高效、可靠的数据转发机制,极大地提高了局域网的性能和可管理性。
 

认识MTU

MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制.

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
不同的数据链路层标准的MTU是不同的。

MTUIP协议的影响

由于数据链路层 MTU 的限制 , 对于较大的 IP 数据包要进行分包 .
将较大的IP包分成多个小包, 并给每个小包打上标签;
每个小包IP协议头的 16位标识(id) 都是相同的;
每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0);
到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;
一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. 但是IP层不会负责重新传输数据;

MTUUDP协议的影响

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报.

这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了

MTU对于TCP协议的影响

TCP的一个数据报也不能无限大, 还是受制于MTU. TCP的单个数据报的最大消息长度, 称为MSS(MaxSegment Size);
TCP在建立连接的过程中, 通信双方会进行MSS协商.
最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU).
双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值.
然后双方得知对方的MSS值之后, 选择较小的作为最终MSS.
MSS的值就是在TCP首部的40字节变长选项中(kind=2)

查看硬件地址和MTU

使用 ifconfig 命令 , 即可查看 ip地址, mac地址, MTU(各种网络配置);

ARP协议

虽然我们在这里介绍 ARP 协议 , 但是需要强调 , ARP 不是一个单纯的数据链路层的协议 , 而是一个介于数据链路层和网络层之间的协议 ;但是最终还是归类到了数据链路层。
ARP 协议的作用
ARP 协议建立了主机 IP 地址 和 MAC 地址 的映射关系。
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
因此在通讯前必须获得目的主机的硬件地址;
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);
目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;
每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

ARP数据报的格式

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
硬件类型指链路层网络类型,1为以太网;
协议类型指要转换的地址类型,0x0800为IP地址;
硬件地址长度对于以太网地址为6字节;
协议地址长度对于和IP地址为4字节;
op字段为1表示ARP请求,op字段为2表示ARP应答(接收到arp报文的时候。先看是1 还是 2,这样就起到一个预先的过滤作用)。

arp欺骗

注意:博主只是站在知识讨论与分析的角度,去只是跟大家一起学习、探讨arp欺骗的知识,并无其他目的!

基于arp的中间人模式

arp协议负责建立ip与mac地址的映射,那万一存在一个中间人,传给你的响应报文是恶意的修改过的报文呢?

ARP欺骗(ARP Spoofing)是一种网络攻击技术,它利用ARP协议的漏洞在本地网络内进行攻击。以下是ARP欺骗的基本原理和可能的影响:

### 原理:

1. **ARP协议的工作方式**:ARP协议用于将网络层的IP地址解析为链路层的MAC地址。当一个设备需要向另一个设备发送数据时,它会发送一个ARP请求来获取目标设备的MAC地址。

2. **欺骗过程**:

   - 攻击者发送伪造的ARP回复给目标设备,声称自己的MAC地址是与某个IP地址关联的。

   - 目标设备收到这个ARP回复后,会更新其ARP缓存,将那个IP地址映射到攻击者的MAC地址。

   - 结果是,发往该IP地址的数据包会被发送到攻击者的MAC地址。

### 影响:

1. **中间人攻击(Man-in-the-Middle, MitM)**:攻击者可以拦截、修改或重新发送网络中的数据包。

2. **数据窃取**:攻击者可以窃取敏感信息,如登录凭证、个人信息等。

3. **服务拒绝**:攻击者可以丢弃或修改数据包,导致网络服务不可用。

4. **会话劫持**:攻击者可以接管已经建立的会话。

### 防御措施:

1. **静态ARP表**:手动设置ARP表项,将IP地址与正确的MAC地址绑定,防止ARP欺骗。

2. **ARP监控**:使用工具监控网络中的ARP活动,检测异常。

3. **端口安全**:在交换机上配置端口安全,限制每个端口可以学习的MAC地址数量。

4. **使用ARP欺骗防护工具**:部署专门的软件来检测和防止ARP欺骗。

5. **网络隔离**:通过VLAN或其他技术隔离网络,减少ARP欺骗的影响范围。

ARP欺骗是一种常见的网络攻击手段,尤其是在局域网环境中。了解其原理和防御措施对于维护网络安全至关重要。

比如,我是ipA macA,我想给ip B通信,但是ip B回复的ARP中不给我macB,而是回复我了mac C,那么host B发送的arp中建立的映射就是ipB对应mac C,当我想再次给mac C发送数据时,实际上发送给了host B.

基于arp的中间人模式(arp代理),本质也是一种arp欺骗

基于ARP的中间人攻击(包括ARP代理)本质上是一种ARP欺骗。ARP(Address Resolution Protocol)地址解析协议是用来将网络层的IP地址解析为链路层的MAC地址的协议。在局域网中,ARP欺骗是指攻击者通过发送伪造的ARP响应包,使得网络中的其他设备错误地将攻击者的MAC地址与某个IP地址关联起来。

中间人攻击(Man-in-the-Middle Attack, MitM)则是一种攻击类型,攻击者在通信双方之间插入自己,使得双方的通信都经过攻击者,从而能够窃听、篡改或重新发送信息。

ARP代理(ARP Proxy)是一种网络技术,它允许一个设备代表另一个设备响应ARP请求,通常用于解决网络中的ARP相关问题或进行网络管理。但是,如果未经授权使用ARP代理,则可以用于进行中间人攻击,这时ARP代理的行为就变成了ARP欺骗。攻击者可以利用ARP代理来截获网络流量,实现以下目的:

1. 窃听通信内容。

2.篡改数据包内容。

3.中断或拒绝服务。

因此,当ARP代理被用于恶意的目的时,它就是一种ARP欺骗行为。在使用此类技术时,必须遵守相应的法律法规和网络道德,确保网络安全和用户隐私不被侵犯。

其他重要协议或技术

DNS(Domain Name System)

DNS 是一整套从域名映射到 IP 的系统
DNS 背景
TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序 . 但是 IP 地址不方便记忆 .
于是人们发明了一种叫主机名的东西 , 是一个字符串 , 并且使用 hosts 文件来描述主机名和 IP 地址的关系。
最初 , 通过互连网信息中心 (SRI-NIC) 来管理这个 hosts 文件的 .
如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件.
其他计算机也需要定期下载更新新版本的hosts文件才能正确上网
这样就太麻烦了 , 于是产生了 DNS 系统 .
一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系.
如果新计算机接入网络, 将这个信息注册到数据库中;
用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址.
至今 , 我们的计算机上仍然保留了 hosts 文件 . 在域名解析的过程中仍然会优先查找 hosts 文件的内容 .
域名简介
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称 .
www.baidu.com
域名使用 . 连接
com: 一级域名 . 表示这是一个企业域名 . 同级的还有 "net"( 网络提供商 ), "org"( 非盈利组织 ) .
baidu: 二级域名 , 公司名 .
www: 只是一种习惯用法 . 之前人们在使用域名时 , 往往命名成类似于 ftp.xxx.xxx/ www.xxx.xxx 这样的格式 , 来表示主机支持的协议
可以使用dig工具分析DNS过程
安装:
yum install bind-utils
使用:
dig www.baidu.com
形式如下
结果解释
1. 开头位置是 dig 指令的版本号
2. 第二部分是服务器返回的详情 , 重要的是 status 参数 , NOERROR 表示查询成功
3. QUESTION SECTION 表示要查询的域名是什么
4. ANSWER SECTION 表示查询结果是什么 . 这个结果先将 www.baidu.com 查询成了 www.a.shifen.com , 再将 www.a.shifen.com 查询成了两个 ip 地址 .
5. 最下面是一些结果统计 , 包含查询时间和 DNS 服务器的地址等 .

ICMP协议

CMP 协议是一个 网络层协议
一个新搭建好的网络 , 往往需要先进行一个简单的测试 , 来验证网络是否畅通 ; 但是 IP 协议并不提供可靠传输 . 如果丢包了 , IP 协议并不能通知传输层是否丢包以及丢包的原因 .。
ICMP 功能
ICMP 正是提供这种功能的协议 ; ICMP 主要功能包括 :
确认IP包是否成功到达目标地址.
通知在发送过程中IP包被丢弃的原因.
ICMP也是基于IP协议工作的. 但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议;
ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6
ICMP 的报文格式
ICMP 大概分为两类报文 :
一类是通知出错原因
一类是用于诊断查询

ping命令

注意, 此处 ping 的是域名, 而不是url! 一个域名可以通过DNS解析成IP地址.
ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).
ping命令会先发送一个 ICMP Echo Request给对端;
对端接收到之后, 会返回一个ICMP Echo Reply
一个值得注意的坑
有些面试官可能会问 : telnet 23 端口 , ssh 22 端口 , 那么 ping 是什么端口 ?
千万注意 !!! 这是面试官的圈套
ping命令基于ICMP, 是在网络。而端口号, 是传输层的内容. ICMP中根本就不关注端口号这样的信息

traceroute命令

也是基于ICMP协议实现, 能够打印出可执行程序主机, 一直到目标主机之前经历多少路由器(ICMP可以为你选择良好的路由途径).

NAT技术

NAT(网络地址转换)是一种在网络中转换IP地址的技术,主要用于在私有网络和公共网络之间进行地址转换。以下是NAT技术的基本介绍:

1. **目的**:NAT技术的主要目的是解决IPv4地址短缺的问题。通过允许私有网络使用内部(私有)IP地址,然后在访问公共网络时转换为唯一的公共IP地址,NAT可以有效地扩展有限的公共IP地址资源。

2. **私有IP地址**:在NAT中,私有网络中的设备使用私有IP地址空间,这些地址范围在RFC 1918中定义,包括以下三个地址段:

   - 10.0.0.0 到 10.255.255.255

   - 172.16.0.0 到 172.31.255.255

   - 192.168.0.0 到 192.168.255.255

3. **工作原理**:当私有网络中的设备需要访问公共网络(如互联网)时,NAT设备(如路由器)会将其发出的数据包的源IP地址从私有地址转换为公共地址。当数据包从公共网络返回时,NAT设备会根据转换记录将目标IP地址转换回相应的私有地址。

4. **NAT类型**:

   - **静态NAT**:一对一的映射,将一个私有IP地址映射到一个公共IP地址。

   - **动态NAT**:从一组公共IP地址中动态地分配地址给私有网络的设备。

   - **PAT(端口地址转换)**:也称为NAT过载,允许多个私有IP地址共享一个公共IP地址,通过端口号来区分不同的会话。

5. **优点**:

   - 节省公共IP地址资源。

   - 提供了内部网络的安全性,因为私有IP地址对外是不可见的。

   - 简化了网络配置和管理。

6. **缺点**:

   - 可能导致网络延迟,因为NAT设备需要处理地址转换。

   - 某些应用可能不兼容NAT,如某些P2P应用。

   - 端口映射和防火墙配置可能较为复杂。

NAT技术是现代网络中广泛使用的技术,尤其是在家庭和小型企业网络中,它帮助这些网络在不具备足够公共IP地址的情况下也能访问互联网资源。随着IPv6的逐渐普及,NAT技术的重要性可能会有所下降,因为IPv6提供了几乎无限的地址空间。

NAT 技术背景
之前我们讨论了 , IPv4 协议中 , IP 地址数量不充足的问题
NAT 技术当前解决 IP 地址不够用的主要手段 , 是路由器的一个重要功能 ;
NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法:
很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;
全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;
NAT IP 转换过程
NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;
NAT的核心是,不在乎子网内部ip是否与公网ip冲突,当在路由器处替换为wan口ip时,才会替换为公网ip,从而增加了ip的重复利用率,进而节省了ip资源

NAPT

那么问题来了 , 如果局域网内 , 有多个主机都访问同一个外网服务器 , 那么对于服务器返回的数据中 , 目的 IP都是相同的 . 那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机 ?
这时候 NAPT 来解决这个问题了 . 使用 IP+port 来建立这个关联关系
将内部不同的主机通过NAPT转化之后,变成了同一个ip内的不同端口
这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

NAT技术的缺陷

由于 NAT 依赖这个转换表 , 所以有诸多限制 :
无法从NAT外部向内部服务器建立连接;---内网ip宠物
装换表的生成和销毁都需要额外开销;
通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开

内网穿透

nat技术的存在,可以让各个内网ip隔绝,因此就算是不同内网的内网ip出现冲突,也会通过nat技术进行通信,这样可以节约ip资源

内网穿透(NAT穿透)是指在网络中,将处于私有网络(内网)中的计算机或服务器的端口映射到公网上,使得外部的网络可以直接访问内网中的资源。由于大多数内网中的计算机使用的是私有IP地址,这些地址在公网上是不可路由的,因此通常无法直接从外部网络访问内网中的服务。

通过这种技术就可以让外部网络借助公网访问内网的服务了

NAT和代理服务器

路由器往往都具备 NAT 设备的功能 , 通过 NAT 设备进行中转 , 完成子网设备和其他子网设备的通信过程 .
代理服务器看起来和 NAT 设备有一点像 . 客户端像代理服务器发送请求 , 代理服务器将请求转发给真正要请求的服务器 ; 服务器返回结果后 , 代理服务器又把结果回传给客户端 .
那么 NAT 和代理服务器的区别有哪些呢 ?
从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题.理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层.
从使用范围上讲, NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网.
从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上.
代理服务器是一种应用比较广的技术.
翻墙: 广域网中的代理.
负载均衡: 局域网中的代理.

正向代理与反向代理

代理服务器又分为正向代理和反向代理.

正向代理:代理我们的需求

比如学校往往有自己的服务器,我们连接学校的wifi去访问资源的时候,就需要先经过正向服务器的代理

反向代理

反向代理更多的是代理服务器这部分,主要负责服务器的负载均衡。

如:双十一期间,我们大量的网购需求,可能会让淘宝的服务器收到大量的用户请求,为了让这些用户请求均匀的分布在各个服务器上,就需要先就给一个代理服务器,然后代理服务器会将需求合理的分发给后台负责业务处理的服务器。

翻墙

由于翻墙是个敏感的话题,我们就简单提一嘴,让大家知道原理即可(注意:博主只是站在学习与分享知识的角度去跟大家讨论本话题!!!)

我们访问服务器的时候,要先经过运行商的代理(正向代理),因此当我们访问外网,运营商就可以掐断我们的需求。

但是在港澳地区,就可以自由访问外网。

因此就出现了这样一条路径:我们访问港澳地区的服务器,这是被运营商所许可的,而港澳地区的服务器恰好又是一个代理服务器,我们访问这个代理服务器的时候,数据就可以向外网进行交互,这就是所谓的翻墙。

这里其实还牵扯http隧道技术:借助http的包装,其实内部的内容是一些“其他的内容”(其他协议的报文),让数据看上去只是http(不多说了,大家理会就好)。

当然,上文中的特殊地区的服务器起到的作用也是正向代理。

正向代理是代表客户端向服务器发送请求的代理服务器。它通常位于客户端和互联网之间,主要作用如下:

隐私保护:隐藏客户端的真实IP地址,保护客户端的隐私。

内容缓存:可以缓存网页内容,加快客户端访问速度(服务器上已经存在的影片,我们不需要重复下载)。

访问控制:控制内部网络对互联网的访问,实现上网行为管理。

突破限制:帮助用户访问一些地域限制的网站

反向代理是代表服务器接收客户端的请求的代理服务器。它通常位于服务器和互联网之间,主要作用如下:

负载均衡:将大量请求分配到多个服务器,提高服务的处理能力。

安全性:隐藏服务器的真实IP地址,提高服务器安全性。

SSL加密和解密的集中处理:减轻服务器负担,提高访问效率。

缓存静态内容:加速内容的分发。

面试题:输入url后发生的事情

这是一个经典的面试题,也是开放型题目,面试官就是为了考察你对于综合知识的把握程度。

在这里博主给出以下思路,欢迎大家补充。

1.输入网址

2.DNS解析域名

3.发送给对方个http或者https

https牵扯:CA证书 + 加密方式

4.对方发来http回应 包括各种图片资源

5.本地cookie,服务器session

cookie与session的作用:保存数据痕迹  和区别:存储的位置、时长、安全性等性质不一样

总结

数据链路层
数据链路层的作用 : 两个设备 ( 同一种数据链路节点 ) 之间进行传递数据
以太网是一种技术标准 ; 既包含了数据链路层的内容 , 也包含了一些物理层的内容 . 例如 : 规定了网络拓扑结构 , 访问控制方式 , 传输速率等 ;
以太网帧格式
理解 mac 地址
理解 arp 协议
理解 MTU
网络层
网络层的作用 : 在复杂的网络环境中确定一个合适的路径 .
理解 IP 地址 , 理解 IP 地址和 MAC 地址的区别 .
理解 IP 协议格式 .
了解网段划分方法
理解如何解决 IP 数目不足的问题 , 掌握网段划分的两种方案 . 理解私有 IP 和公网 IP
理解网络层的 IP 地址路由过程 . 理解一个数据包如何跨越网段到达最终目的地 .
理解 IP 数据包分包的原因 .
了解 ICMP 协议 .
了解 NAT 设备的工作原理 .
传输层
传输层的作用 : 负责数据能够从发送端传输接收端 .
理解端口号的概念 .
认识 UDP 协议 , 了解 UDP 协议的特点
认识 TCP 协议 , 理解 TCP 协议的可靠性 . 理解 TCP 协议的状态转化 .
掌握 TCP 的连接管理 , 确认应答 , 超时重传 , 滑动窗口 , 流量控制 , 拥塞控制 , 延迟应答 , 捎带应答特性 .
理解 TCP 面向字节流 , 理解粘包问题和解决方案 .
能够基于 UDP 实现可靠传输 .
理解 MTU UDP/TCP 的影响 .
应用层
应用层的作用 : 满足我们日常需求的网络程序 , 都是在应用层
能够根据自己的需求 , 设计应用层协议 .
了解 HTTP 协议 .
理解 DNS 的原理和工作流程 .

网站公告

今日签到

点亮在社区的每一天
去签到