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

 什么是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)物理层

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C2】文件,时间,多线程,动静态库

文章目录 1.文件:fprint/fgets/fwrite/fread,ftell/rewind/fseek/fflush1.1 文本文件:FILE结构体1.2 二进制文件:没有行概念1.3 文件定位:linux下文本文件模式和二进制文件模式没有区别。fgets和fprintf以行方式读写文…

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册 一、前置环境配置二、执行Xmind2testcase的转换方法1.在控制台输入xmind2testcase [path/xmind文件路径] [-csv] [-xml] [-json],例:xmind2testcase /root/homin/XX测试点.xmind -csv ##在当前…

MacOS 升级golang版本后无法debug,升级delve版本

golang版本升级到1.20以后导致debug失效了,本文针对MacOS系统,win系统也可作参考。 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.4 (maximum supported version 1.19) 1、升级delve版本 brew install delve 安装…

抖音seo账号矩阵系统源码代开发组件

一.开发矩阵系统的项目背景: 目录 一.开发矩阵系统的项目背景: 二.短视频矩阵系统SaaS模板组件通常包含以下几个方面的内容: 三.抖音SEO账号矩阵系统源码的技术搭建过程可以分为几个步骤: 1.确定系统的需求和目标&#xff0c…

MATLAB App Designer基础教程 Matlab GUI入门(一)

MATLAB GUI入门 第一天 学习传送门: 【MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程】 https://www.bilibili.com/video/BV16f4y147x9/?p2&share_sourcecopy_…

Spring Boot是什么?详解它的优缺点以及四大核心

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、Spring Boot 是什么? 二、Spring Boot 的优缺点 1、优点 ①可快速构建独立的 Spring 应用 ②直接嵌入Tomcat、Jett…

基于SpringBoot+mybatis+layui就业管理系统设计和实现

基于SpringBootmybatislayui就业管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…

Rust语言从入门到入坑——(11)面向对象

文章目录 0、引入1、封装2、继承3、多态4、引用 0、引入 Rust 不是面向对象的编程语言,但是可以实现面向对象方法:封装与继承,以及不完全的多态 1、封装 "类"往往是面向对象的编程语言中常用到的概念。"类"封装的是数据…

由于找不到msvcr110.dll,无法继续执行的三个可行修复方案

MSVCR110.dll是一种动态链接库文件,它是由Microsoft Visual Studio 2012的C运行时库的一部分。该文件主要负责提供C代码在Windows操作系统上运行所需的运行时支持。是Windows操作系统中非常重要的文件,如果文件出现损坏或者丢失,计算机系统就…

Windows下通过FastGithub加速国内GitHub访问

有时候在国内访问GitHub会非常慢,有时候直接打不开,无法访问,最近了解到了FastGithub 可以解决以下几个问题: github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问…

设计模式第18讲——中介者模式(Mediator)

目录 一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 抽象中介者(Mediator)——LogisticsCenter 5.2 抽象同事类(Colleague)——Participant 5…

Scala之泛型详解

泛型用于指定类或方法可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景是集合及集合中的方法参数,可以说同 Java 一样,…

LabVIEW开发基于直流电机的高精度定位火星车

LabVIEW开发基于直流电机的高精度定位火星车 火星探测器一直用于火星探测的自动无人驾驶车辆。这些机器人远程车辆用于避免对人类不公平的条件,并减少与之相关的危险。这一研究领域引起了许多科学家和研究人员的注意,这导致了这一技术领域的显着进步。已…

Quartz任务调度笔记

一、概念 1.1简介 Quzrtz是OpenSymphony开源组织在Job scheduling领域的开源项目 特点:Quartz具有丰富特性的"任务调度库",能够集成于任何的Java应用,小到独立的应用,大到电子商业系统。quartz能够创建亦简单亦复杂的调…

如何建立一个企业网站

建立一个企业网站的方法 1、好。如果你的网站将专注于你已经有了一个不错的主意,请跳过此步骤。如果不是,这里有一些事情来帮助你找出答案。首先,要明白,有几十亿人在互联网上,一个健康的比例有自己的网站。如果你限制…

ResizeKit.NET 自动更改所有控件和字体大小 -Crack Version

ResizeKit2.NET ---Added support for Microsoft .NET 7.0. 使您的应用程序大小和分辨率独立。 ResizeKit.NET 自动更改所有控件和字体的大小,以便它们可以显示在任何大小的表单上。提供完全控制来自定义调整大小过程。即使用户在运行应用程序时切换表单的大小&…

探索 Spring Boot 项目全过程

文章目录 🎇前言1.Spring Boot 所需环境2.Spring Boot 项目创建2.1 安装插件2.2 创建新项目2.3 项目属性配置2.4添加依赖2.4 修改项目名称2.5 添加框架支持2.6 目录介绍 3.判断Spring Boot 创建项目是否成功🎆总结 🎇前言 在 Java 这个圈子&…

Qt在Ubuntu下如何进行桌面软件开发?

文章目录 0.引言1.新建项目2.编写第一个程序3.在Qt外部启动程序 0.引言 笔者研究的方向涉及在ubuntu中运行代码,早先是直接利用控制台运行代码文件,在控制台中虽然设法将代码精简到一个三个文件中,只需要在控制台运行这三个文件即可&#xff…

使用itextpdf填充表单域并生成pdf

文章目录 前言一、准备工作1.1 安装软件1.2 准备pdf1.3 设置表单域 二、创建项目三、编写代码3.1 编写工具类3.2 测试 四、测试结果 前言 最近手上有个任务,就是需要做一个pdf导出的功能。 可选择的技术点比较多,我这边综合考虑之后,使用的…

第五课—大学英语四六级备考—听力专项

Key words 1.implement vt.实施 "Implement" 在中文中的意思是「实施」或「执行」。以下是一些示例用法和搭配: 中文意思:实施、执行 形近字:implicate(牵连) 1. 用英文造句:The government …