计算机网络-网络层,运输层,应用层

网络层/网际层

网络层的主要任务包括:

  1. 提供逻辑上的端到端通信:网络层负责确定数据的传输路径,使数据能够从源主机传输到目标主机,即实现端到端的通信。
  2. 数据包的路由和转发:网络层根据目标主机的地址信息,选择最佳的路径进行数据包的转发和路由,确保数据能够正确到达目标主机。
  3. 提供逻辑地址的分配和识别:网络层使用逻辑地址(如 IP 地址)来标识网络中的主机和设备,以便于数据包的传输和定位。

要知道,如果只在局域网内通信,是用不上网络层的,即网络层就是为了在多局域网即实现广域网中通信;

网络层基本概述

已经基本过时了,现在使用的是

无连接的数据报服务

IPv4

很基础就不说了

IPv4地址可以分为三类:A类、B类和C类,每类地址范围不同,用于满足不同规模的网络需求。

  1. A类地址 :A类地址是用于大型网络的,其第一个字节的最高位是0,范围是1.0.0.0至126.0.0.0。A类地址的前8位用于网络号,剩余的24位用于主机号。A类地址共有2^7 个网络,每个网络可分配2^24-2个主机,减去2是因为全0和全1分别表示网络地址和广播地址,不能用于分配给主机。
  2. B类地址 :B类地址是用于中型网络的,其第一个字节的最高位是10,范围是128.0.0.0至191.255.0.0。B类地址的前16位用于网络号,剩余的16位用于主机号。B类地址共有2^14 个网络,每个网络可分配2^16-2个主机。
  3. C类地址 :C类地址是用于小型网络的,其第一个字节的最高位是110,范围是192.0.0.0至223.255.255.0。C类地址的前24位用于网络号,剩余的8位用于主机号。C类地址共有2^21 个网络,每个网络可分配2^8-2个主机。

测试题:

0是保留网络号,不指派

127是本地回环测试,不指派

一些不按规矩来的:

上边的是一些特殊情况

网络分配(有分类编址)

路由器是有ip地址的,并且可以分割网络

这道题中,每个路由器的接口就是一个网络,并按照主机数量+1(路由器ip)来分配合适的ipv4地址

子网掩码

子网掩码用于指示 IP 地址中哪部分是网络标识,哪部分是主机标识。它与 IP 地址一起使用,用于划分网络中的子网,以便更有效地管理和分配 IP 地址。

具体来说,子网掩码中的"1"表示对应的位是网络标识,而"0"表示对应的位是主机标识。通过将子网掩码应用到 IP 地址上,可以确定 IP 地址的网络部分和主机部分,从而确定其所在的子网。

其实就按字面意思,子网 那么就是将ip地址划分,掩码就是说只显示网络号是几位,主机号是几位,而不直接说明ip地址是什么。

举个例子:

即通过子网掩码看出从网络地址借了一位,即处在这个子网下的ip地址的网络号只有7位二进制了,因为第一位被拿走充当了网络地址;

再举个生活中的例子,公司申请了一个B类地址,共6万多个ipv4,但是只使用了一小部分,还有很多用不到,为了不浪费,决定贡献出一部分到其他公司,那网络如何知道哪一部分贡献了呢?就根据子网掩码知道;

基本已经懂了,再看一道例题:

被划分为了两个子网

易错点!!!

当使用子网掩码重新划分子网后连带着广播地址和网络地址都会发生改变,比若说:主机号是真的划分给子网号了,而不是假设

多说一个概念:

ABC类地址默认子网掩码就是没有子网号,即没有借位

CIDR(无分类编址)

还是很容易理解的(感觉比划分ABC类网好用的多,如果这个早点研发,可能就不需要ABC类划分子网了)

需要知道这个和有分类编址完全不同了!!,ABC类地址在这里已经不能用了!!!

例题:

超网概念

方法就5个字:找共同前缀

地址应用规划
定长子网掩码

只能把子网掩码等分,造成有的用的多,有的用的少,甚至有的没用上,浪费掉了;

变长子网掩码

按需分配,即 2的n-1次方<每个分配的数量<=2n次方

IP数据报转发和发送

要点较多:

几个:默认网关的值是路由器接口的ip地址,广播是不能穿过路由器到达其他网络的;

4.4 IP数据报的发送和转发过程_哔哩哔哩_bilibili

说点简单的,默认左右两侧的网络不属于同一子网内

则可以看图知道路由表左侧接口目的网络地址为192.168.0.0,右侧接口目的网络地址为192.168.0.128

(使用ip地址与掩码相与得到的)

A若与D通信路由器怎么判断,D在左还是在右,就是使用D的ip地址与子网掩码相与(只有当两个操作数的对应位都为 1 时,结果才会为 1;否则结果为 0),能很明显判断出来,结果为192.168.0.128;等于右边的目的网络,所以D应该在右侧接口。

写一道题:

静态路由配置

没什么好说的,视频和截图很详细;

出现问题:

配置错误

配置错误导致一直兜圈会有TTL字段,即多次转发还不行,直接丢弃;

聚合路由过多导致错误

右上角设置的聚合路由,包含了4个ip地址,但是真实的是只用到了其中两个ip,如果刚好查找的是另外两个不存在的ip,会出现一直找不到的情况,这时候可以设置路由条目将对应路由下一条设为null;

网络故障

和上边的比较像,都是有模糊路由,但找不到对应的最后的目的网络,都以黑洞路由来处理;

上边的都是以静态路由来分析的(因为简单)

但实际开发中其实动态的使用更多

动态路由设置

路由选择协议

协议分为内部和外部,因为距离不同,所需要的处理规则也会不同

最常考的应该是RIP协议和OSPF协议

路由信息协议RIP(重点)

要点:怎么交换路由表(很有意思)

示例:

把C的路由表复制过来,先记住一个要点(复制过来的是新表,自己的是旧表)。

第一步:下一跳全部写为C,距离全部增加1;理由:因为D和C相邻,这些节点,通过C直接到达和通过D到C再直接到达,就多了第一跳;

然后两个表进行对比,右侧四个更新规则,应该都能看懂,只有第一条规则,当下一跳都是C时,并不是取最短的,因为路由表是和C互换的,C是当事人,C的就肯定是最新和正确的,即使更长,也是正确的,因为C是当事人

这个是无法完全解决的,只能减少;

真题:(发现这种题都好坑人,"真"做题,哎);

需要看到"均以收敛",不然会没有思路,意思是所有能走的路径都保存好了,但是下边又说不可达,则说明是直连的,并且是该网络出现故障。只有这种情况,所以为16,然后更新给R2,R2一看不行了,直接删掉了,但是R1又传过来是2,结果就更新成2+1=3了...

开放最短路径优先OSPF基本原理(重点)

这是内部路由的另一种方式

边界网关协议BGP

所以到底是怎么找到较好路由呢?

其实就是每个自治系统找出一个BGP发言人,用它来代表这个自治系统

其实BGP内容还有和多,但不需要掌握,就不说了;

IPv4数据报的首部格式

一一介绍:

版本即ipv4

首部长度就是上边图片中使用的长度,在20到60之间,总长度是整个ip数据报的长度,那么数据载荷长度=总-首;

(ps:总长度是有限制的<最大传输单元MTU

但是若总长大于MTU怎么办?就需要分片了,分片后如何知道这两片其实是一个ip数据报?就需要标识

注意:片偏移只能为整数,即分给分片的字节必须能被8整除!!!

简单总结:标识可以知道哪些分片是同一个数据报,标志可以知道在这个分片后是否还有分片,片偏移可以知道这个分片在数据报中的位置;

生存时间字段TTL作用:防止进入路由环路中导致永久兜圈,时间会不断减少,为0时丢弃;

协议字段:规定是何种路由协议(可能是内部,外部的各种协议)

首部检验和

检验是否出现差错

(ipv6不再检验首部校验和,所以转发速度更快)

重点:源ip地址,目的ip地址

考点:

知道了前边说的,这道题目就很简单了,错误点是注意片偏移必须是整数;

科目聚合题:有计组和计网

)

记住:以太网帧中前14字节为

之后才为ip数据报部分

所以目的ip地址为第31字节起的四个字节;

默认网关是路由器的接口ip地址,即mac地址

第四问较为基础;

网际控制报文协议ICMP

内容总结

内容较多,最好还是看视频学习

ICMP(Internet Control Message Protocol)是用于在 IP 网络上发送控制消息的协议,常用于网络故障诊断和错误报告。

  1. ICMP 的作用和功能:用于在 IP 网络上发送控制消息,包括错误报告、网络故障诊断、网络可达性测试等。
  2. ICMP 报文格式:ICMP 报文由报头和数据字段组成,报头包含类型、代码和校验和等字段。
  3. ICMP 消息类型:包括回显请求和回显应答、目的不可达、超时等。
  4. Ping 命令原理:Ping 使用 ICMP 协议发送回显请求并等待回显应答,以测试主机之间的网络连通性和延迟。
  5. ICMP 工具的使用:掌握常用的 ICMP 工具,如 ping、traceroute、icmpinfo 等,以及它们的基本用法和参数含义。
  6. ICMP 错误消息:了解 ICMP 报文中的错误类型和代码,如目的不可达、超时等,以及它们代表的含义和可能的原因。
  7. ICMP 攻击与防御:了解 ICMP 协议可能存在的安全风险,如 ICMP 洪水攻击等,以及相应的防御措施。

(不用知道这么详细的)

虚拟专用网VPN

路由器的正常转发是将数据包直接从一个设备转发到另一个设备,而 VPN 则提供了一种安全的方式,在不安全的网络上建立加密的通信通道,保护你的数据安全。VPN 通常用于需要对数据安全性有较高要求的场景,如远程办公、远程访问公司资源等。

网络地址转换NAT

其实就是套娃,以前是一个设备一个ip地址,现在不够用了,成一群设备共用一个ip地址,当这群设备中的设备访问因特网时,从全球ip地址库中单独分配一个临时ip地址给设备,所以才会出现ip地址不固定一直改变;因为本地的都是私有ip地址,并不是真正的;

是的这个有一个巨大的缺点,那就是如果专用网设备都在同时访问因特网,那就得给各个设备分不同的ip地址,那么这个技术就没有意义了,并达不到节省ip的意义,所以出现了升级版

NAPT技术

我们之前的讨论并没有引入端口技术,即认为一个ip就只能当做一个用;

但实际不一样,是有端口的,引入端口是让nat的下层设备在经过路由器时分配的只是一个公有ip的一个端口,这样就可以让多个设备使用一个ip的多个端口访问因特网,达到了节省ip的目的(资本家都没有这么黑心);

一个问题:因特网能主动访问私有网么?答案是否定的;

运输层

知道运输层是端到端(端口到端口)就容易理解多了;

既然是端到端,我们先知道端口是什么:

端口

端口是用来区分不同应用程序或服务的通信终点。在一个设备上,不同的应用程序可以同时运行并与网络进行通信,每个应用程序都会被分配一个唯一的端口号,用于标识该应用程序的通信终点。这样可以确保网络上的数据正确地被传递到相应的应用程序,从而实现了应用程序之间的隔离和通信的有效管理。

大白话:电脑上不可能只接收一个设备发来的信息,为了整理和统一,端口应运而生,不同的网络信息,都要经过端口的分类传到对应的端口,比如qq消息,对方把消息传过来假设qq消息对应端口是8088,那么设备会自动把收到的发给8088端口的信息挑出来,这样就从繁杂的网络信息中找到了对应的;所以,电脑上一个端口只能有一个程序,不过很多应用都是可以改默认端口的;

复用和分用概念

在上边的ip头文件格式提到过协议不同对应数字不同;

有些固定端口已经设置好了固定的协议,比如tcp的80,当客户端(如浏览器)向服务器发起HTTP请求时,通常会使用TCP协议通过80端口与服务器建立连接,并发送HTTP请求报文。服务器收到请求后,会处理请求并发送HTTP响应报文给客户端,完成一次HTTP通信。

重点是两个运输协议TCP和UDP

TCP和UDP对比

什么意思呢,就是面向报文直接不用过多处理就给接收方了

面向字节会最后对数据进行加工:有很多过程,引出很多算法

首部比较,UDP首部较简单既是缺点也是优点,缺点是无法进行诸如流量控制,拥塞控制等功能,优点就是传输快;

TCP流量控制

假设TCP单次发送最大段为100,则只要发100,服务端都会发送序号表示自己收到了;

当客户端收到服务端的确认段后会移动到对应的窗口值;

这个过程中,右侧服务端使用了三次流量控制从400调为300又调为0

TCP拥塞控制

最后的快恢复是第一种策略,第二种策略应该是从15的地方开始拥塞避免

超时重传时间的选择

较复杂应该不会考,应该是考研必看的大题l

TCP报文段首部格式

和ip首部有点像

源端口和目的端口就不说了

TCP报文段的确认号(Acknowledgment Number)和序号(Sequence Number)是TCP协议中用于实现可靠数据传输的重要字段。

  1. 序号(Sequence Number):序号字段用于标识发送的数据字节在数据流中的顺序。每个TCP报文段都包含一个序号字段,用于指示该报文段所携带数据的起始字节在整个数据流中的位置。TCP使用序号来保证数据的有序传输,接收方根据序号将接收到的数据重新排序。
  2. 确认号(Acknowledgment Number):确认号字段用于确认接收到的数据。TCP的数据传输是双向的,接收方通过确认号来告知发送方已经成功接收到了哪些数据。确认号指示下一个期望接收的数据字节的序号。发送方根据接收到的确认号来确定哪些数据已经被成功接收,哪些数据需要重传。

这两个字段的配合使得TCP协议能够实现可靠的数据传输。发送方根据序号发送数据,接收方根据确认号确认已经接收到的数据,并通过确认号告知发送方下一个期望接收的数据位置,从而实现数据的有序传输和可靠性。

数据偏移指的是首部长度

应用层

概述

C/S方式

P2P方式

动态主机配置协议DHCP

DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配 IP 地址、子网掩码、网关地址以及其他网络参数给网络中的设备。它可以帮助网络管理员自动管理大量设备的 IP 地址分配,减少了手动配置 IP 地址的工作量,并且可以有效地防止 IP 地址冲突。

DHCP 主要有以下几个功能和特点:

  1. 自动 IP 地址分配:DHCP 可以动态地为设备分配 IP 地址,避免了手动配置 IP 地址的繁琐过程。
  2. 地址重用:当设备离开网络时,DHCP 服务器会回收该设备使用的 IP 地址,并可以将该地址分配给其他设备使用,提高了 IP 地址的利用率。
  3. 地址分配控制:DHCP 服务器可以通过设置租约时间等参数来控制 IP 地址的分配情况,例如设置 IP 地址的租用时间,防止地址过度占用。
  4. 动态更新:DHCP 可以动态更新设备的 IP 地址信息,当网络拓扑结构发生变化时,可以及时更新设备的 IP 地址。
  5. 减少 IP 地址冲突:DHCP 服务器会自动管理 IP 地址的分配,避免了手动配置 IP 地址可能带来的冲突。
相关推荐
pk_xz12345624 分钟前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强26 分钟前
Linux之sed命令详解
linux·运维·服务器
海绵波波10733 分钟前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
九河云2 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock2 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零3 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
热爱跑步的恒川3 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面4 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程6 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
长安初雪8 小时前
Request 和 Response 万字详解
计算机网络·servlet