当前位置: 首页 > news >正文

【计算机网络】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方式:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Flutter 开源库学习
  • 【Linux】shell简单模拟实现
  • Adobe Premiere Pro(Pr)安装包软件下载
  • 2024年热门硬盘数据恢复软件大盘点:高效恢复您的宝贵数据
  • 【数据结构】二叉树OJ题_对称二叉树_另一棵的子树
  • NAS新品“翻车”后,绿联科技要上市了
  • Chapter 5: 二叉树详解
  • docker默认存储地址 var/lib/docker 满了,换个存储地址操作流程
  • HardeningMeter:一款针对二进制文件和系统安全强度的开源工具
  • 项目收获总结--MyBatis的知识收获
  • linux在ssh的时候询问,yes or no 如何关闭
  • 自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection
  • Python爬虫进阶----2(细心,耐心才能爬好)
  • PostgreSQL的Json数据类型如何使用
  • Flask校验
  • [PHP内核探索]PHP中的哈希表
  • $translatePartialLoader加载失败及解决方式
  • [译]如何构建服务器端web组件,为何要构建?
  • Angular6错误 Service: No provider for Renderer2
  • ECS应用管理最佳实践
  • export和import的用法总结
  • HTML5新特性总结
  • javascript数组去重/查找/插入/删除
  • node和express搭建代理服务器(源码)
  • Redis在Web项目中的应用与实践
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • tab.js分享及浏览器兼容性问题汇总
  • XML已死 ?
  • 搭建gitbook 和 访问权限认证
  • 蓝海存储开关机注意事项总结
  • 事件委托的小应用
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 7行Python代码的人脸识别
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • # 数论-逆元
  • #WEB前端(HTML属性)
  • (175)FPGA门控时钟技术
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (LeetCode C++)盛最多水的容器
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (三)终结任务
  • (一)RocketMQ初步认识
  • (转)h264中avc和flv数据的解析
  • (转)scrum常见工具列表
  • (转)母版页和相对路径
  • (转)项目管理杂谈-我所期望的新人
  • *上位机的定义
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net core 6 redis操作类
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 依赖注入和配置系统
  • .NET处理HTTP请求