【计算机网络】0 课程主要内容(自顶向下方法,中科大郑烇、杨坚)(待)

1 教学目标

        掌握计算机网络

                基本概念

                工作原理

                常用技术

        为将来学习、应用和研究计算机网络打下坚实基础

2 课程主要内容
  • 1 计算机网络和互联网
  • 2 应用层
  • 3 传输层
  • 4 网络层:数据平面
  • 5 网络层:控制平面
  • 6 数据链路层和局域网
  • 7 网络安全
  • 8 无线和移动网络
  • 9 多媒体网络
  • 10 网络管理
3 每章结构
每章分为两部分,原理 + 实例
3.1 原理:这一层次主要的功能和向上提供的服务
这层的功能是什么,怎么实现

        (功能和服务的差别:功能是我具备的能力,服务是功能的体现)

        每一层的功能都通过向上层提供的这个接口,向上层提供服务。

功能包含的比服务多,我有强悍的功能但是不能被人所使用也不行。

本层的功能实现要通过层间的接口调用下层的服务才能实现。

3.2 实例

如互联网当前层次中,用到的比较多的协议

功能借助于下层所提供的服务怎么样在功能实体的内部采用各种各样的软硬件的安排来实现这样的功能,从而通过接口可以向上层提供更好的服务

1 计算机网络和互联网

介绍大量的计算机网络的关键术语和概念,及计算机网络怎么大致工作的框架性原理

2 应用层

支撑web应用的http协议

支持ftp应用的ftp协议(文件传输协议)

传输和接收电子邮件用的smtp和pop3

应用层协议就是在传输层所提供的这两种类型的服务的基础之上,远程的应用进程(两个应用进程不是跑在一个主机里的,)通过主机联网能够通信,A一个message过去,B一个报文回来。通过报文的交互来实现各种各样的网络应用。这叫应用层协议,

应用进程之间,远程的应用进程之间相互通讯过程中应该遵守的规则和协议,即应用层协议。

浏览器和服务器,我要定义好他们两者如何来交互,从而实现web的应用,ftp的客户端,ftp的服务器,我也要定义客户端和服务器之间如何交互,从而实现文件的上载和下载。要完成用户的认证,list当前目录,只有定义好两者交互的这种语法,语义和时序这样的信息之后,不同厂商定编制的应用程序(chrome/ie/360浏览器)和web服务器(apache/微软的rs),不同厂商生产的网络应用就可以互操作。
-- 你只要遵守这个协议,不同厂商生产应用程序就可以交互

--你只要遵守这个协议,不同厂商生产的网络设备就可以相互--思科的路由器和华为的路由器就可以交互

--你只要遵守这个协议,不同厂商的网卡,新华三的网卡和华为的网卡,能无障碍通信,

3 传输层:

传输层向上层提供什么服务,传输层怎么样借助于网络层所提供的服务才能实现,

传输层协议tcp和udp

tcp 传输控制协议,很多应用都跑在tcp之上,如ftp、telnet,web的应用。http又在传输层tcp之上

udp:用户数据报协议,

tcp与udp提供的服务特性不同

有些应用层的应用,如telnet,ftp传文件,web的应用。对可靠性要求不高

有些应用对可靠性要求很高,数据发出去后,通过下层所提供的协议,就tcp协议所提供的服务。对方就能原本收到这些内容。这是可靠性reliable,

可靠包括哪些特性:不出错,不重复,不丢失,不失去

有些应用对可靠性非常高,它跑在tcp之上,tcp可以向上层的应用(就是传输层的tcp协议实体)向上层提供的是可靠的数据传输这样的一些服务,

有些应用像实时多媒体的点播之类的,跑在udp之上,对实时性要求高,对可靠性要求不高。麦克风收集到现场的声音,打包往外传传给对方,对方再把它播放出来,如果中间丢了一块数据,对整个数据的理解影响不大,卡顿会影响用户体验。还有一些事务性的应用,过去回来,请求对象回来,如果采用tcp,tcp是面向连接,连接建立-连接确认-发请求-对象回来,需要两个往返时间(round trip time),而udp只需要一个往返时间,如果错了重传就好了

可靠的代价:留副本,编号 ,对方收到后要确认,防守端放完之后如果出问题,要重传,检错重传,超时重传,编号,到接收端还有校验,乱序要排序。这些代价会占据的方式和接收方的空间消耗,传上去和收上来的时间传输层是为应用进程提供服务的,多个远程的应用进程提供服务。

4 网络层

传输层是在网络层所提供的端到端的服务基础上来实现。

端到端:主机到主机,两个主机之间,连一个网,通过很多跳,这两个主机之间才能够连在一起,才能够相互的发送和接收,

提供原主机到目标主机之间的,是以ip数据报为单位的数据交互。我把 IP数据报发给你,你把ip数据报发给我。网络层提供这种端到端的,主机到主机的这样一些服务。

传输层在网络层所提供的服务基础上,主机到主机的服务基础上提供了什么好的服务呢?

ip层网络层所提供的服务是主机到主机的,传输层在网络层所提供的服务基础上,把他区分为进程到进程。

哪个颗粒度更细一些:传输层所提供服务进程。因为主机到主机上面有好多应用进程。

传输层是在网络层所提供的主机到主机的传输服务基础之上,细分了他的服务,加强了他的服务。

网络层所提供的服务从一个主机到另外一台主机,这些主机到主机之间可能要经过好多路由器交换机,路由器交换机,才能到达另一个主机

ip层。tcp传输层所提供的服务是在IP的基础上来的。IP所提供的服务是端到端的。主机到主机的。

另外一个特点是,网络层ip这个层次所提供的服务是尽力而为的(Best evil)--没有任何保障。

IP层所提供的服务,能不能传到 -- 不知道;丢不丢 --  有可能丢;出不出错 -- 不确定;乱不乱序 --经常乱序

tcp在ip所提供的基础之上,一个是细分了他的服务,从主机到主机,细分为进程到进程,另外还有一个功能,把IP所提供的不可靠的服务,通过tcp这样传承的协议,把它变成可靠的服务。

网络层所提供的服务是端到端的,包括了若干个点到点,(到相邻的网络交换设备,相邻的网络设备到相应的网络设备,叫point to point(p2p)

端到端end to end(E2E)是多个点到点构成的。网络层所提供的服务是端到端的服务,他必须要在数据链路层所提供的相邻的两点到两点之间的这种传输服务才能够实现。

6 数据链路层和物理层

网络层是在数据链路层所提供的相邻两点提供的点到点的传输服务实现了主机到主机的这样的通讯。

ip层从一个主机传到另外一个主机,中间要经过很多跳,十几跳几十跳都有可能。每一跳从相邻的一个网络交换设备到另外一个,之间怎么跳呢,是借助网卡所提供的数据链路层点到点的服务才能够实现的。

链路层所提供的服务就是这个。

链路层提供相邻两点的这种传输的服务,必须到物理层,把数字的信号要不要发送出去的时候把它变成物理的信号。即发送1010,是不好收到的,需要变成光信号或电磁波信号,这属于有线的网卡,无线的网卡或见到光卡,以光的形式或电磁波的形式传给对方,对方要把物理信号,把它做一个相反的变化,把物理信号变成数字信号,变成0101,最后交给对方的网卡,对方的网卡再把它变成里面的分组取出来,把ip分组取出来交给上层。

物理层做的事情:把数字信号发送的时候变成物理信号。借助于物理的介质(medium)传给相邻的网卡。介质包括:网线,同轴电缆,光纤,电话线,这些都是medium。

medium处于第零层,物理层是在medium之上实现的,相邻的两点之间的这个数字信号和物理信号的转换或者反过来。

为什么要数据平面和控制平面呢,网络也在不断的发展,网络层两种常见的工作方式:

传统方式:互联网的网络层分为IP协议和路由协议。

        路由协议:运营在路由器之上的路由器软件,即路由实体,跟其他路由器的路由实体,路由软件相互的交换一些路由报文。到了一个子网,起跳/多少延迟/有什么样的代价,可以到达,这叫路由信息。路由器之间相互交换路由信息。按照某种路由选择算法来算出路由表,

        路由表包括:IP的子网,该怎么走,(好几个字段描述),这些子网该怎么走,这些路由表是由路由器算出来,IP协议来使用,如何使用:来了一个IP分组,路由器当中同时运行的路由协议,路由实体,算出来路由表,IP协议根据到来的分组,根据算出来的路由表来决定,来了这个分组,插了三个网卡,连三个网络。从这里来了一个IP的分组,到底往哪个方向走,往A方向走他的下一个方向是什么,这个叫转发,网络层基本功能就是路由和转发路由。由路由协议来交换路由信息,由路由算法来算出路由表,算出路由表之后,由IP协议对到来的分组做转发的处理。

        网络层的工作大概分为两部分,一部分是路由,路由器之间相互的交换路由信息,然后按照路由选择算法来算出路由表,路由表谁用呢?这个IP协议来用,IP路由器收到IP分组的时候,根据到来的分组,他不是有标识的目标IP地址吗。根据目标IP查路由表,找到相应的表项之后,再从合适的端口给他转出去,

来了一个IP分组,他有目标IP地址叫da(destination ip address),目标IP,跟路由器算出来的路由表做匹配,判断一下这个IP是不是落在这个表项,找到相应的表项,在这表项中描述了这个IP应该从哪个端口放出去,因此,IP这个路由器包括一些算出来的路由信息,包括真正的语义信息是,哪些IP子网该往哪儿走,来了IP分组之后,这个IP协议,实体IP协议根据到来的分组,他的目标IP的情况,查路由表,找到相应的表项,再通过合适的端口放出去。

传统的路由器(28min)

现代的SDN方式:

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

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

相关文章

构建gitlab远端服务器(check->build->test->deploy)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言构建gitlab远端服务器一、步骤一:搭建gitlab的运行服务器【运维】1. 第一步:硬件服务器准备工作(1)选择合适的硬件和操作系统linux(2)安装必…

Learning vtkjs之WarpScalar

过滤器 WarpScalar 介绍 先看一个官方的一句话介绍: vtkWarpScalar - deform geometry with scalar data vtkWarpScalar - 使用标量数据变形几何体 详细介绍 vtkWarpScalar is a filter that modifies point coordinates by moving points along point normals by…

spss数据分析是什么 怎么下载spss

什么是SPSS SPSS是社会统计科学软件包的简称, 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出,于2009年被IBM收购,主要运用于各领域数据的管理和统计分析。作为世界社会科学数据分析的标准,SPSS操作操作…

C++合作开发项目:美术馆1.0

快乐星空MakerZINCFFO 合作入口&#xff1a;CM工作室 效果图&#xff1a; 代码&#xff1a; &#xff08;还有几个音乐&#xff01;&#xff09; main.cpp #include <bits/stdc.h> #include <windows.h> #include <conio.h> #include <time.h> #in…

《数据结构》--顺序表

C语言语法基础到数据结构与算法&#xff0c;前面已经掌握并具备了扎实的C语言基础&#xff0c;为什么要学习数据结构课程&#xff1f;--我们学完本章就可以实践一个&#xff1a;通讯录项目 简单了解过后&#xff0c;通讯录具备增加、删除、修改、查找联系人等操作。要想实现通…

Python学习笔记—100页Opencv详细讲解教程

目录 1 创建和显示窗口... - 4 - 2 加载显示图片... - 6 - 3 保存图片... - 7 - 4 视频采集... - 8 - 5视频录制... - 11 - 6 控制鼠标... - 12 - 7 TrackBar 控件... - 14 - 8.RGB和BGR颜色空间... - 16 - 9.HSV和HSL和YUV.. - 17 - 10 颜色空间的转化... - 18 - …

数据结构——栈的实现(java实现)与相应的oj题

文章目录 一 栈栈的概念:栈的实现&#xff1a;栈的数组实现默认构造方法压栈获取栈元素的个数出栈获取栈顶元素判断当前栈是否为空 java提供的Stack类Stack实现的接口&#xff1a; LinkedList也可以当Stack使用虚拟机栈&#xff0c;栈帧&#xff0c;栈的三个概念 二 栈的一些算…

JetBrains IDE 使用git进行多人合作开发教程

以下DEMO可以用于多人共同开发维护一个项目时&#xff0c;使用Git远程仓库的实践方案 分支管理 dev&#xff1a;开发分支test&#xff1a;测试分支prod&#xff1a;生成分支 个人开发也最起码有一个masterdev&#xff0c;作为主分支和当前开发分支。master永远是稳定版本&am…

花几千上万学习Java,真没必要!(十九)

1、StringBuilder&#xff1a; 测试代码1&#xff1a; package stringbuilder.com; import java.util.ArrayList; import java.util.List; public class StringBuilderExample { public static void main(String[] args) { // 初始化StringBuilder StringBuilder sb n…

腾讯会议产品策划的成长之路:从万字文档到功能落地的实战经验

腾讯会议产品策划的成长之路&#xff1a;从万字文档到功能落地的实战经验 在腾讯会议的产品团队中&#xff0c;有这样一位产品策划&#xff0c;他以其出色的逻辑思维、全局观念以及扎实的执行力&#xff0c;在团队中发挥着举足轻重的作用。他就是林陪同&#xff0c;一个自称“会…

JAVA进阶学习12

文章目录 一、File类1.1 File对象的构造1.2 File对象的常见方法判断功能的方法获取功能的方法绝对路径和相对路径创建删除功能的方法 1.3 File的常用遍历方法1.4 File获取并遍历的其他方法1.5 用法举例二、IO流2.1 IO的分类2.2 字节流的方法概述2.2.1 FileOutputStream2.2.2 Fi…

UE4-字体导入

一.字体导入 方法一&#xff1a; 然后通过导入将自己想要的字体导入到项目中&#xff0c;也可以直接将我们放在桌面的字体直接拖入到我们的内容浏览器中。 但是要注意想要发售游戏的话不可以这样导入微软的字体&#xff0c;因为Windows自带基本都有版权&#xff0c;所以最…

明星应援系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;线上应援管理&#xff0c;线下应援管理&#xff0c;应援物品管理&#xff0c;购买订单管理&#xff0c;集资应援管理&#xff0c;集资订单管理&#xff0c;市集订单管理&#xff0…

【CSS in Depth 2 精译_020】3.3 元素的高度

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

在 CI/CD 中怎么使用 Docker 部署前端项目?

本项目代码已开源&#xff0c;具体见&#xff1a; 前端工程&#xff1a;vue3-ts-blog-frontend 后端工程&#xff1a;express-blog-backend 数据库初始化脚本&#xff1a;关注公众号程序员白彬&#xff0c;回复关键字“博客数据库脚本”&#xff0c;即可获取。 前言 在上一篇文…

快速上手AI指令:打造个性化智能交互体验的全面指南

快速上手AI指令&#xff1a;打造个性化智能交互体验的全面指南 一、初识文心一言1.1 文心一言简介1.2 文心一言的特点 二、准备工作2.1 获取访问权限2.2 熟悉界面布局2.3 了解基础指令 三、基础指令操作3.1 问答互动3.2 文本创作3.3 任务规划 四、进阶指令操作4.1 复杂查询4.2 …

Python酷库之旅-第三方库Pandas(035)

目录 一、用法精讲 106、pandas.Series.iloc方法 106-1、语法 106-2、参数 106-3、功能 106-4、返回值 106-5、说明 106-6、用法 106-6-1、数据准备 106-6-2、代码示例 106-6-3、结果输出 107、pandas.Series.__iter__魔法方法 107-1、语法 107-2、参数 107-3、…

Java程序的故障排查

文章目录 Linux命令关机/重启/注销系统信息和性能查看磁盘和分区⽤户和⽤户组⽹络和进程管理常⻅系统服务命令⽂件和⽬录操作⽂件查看和处理打包和解压RPM包管理命令YUM包管理命令DPKG包管理命令APT软件⼯具 JDK命令jpsjstatjinfojmapjhatjstackjcmdjconsole 分析工具VisualVME…

自动驾驶-预测概览

通过生成一条路径来预测一个物体的行为&#xff0c;在每一个时间段内&#xff0c;为每一辆汽车重新计算预测他们新生成的路径&#xff0c;这些预测路径为规划阶段做出决策提供了必要信息 预测路径有实时性的要求&#xff0c;预测模块能够学习新的行为。我们可以使用多源的数据…

超简单安装指定版本的clickhouse

超简单安装指定版本的clickhouse 命令执行shell脚本 idea连接 命令执行 参考官网 # 下载脚本 wget https://raw.githubusercontent.com/183461750/doc-record/d988dced891d70b23c153a3bbfecee67902a3757/middleware/data/clickhouse/clickhouse-install.sh # 执行安装脚本(中…