草庐IT

高斯课堂 计算机网络(上)

5pace 2023-08-03 原文

第一章、概述

0、第一章导图

1、计算机网络概述

(1)计算机网络发展历史1:ARPANET->互联网

小写internet是一个宽泛的概念,指的就是互联网
大写Internet是一个专有名词,指的就是我们现在所使用的这样一个全球最大的互联网

(2)计算机网络发展历史2:三级结构因特网

第二阶段就是光有互联不行,我们还需要有人去管理,或者说有组织有纪律

(3)计算机网络发展历史3:多层次ISP结构

ISP可以理解成管理员

(4)计算机网络定义、组成、功能

通信线路和交换设备其实指的就是这一些核心部分,通信线路其实就是连接起来的有线电路或者无线的传输介质;交换设备主要是以路由器为主
边缘部分指的是核心部分所连接的末端,这些主机,不管是电脑还是手机等等

数据通信指的是比如发微信打视频;资源共享指的是软件、硬件、数据的共享

(5)计算机网络分类

广域网 非常大,比如跨国
城域网 城市范围
局域网 一个教学楼一个办公室
个域网 个人手环区域内

专用网是有一定权限才可以使用的网络,比如军队政府

(6)数据交换方式:电路交换、报文交换、分组交换

电路交换,发送出来前要先建立连接,其他人都不可以占用这个链路也不可以占用这个设备。但优点是快
报文交换,不用事先建立连接,不用事先预约好走哪条路,我们直接发送,其他主机也可以占用这些交换设备A和交换设备B,不是独占资源,而是可以共享设备和链路。为什么要说是存储转发方式呢?因为它把数据放到交换设备之后,交换设备会把这个报文先存下来,存储下来,然后去看应该发给哪条路,然后再转发出去,所以这是两步,先存再发,这就是存储转发方式
分组交换和报文交换本质上差不多,也是存储转发方式,唯一的区别在于报文交换是直接把这一块发出去,分组交换是把它切开,切成一个个小分组,然后这些小分组分头行动,当然也是按顺序分头行动,这些小分组可能通过不同的路,再分别到达目的主机,然后对分组进行一个排序,注意并不是按顺序发来的!因为有些后面的可能比较快

2、分层体系结构

(2)计算机网络分层体系结构:OSI参考模型(国际标准化组织ISO提出)

实体:每一个层次就是一个实体。相同的层次->对等实体
协议(水平):每一个层次实现相同的功能,它们之间的规则就叫做协议
服务(垂直):每两个层次之间都会有服务。注意是下层为上层提供服务,上层使用下层提供的服务
SAP服务访问点:我们是通过SAP服务访问点来在两个层次之间提供服务的

(3)OSI参考模型

应用层:比如qq微信搜索引擎
网络层:是唯一一个实现路由转发、存储转发这些功能的层次

(4)OSI参考模型和TCP/IP参考模型

主要做的改动:将物理层和数据链路层集中在一层作为网络接口层;上面三层(应用层、表示层、会话层)集中叫做应用层;传输层名字不变;网络层改了一个字,叫做网际层

三个的区别:1、只有OSI定义了服务、协议、接口,这三个并不是TCP/IP定义出来的
无连接指的是我们在发送数据的时候可以先不事先建立连接直接发送,这样我们可以快速发送数据,但是会导致有的时候数据丢失,比如有的时候qq上发送数据由于网络太差就乱序了

3、第一章导图

第二章、物理层

0、第二章导图

1、物理层概述及通信基础

(1)物理层概述

考察物理层的四大特性叫什么

(2)数据通信基础

在这个过程中主要分成三个系统

源系统:信道主要是有线或无线介质

注意这个波特单位没有“每秒”,虽然是传输速率

每秒传输1600个码元,那么一秒传输1600*3(八进制)=4800bit

信道是有方向的。如果是单工通信是只有一个方向的信道。半双工通信就是A和B都可以发送数据,但是不能同时发送数据,要么A发B接收,要么B发A接收。全双工通信指的是A和B可以同时发送数据,共享这个信道,所以在这种情况下逻辑上其实是有两条方向相反的信道

基带信号可以变身成两种东西

(3)信号の变身:编码与调制

差分曼彻斯特注意看的是初始位置是否跳变(就是虚线的地方)

(4)极限数据传输率


(5)信道复用技术




(6)导图

2、传输介质及物理层设备

导引型就是看得见摸得着的,非导引型就是在空气、真空中存在的介质

(1)传输介质

(2)传输介质——导引型

同轴电缆的抗干扰性要大于双绞线
应用场景:双绞线普遍应用于电话系统中,而同轴电缆普遍应用于有线电视网

10BASE-T中的“10”代表传输的最大数据率或者说带宽——10Mb/s,“BASE”是传送的基带信号,“T”表示Twice双绞线。不管是10还是100,每段最长都是100m

光纤:

(3)传输介质——非导引型

(4)物理层设备:中继器&集线器

中继器是一个端口入一个端口出;集线器是可以有多端口的,一个端口入,多个端口出来

(5)宽带接入技术(有线)

3、第二章导图

第三章、数据链路层

1、链路层概述及重要协议

(1)数据链路层概述

把网络层传下来的IP数据报作为帧的数据部分,在链路层加上首部和尾部的控制信息,然后交付给物理层,形成比特流的形式在传输介质上传输。再发给相应的交换设备,再一步步解封装,

透明传输:不管数据里是什么样的比特流的序列,链路层都可以无视它直接把控制信息装上去

(2)数据链路层功能概述——封装成帧

(3)数据链路层功能概述——透明传输

(4)数据链路层功能概述——差错检测(???)



(5)数据链路层重要协议:PPP协议

(6)数据链路层重要协议:CSMA/CD协议(局域网广播信道所使用)


(7)导图

2、重要网络及链路层设备

(1)局域网


(2)以太网Ethernet

(3)高速以太网

吉比特在半双工情况下会使用CSMA/CD;在全双工情况下就不需要使用
10吉比特是全双工,自然就用不到CSMA/CD。因为CSMA/CD应用在半双工、总线型网络

(4)链路层设备

网桥就是两个接口,一个入一个出

虚拟局域网VLAN:
由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段有某些共同的需求,因此就被放在同一个VLAN里,以太网交换机就可以通过以太网帧中的VLAN标记对不同VLAN的主机进行数据转发。

(5)冲突域& 广播域

局域网就是一个冲突域

有一个交换机和一个集线器,集线器不能隔离冲突域也不能隔离广播域,所以集线器下面这一坨都是一个冲突域;交换机可以隔离冲突域但不能隔离广播域,所以它的每一个端口其实都隔离开了一个冲突域,由于它有四个端口,所以整个图里就有四个冲突域。广播域呢只有看到了路由器才可以进行划分,如果有路由器,我们就看路由器有多少个端口,如果路由器有三个端口则说明图中有三个广播域。由于这里没有路由器,所以只有一个广播域

有关高斯课堂 计算机网络(上)的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  4. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  5. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  6. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  7. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  8. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  9. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  10. ruby-on-rails - 如何计算 Ruby/Rails 中 JSON 对象的数量 - 2

    Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包

随机推荐