目录
3.5.1 信道划分介质访问控制(静态)(频分FDM、时分TDM、波分WDM、码分CDM)
3.5.2 随机访问介质访问控制(动态)(ALOHA、CSMA、CSMA/CD、CSMA/CA)
3.5.3 轮询访问介质访问控制(动态)(轮询、令牌传递)

总线型弊端:若总线断开,则影响很多主机,使其无法转递信息
星型:若主机A和集线器D中间断开,则不影响其他任何主机之间传递信息
指发送数据的最高速率,并不是传播数据的速率

所有信道加在一起,接受比特的速率






第n层在向第n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能
仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽
体系结构是抽象的,而实现是指能运行的一些软件和硬件
法定标准








事实标准










































3.3.1.1 奇偶校验码

3.3.1.2 CRC循环冗余码*

3.3.2.1 海明码*





流量控制:控制发送速率,使接受方有足够的缓冲空间来接受每一个帧
可靠传输:发送端发啥,接收端就接受啥
滑动窗口解决:
流量控制(收不下就不给确认,想发也发不了)
可靠传输(发送方自动重传)






有窗口就可以发送(发送端有窗口可以发送数据帧,接收端有窗口可以发送确认帧) 



GBN总结重点:
累计确认(偶尔捎带确认)
接收方只按顺序接受帧,不安顺序无情丢弃
确认序列号最大的、按序到达的帧
发送窗口最大为2的n次方-1,接收窗口大小为1




SR重点总结:
对数据帧逐一确认,收一个确认一个
只重传出错帧
接收方有缓存


3.5.1.1 频分多路复用(FDM)

3.5.1.2 时分多路复用(TDM)


3.5.1.3 波分多路复用(WDM)
3.5.1.4 码分多路复用(CDM)*
3.5.2.1 ALOHA协议

纯ALOHA协议比时隙ALOHA协议吞吐量更低,效率更低
纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发
3.5.2.2 CSMA协议




注:p-坚持CSMA是有的主机(p的概率)直接发送,有的主机(1-p的概率)监听到下一个时序再发送,降低了冲突的可能性
3.5.2.3 CSMA/CD协议**
应用于半双工网络,总线型以太网(有线)



最小帧长是为了确保在检测到碰撞时,帧还没有发完。检测到碰撞的最短时间是2(tao)
3.5.2.4 CSMA/CA协议

CSMA/CD与CSMA/CA区别:
相同点:
都属于CSMA的思路,其核心是先听再说,即需要先监听信道,若空闲,再发送数据。
不同点:
传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】
载波检测方式不同:因传输介质的不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随之发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有限的重传

3.5.3.1 轮询协议
3.5.3.2 令牌传递协议*
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道
决定区域网的主要因素为:网络拓扑、传输介质、介质访问控制方法


局域网分类:
以太网:采用IEEE 802.3标准
无线局域网:采用IEEE 802.11标准
IEEE 802标准:
IEEE 802.3:以太网介质访问控制协议及物理层技术规范
IEEE 802.5:令牌环网介质访问控制协议及物理层技术规范
IEEE 802.8:光纤技术咨询组,提供有光关光纤联网的技术咨询
IEEE 802.11:无线局域网介质访问控制协议及物理层技术规范

也称802.3局域网,是基带总线局域网规范,使用CSMA/CD技术,满足网络速率要求:10Mb/s ~ 10Gb/s
以太网的两个标准:
DIX Ethernet V2:第一个局域网产品(以太网)规约
IEEE 802.3:IEEE 802委员会802.3工作组指定的第一个IEEE的以太网标准
以太网提供无连接、不可靠的服务:
无连接:发送方和接收方无“握手过程”
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责
只能实现无差错的接受,不实现可靠传输
以太网拓扑:
逻辑上是总线型,物理上是星型









全双工通信,点对点通信

PPP协议无需满足的要求:纠错、流量控制、序号、不支持多点线路


全双工通信




节点交换机是在一个网络内的,而路由器是在几个网络之间的




也称多接口的网桥










4.2.3.1 数据报方式
4.2.3.2 虚电路方式





首部长度单位:4B
总长度单位:1B
片偏移量单位:8B




路由器对目的地址是私有IP地址的数据报一律不进行转发








































































































FTP传输模式:
文本模式:ASCII码模式,以文本序列传送数据
二进制模式:Binary模式,以二进制序列传送数据













这里是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,
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个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
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[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
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~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} 最佳答案
我在这方面尝试了很多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
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?