💗计算机网络从放弃到入门(二)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 💗计算机网络从放弃到入门(二)

四、🍺网络层


主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层的传输单位是数据报.


功能一: 路由选择和分组转发


路由选择(确定哪一条路径):指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由.


分组转发(当一个分组到达时采取的动作):指路由器按照转发表将用户的IP数据报从合适的端口转发出去.


功能二: 异构网络互联


指将两个以上的计算机网络,通过一定的方法,用一种或多种中间系统相互连接起来,以构成更大的网络系统.中间设备分为:


  1. 物理层中继系统:中继器,集线器
  2. 数据链路层中继系统:网桥或交换机
  3. 网络层中继系统:路由器
  4. 网络层以上的中继系统:网关


功能三: 拥塞控制


在通信子网中,因出现过量的分组而引起网络性能下降的一种现象称为拥塞.


虚电路服务和数据报服务的特点和对比


数据报服务:无连接服务,每个分组携带源和目的地址,路由器根据分组的目的地址转发

虚电路服务:有连接服务,将数据报方式和电路交换方式结合,一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息.


dd26f2c4ed3e4036813b7afef6d121d1_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


IP地址及默认子网掩码


传统的IP地址是分类的地址,分为A、B、C、D、E五类.

无论是哪类IP地址,都由网络号和主机号组成两部分组成.


  • A类地址:网络号前8位,第1位为0;
  • B类地址:网络号前16位,前2位为10;
  • C类地址:网络号前24位,前3位为110;
  • D类地址:网络号前8位,前4位为1110;
  • E类地址:网络号前8位,前4位为1111。


网络类别 最大可用网络数 每个网络中的最大主机数 默认子网掩码
A 27−22^7-2272 224−22^{24}-22242 255.0.0.0
B 214−22^{14}-22142 216−22^{16}-22162 255.255.0.0
C 221−22^{21}-22212 28−22^{8}-2282 255.255.255.0


网络地址转换NAT


专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址.


NAT路由器在转发IP数据报时,一定要更换其IP地址.普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号.


子网划分


4a9eed0c210544239bfc48360556c35a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


基本思路:


从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特.三级IP地址的结构如下:


IP地址={<网络号>,<子网号>,<主机号>}

注:某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分.


582ce17186784df2bba9e944bcc9422c_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

子网掩码


主机号全0,其余全1


fba88f76e7ea46d684db7d1dabad68b5_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

子网掩码习题


已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址


解答:将IP地址与子网掩码相与141.14.?.0


0-1-0-0-1-0-0-0(72)
1-1-0-0-0-0-0-0(192)
--------------------
0-1-0-0-0-0-0-0(64)
复制代码


故网络地址为141.14.64.0


fb3cb4cbb3a24ecab04c8a1fc74f339e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


无分类编址CIDR


1.消除了传统的A类,B类,C类地址以及划分子网的概念. CIDR记法:IP地址后加上"/",然后写上网络前缀(可以任意长度)的位数.eg:128.14.32.0/20 2. 融合子网地址与子网掩码,方便子网划分


CIDR把网络前缀都相同的连续的IP地址组成一个"CIDR地址块"


9fdd15e72f0d48d689c6c53f3cd8962b_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


MAC地址


数据链路层使用的地址,它是平面式的.在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部.通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址.


ARP协议


完成IP地址到MAC地址的映射.每台主机都设有一个ARP高速缓存,用来存放ARP表,使用ARP协议来动态维护此ARP表.


工作原理: 主机A欲向本局域网上的某台主机B发送IP数据报时,先在其ARP高速缓存中查看有无主机B的MAC地址.如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址.


IP数据报格式


一个IP分组由首部和数据两部分组成,首部又分为固定部分和可变部分.


e7d6a22c22ac4b9ebf916e0fbd280dc6_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


IP数据报分片


最大传送单元MTU


链路层数据帧可封装数据的上限.

以太网的MTU是1500字节

总长度单位是1B

片偏移量的单位是8B

首部长度单位是4B


273ac3402b0446b9afe121b49f46dd32_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


RIP协议


RIP是一种分布式的基于距离向量的路由选择协议,其最大的优点就是简单。


RIP的特点


  1. 仅和相邻路由器交换信息。
  2. 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
  3. 按固定的时间间隔交换路由信息。


OSPF协议


OSPF协议是使用分布式链路状态路由算法的典型代表。


路由器的构成


路由选择和分组转发


路由器和以太网交换机的比较


路由器是利用网络层地址转发分组的存储转发分组交换机,尽管交换机也是一个存储转发交换机,它和路由器不同,因为它用MAC地址转发分组。交换机是一个第二层的分组交换机,而路由器是一个第三层的分组交换机。


五、🍟运输层


运输层的功能


进程之间的逻辑通信、复用和分用、差错检测、面向连接的TCP和面向无连接的UDP


问答:


接收方收到有差错的UDP用户数据报时应如何处理?


丢弃且不通知发送方。


TCP和UDP的主要区别。


TCP提供的是面向连接、可靠的字节流服务,并且有流量控制和拥塞控制功能。UDP提供的是无连接、不可靠的数据报服务,无流量控制和拥塞控制。


为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个字段?


TCP首部除固定长度部分外,还有选项,因此TCP首部长度是可变的。UDP首部长度是固定的。


如果因特网中的所有链路都提供可靠的传输服务,TCP可靠传输服务将会是完全多余的吗?为什么?


TCP可靠传输服务不是多余的。因为在端到端的数据传输过程中并不是所有的差错都来自分组在链路上传输时的比特级差错,例如由于网络拥塞导致路由器的分组丢弃,路由器在转发分组时的故障等都会导致端到端的数据传输的差错,这些都不可能通过链路层的可靠数据传输得以解决,必须由端到端的运输层可靠数据传输服务来解决。


为什么使用三次握手?


三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送和接收,而三次握手的主要目的就是确认自己和对方发送和接受数据是正常的。


简单增加资源是否能解决拥塞问题?


拥塞控制是一个全局过程,涉及到所有的主机、所有的路由器以及与降低网络传输性能有关的所有因素。拥塞的实质往往是整个系统的各个部分不匹配。只有所有的部分都平衡了,问题才会解决。 增加资源并不能保证一定解决拥塞问题。例如当某个结点缓存容量太小时,分组将因无缓存空间而被丢弃。如果将缓存容量扩展到非常大,所有分组都能在这个缓存队列上排队,这样会出现很长的排队等待时间,结果将因为超时而重传分组,重传的分组继续排队,使情况更加恶化。这个例子也说明增加资源并不能保证一定解决拥塞问题。


习题


设TCP使用的最大窗口为64 KB,即641024字节,而传输信道的带宽可认为是不受限制的。若报文段的平均往返时延为20 ms,问所能得到的最大吞量是多少?


caf0d5489b0e46b18651f5dfb293b9e3_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


通信信道带宽为1 Gbit/s,端到端时延为10 ms。TCP的发送窗口为65535字节。试问:可能达到的最大吞吐量是多少?信道的利用率是多少?


发送时延=数据长度/信道带宽=65535 * 8bit/1Gb/s=0.52428 * 10-3s=0.52428ms;

传播往返时延=2 * 10=20ms (发送数据和接收确认);

故每发送一个窗口大小的流量需要,

总时延 = 发送时延 + 传播往返时延 = 0.52428+20=20.52428ms。

故每秒钟可以产生1000/20.52428个窗口,

因此最大数据吞吐量=65536*8*(1000/20.52428)=25544769bit/s=25.5Mb/s

信道的利用率 = 25.5Mb/s÷1000Mb/s≈2.55%


六、🥗应用层


DNS的功能


DNS是因特网使用的命名系统,用来把便于人们记忆具有特定含义的主机名转换为便于机器处理的IP地址。


HTTP


分为非持久连接和持久连接(HTTP/1.1支持) 对于非持久连接,每个网页元素对象的传输都需要单独建立一个TCP连接。


所谓持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求和响应报文。


841969220ed1469bb977da5ebe01ee19_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


电子邮箱服务SMTP和POP协议


简单邮件传输协议是一种提供可靠且有效的电子邮件传输协议,它控制两个相互通信的SMTP进程交换信息。SMTP用的是TCP连接,端口号为25。


邮局协议是一个非常简单但功能有限的邮件读取协议。现在使用的是它的第3个版本POP3。


FTP的功能


FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。熟知端口号(21) FTP提供以下功能:


  1. 提供不同种类主机系统之间的文件传输能力。
  2. 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
  3. 以匿名FTP的方式提供公用文件共享的能力。


TELNET


Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。


DHCP


DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
3月前
|
监控 安全 数据安全/隐私保护
智能家居安全入门:保护你的网络家园
本文旨在为初学者提供一份简明扼要的指南,介绍如何保护自己的智能家居设备免受网络攻击。通过分析智能家居系统常见的安全漏洞,并提供实用的防御策略,帮助读者建立起一道坚固的数字防线。
|
18天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
64 0
|
23天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
2月前
|
弹性计算 人工智能 运维
Terraform从入门到实践:快速构建你的第一张业务网络(上)
本次分享主题为《Terraform从入门到实践:快速构建你的第一张业务网络》。首先介绍如何入门和实践Terraform,随后演示如何使用Terraform快速构建业务网络。内容涵盖云上运维挑战及IaC解决方案,并重磅发布Terraform Explorer产品,旨在降低使用门槛并提升用户体验。此外,还将分享Terraform在实际生产中的最佳实践,帮助解决云上运维难题。
126 1
Terraform从入门到实践:快速构建你的第一张业务网络(上)
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
23 1
|
3月前
|
域名解析 网络协议 应用服务中间件
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
本文将以网络编程入门者视角,言简意赅地为你请清楚localhost和127.0.0.1的关系及区别等。
156 2
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习入门案例:运用神经网络实现价格分类
深度学习入门案例:运用神经网络实现价格分类
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)入门与实践
【8月更文挑战第62天】本文以浅显易懂的方式介绍了深度学习领域中的核心技术之一——卷积神经网络(CNN)。文章通过生动的比喻和直观的图示,逐步揭示了CNN的工作原理和应用场景。同时,结合具体的代码示例,引导读者从零开始构建一个简单的CNN模型,实现对图像数据的分类任务。无论你是深度学习的初学者还是希望巩固理解的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门与实践
【9月更文挑战第19天】在这篇文章中,我们将探索深度学习的一个重要分支——卷积神经网络(CNN)。从基础概念出发,逐步深入到CNN的工作原理和实际应用。文章旨在为初学者提供一个清晰的学习路径,并分享一些实用的编程技巧,帮助读者快速上手实践CNN项目。