计算机网络——自顶向下方法(第一章学习记录)

news2024/12/28 19:23:56

 什么是Internet?

可以从两个不同的方面来理解Internet。(它的构成。它的服务)

1.因特网的主要构成

 

       处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为端系统(end system),端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网,端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。不同的链路能以不同的速率传输数据,链路的传输速率(transmission rate)以比特/秒(bit/s,或bps)度量。当一台端系统向另外一台端系统发送数据时,发送端将数据分段,并为每段加上首部字节,由此形成的信息包称为分组,这些分组通过网络发送到目的端系统,在那里被装配成初始数据。

        分组交换机从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组。两种著名的分组交换机类型是路由器(router)和链路层交换机(link-layer switch)。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径

        端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制网络中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最重要的协议。因特网的主要协议统称为TCP/IP协议。

 2.因特网服务描述 

从另外一个角度——为应用程序提供服务的基础设施,来看互联网,它还包括众多应用程序,而这些应用程序涉及多个相互交换数据的端系统,因此它们被称为分布式应用程序,因特网应用程序运行在端系统上,即它们并不运行在网络核心中的分组交换机中。

与因特网相连的端系统提供一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式,套接字接口是一套发送程序必须遵循的规则集合。(举个例子来说明)Alice使用邮政服务向Bob发一封信,Alice不能只是写了这封信然后丢到窗外。相反邮政服务要求Alice将信放在一个信封中;在信封外面写上Bob的全名、地址、邮政编码;封上信封,贴上邮票;最后将信封放入信箱中。该邮政服务有自己的”邮政服务接口“,同样的因特网也有一个发送数据的程序必须遵循的套接字接口,使得因特网向接收数据的程序交付数据。

什么是网络协议?

协议:在两个或多个通信对等实体之间通信的一系列规则的集合。

什么是网络边缘?

通常把与因特网相连的计算机和其他设备称为端系统,因为它们处于因特网的边缘,所以被称为端系统。

端系统也称为主机(host),因为它们容纳(运行)应用程序,主机有时又被进一步分为:客户端(client)和服务器(server)

什么是接入网?

接入网就是将端系统物理连接到其边缘路由器(edge router)的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。

 

常见的物理媒体有哪些? 

 一个比特从一个端系统传送到另外一个端系统,中途会经过一系列链路和路由器,两个路由器就组成了”发射器——接收器“对,对于每个”发射器——接收器“对,通过跨越一种物理媒体传播电磁波或光脉冲来发送该比特。物理媒体分为两种类型:导引型媒体和非导引型媒体。对于导引型媒体,电波沿着固体媒体前行,如光缆、铜线、电缆等;对于非导引型媒体,电波在空气或外层空间中传播,如在无线局域网或数字卫星频道中。

常见的物理媒体有:双绞铜线、同轴电缆、光纤、陆地无线电信道、卫星无线电信道。

什么叫网络核心?

网络核心就是由端系统的分组交换机和链路组成的网状结构。

分组交换: 在各种网络应用中,端系统彼此交换报文(message),报文能够包含协议设计者需要的任何东西。为了从源端系统向的端系统发送一个报文,源端将报文划分为较小的数据块,称之为分组(packet)。在源端和目的端之间,每个分组都经过通信链路和分组交换机(packet switch)传送。(交换机主要有两类:路由器和链路交换机)

存储转发传输:多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。换句话说就是只有当交换机已经完全接收完了该分组的所有比特之后,它才能开始向出链路传输(转发)该分组。

排队延时和分组丢失:每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称之为输出队列,output queue),它用于存储路由器准备发往那条链路的分组。输出缓存在分组交换中起着重要的作用,如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,则该到达分组必须在输出缓存中等待。因此除了存储转发时延外,分组还要承受输出缓存的排队时延(queuing delay)。这些排队时延是变化的,变化的程度取决于网络的拥塞程度。因为缓存空间的大小是有限的,如果缓存空间被等待传输的分组占满了,此时就会出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。

转发表和路由选择协议:路由器与它相连的一条通信链路得到分组,然后向与它相连的另一条通信链路转发该分组。但是路由器怎样决定它应当向哪条链路转发呢?

在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址,当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。每台路由器都有一个转发表(forwarding table),用于将目的地址映射称为输出链路。(当某分组到达一台路由器时,路由器检查该地址,并利用这个目的地址搜索其转发表,以发现适当的输出链路。路由器则将分组导向该输出链路)。

那转发表是如何设置的?

因特网具有一些特殊的路由选择协议(routing protocol),用于自动设置上面提到的转发表。

分组交换网中的时延、丢包和吞吐量

分组从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的每个节点经受几种不同类型的时延。有节点处理时延、排队时延、传输时延、传播时延

 作为源和目的地之间的端到端路由的一部分,一个分组从上游节点通过路由器A向路由器B发送,路由器A具有通往路由器B的出链路,在该链路前面有一个队列(也称为缓存)。仅当在该链路没有其他分组正在传输并且没有其他分组排在该队列前面时,才能在该队列中传输该分组;如果该链路当前正繁忙或有其他分组已经在该链路上排队,则新到达的分组将加入排队。

(1)处理时延

检查分组首部和决定将该分组导向何处所需的时间是处理时延的一部分。

(2)排队时延

在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度取决于先期到达的正在排队等待向链路传输的分组数量。

(3)传输时延

假定分组以先到先服务方式传输,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用L比特表示该分组的长度,用Rbps表示从路由器A到路由器B的链路传输速率。传输时延是L/R,这是将所有分组的比特推向链路(即传输)所需要的时间。

(4)传播时延

一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。传播时延等于两台路由器之间的距离除以传播速率。

(5)传输时延和传播时延的比较

传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。

排队时延和丢包

 一条链路前的队列只有有限的容量,当到达的分组发现一个满的队列,由于没有地方存储这个分组,路由器将丢弃该分组,即该分组将会丢失。

协议分层

各层的所有协议被称为协议栈。因特网的协议栈由五个层次组成:物理层、链路层、网络层、运输层和应用层 

(1)应用层

应用层是网络应用程序及它们的应用层协议留存的地方。应用层包括许多协议,HTTP(它提供Web文档的请求和传送)、SMTP(它提供电子邮件报文的传输)、FTP(它提供两个端系统之间的文件传送)。应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组,我们把这种位于应用层的信息分组称为报文(message)。

(2)运输层

因特网的运输层在应用程序端点之间传输应用层报文。有两种运输协议TCP和UDP,利用其中的任一个都能运输应用层报文。TCP向它的应用程序提供了面向连接的服务,这种服务包括了应用层报文向目的地的可靠传递和流量控制,TCP也将长报文划分为短报文,并提供拥塞控制机制。UDP协议向它的应用程序提供无连接服务,没有可靠性、没有流量控制,也没有拥塞控制。把运输层的分组称为报文段(segment)。

(3)网络层

网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。网络层包括著名的网际协议IP,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。

(4)链路层

网络层通过源和目的地之间的一系列路由器路由数据报,为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务,特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在该下一节点,链路层将数据报上传给网络层。

由链路层提供的服务取决于应用于该链路的特定链路层协议,把链路层分组称为(frame)

(5)物理层

虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

openEuler+Linaro合作成果展示|2023开放原子全球开源峰会

2023年6月11~13日,2023年开放原子全球开源峰会(OpenAtom)在北京经济开发区北人亦创国际会展中心召开,本届峰会旨在搭建全球开源生态发展合作交流平台,聚焦开源生态建设发展,并组织了openEuler、…

STL容器——unordered_set的用法

0、概述 unordered_set容器,可直译为无序 set 容器。即 unordered_set容器和 set 容器很像,唯一的区别就在于 set容器会自行对存储的数据进行排序,而 unordered_set 容器不会。下面是set、multiset和unordered_set之间的差别。 注意这三种集…

计算机网络管理 SNMP协议实用工具MIB Browser的安装和使用

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

qt常用基本类

文章目录 点直线时间相关的类 qt里面打印log或者打印东西&#xff0c;自带打印函数qDebug 里面<<插入操作符可以写任意类型 qDebug()<<"im ssss"<<520; //默认给你带换行//也能加endl&#xff0c;那就多换一行并不是说printf或者cout就不能用了…

[进阶]Java:阶段项目02——首页、登录、客户操作页

代码演示&#xff1a; public class MovieSystem {/*** 定义系统的数据容器用户存储数据* 1.存储很多用户&#xff08;客户对象&#xff0c;商家对象&#xff09;*/public static final List<User> ALL_USERS new ArrayList<>();/*** 2.存储系统全部商家和其排片…

Zebec Protocol 与 PGP 深度合作,将流支付更广泛的应用于薪资支付领域

Zebec Protocol 与 PGP 深度合作&#xff0c;将流支付更广泛的应用于薪资支付领域 随着传统机构的入局&#xff0c;以及相关加密合规法规的落地&#xff0c;加密支付正在成为一种备受欢迎的全新支付方式。加密支付基于区块链底层&#xff0c;不受地域、时间等的限制&#xff0c…

网络安全 log4j漏洞复现

前言&#xff1a; log4j被爆出“史诗级”漏洞。其危害非常大&#xff0c;影响非常广。该漏洞非常容易利用&#xff0c;可以执行任意代码。这个漏洞的影响可谓是重量级的。 漏洞描述&#xff1a; 由于Apache Log4j存在递归解析功能&#xff0c;未取得身份认证的用户&#xff…

Gof23设计模式之简单工厂/静态工厂模式

在java中&#xff0c;万物皆对象&#xff0c;这些对象都需要创建&#xff0c;如果创建的时候直接new该对象&#xff0c;就会对该对象耦合严重&#xff0c;假如我们要更换对象&#xff0c;所有new对象的地方都需要修改一遍&#xff0c;这显然违背了软件设计的开闭原则。如果我们…

工地临边防护缺失识别检测算法 opencv

工地临边防护缺失识别检测系统通过opencvpython网络模型技术&#xff0c;工地临边防护缺失识别检测算法检测到没有按照要求放置临边防护设备时&#xff0c;将自动发出警报提示现场管理人员及时采取措施。Python是一门解释性脚本语言&#xff0c;是在运行的时候将程序翻译成机器…

PaddleOCR #使用PaddleOCR进行光学字符识别 - OCR飞桨实验

引言&#xff1a; PaddleOCR 是一个 OCR 框架或工具包&#xff0c;它提供多语言实用的 OCR 工具&#xff0c;帮助用户在几行代码中应用和训练不同的模型。PaddleOCR 提供了一系列高质量的预训练模型。这包含三种类型的模型&#xff0c;使 OCR 高度准确并接近商业产品。它提供文…

SPI(Serial Perripheral Interface)

SPI全称是Serial Perripheral Interface&#xff0c;也就是串行外围设备接口。SPI是Motorola公司推出的一种同步串行接口技术&#xff0c;是一种高速、全双工的同步通信总线&#xff0c;SPI时钟频率相比I2C要高很多&#xff0c;最高可以工作在上百MHz。SPI以主从方式工作&#…

Fiddler抓包工具之Fiddler+willow插件应用

安装 Fiddler的安装包地址&#xff1a;fillderwillow 解压后安装fiddler4和willow1.4.*版本。 安装成功后&#xff0c;启动fiddler后会出现willow插件按钮&#xff1a; 说明安装成功。 重定向 willow重定向 进入willow界面后&#xff0c;通过右键->Add Project ->Add R…

Compose 嵌套滑动冲突的解决办法

前言 在最近我利用业余时间使用 Compose 写的 Gihub APP 中&#xff0c;它的首页结构是这样的&#xff1a; 采用了 Drawer 嵌套 Pager 的结构。 这就会出现一个问题&#xff0c;那就是 Drawer 和 Pager 都需要监听横向滑动手势&#xff0c;从而实现展开 Drawer 和 切换 Pager…

C#TryCatch用法

前几天一个学员在学习C#与TryCatch用法时,也不知道TryCatch用法装可以用来做什么 。下面我们就详细讲讲C# 和封TryCatch用法相关知识。 C# 是一种通用、类型安全且面向对象的编程语言&#xff0c;由微软开发并在 .NET 平台上运行。TryCatch 是 C# 语言中的一个结构&#xff0c…

PYTHON在数据保存csv时文件内容乱码了怎么解决?

目录标题 前言问题1. 在打开 CSV 文件时指定编码方式2. 将数据转换成 Unicode 编码尾语 前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 问题 如果你的 Python 程序采集到的数据在保存成 CSV 格式的文件时出现了乱码。 那么可尝试以下解决方法&#xff1a; 1. 在打…

MySQL数据库——索引、事务、存储引擎

MySQL 索引 索引的概念 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录的内存地址&#xff09;。使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引…

一个项目的测试计划模板该怎么写?【附案例】

目录 一、引言 二、测试任务 三、测试进度 四、测试资源 五、测试策略 六、测试完成标准 七、风险和约束 八、问题严重程度描述和响应时间规范 九、测试的主要角色和职责 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程&#xff0c;其目的在于检验…

Python进阶语法之异常处理

Python进阶语法之异常处理 在编写Python程序时&#xff0c;经常会遇到各种运行时错误&#xff0c;这些错误会导致程序终止并抛出异常。然而&#xff0c;有时我们希望程序能优雅地处理这些错误&#xff0c;而不是直接崩溃。在这种情况下&#xff0c;我们需要使用到Python的异常…

Vue中如何进行分布式存储与对象存储

Vue中如何进行分布式存储与对象存储 随着云计算和大数据时代的到来&#xff0c;分布式存储和对象存储越来越受到关注。在Vue中&#xff0c;我们可以使用不同的分布式存储和对象存储技术来存储和管理数据。本文将介绍Vue中如何进行分布式存储和对象存储。 什么是分布式存储&…

OpenGL 混合

1.简介 混合(Blending)通常是实现物体透明度的一种技术。透明就是说一个物体&#xff08;或者其中的一部分&#xff09;不是纯色(Solid Color)的&#xff0c;它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。 2.丢弃片段 只想显示草纹理的某些部分&#xff0…