计算机网络(2)
“计算机网络也是社会”
老师这么说,我觉得社会就是社会,社会,就是很多人,只要人一多什么鸟儿都有,自由而来的诸种万千,便是文化,便是社会
网络是社会的载体,不过,无所谓了
话说……昨天算上自我介绍和总纲和开玩笑和插科打诨才讲了10页,今天一节课就讲了16页,这个老师有点猛啊……
那么从上一次的结束开始吧,上来讲的首先是社会问题的问题,
其实很多问题很简单也很好理解,比方说网络的最根本目的是连接人与人是吧,但是后来就出现了一些敏感话题,而众所周知,这种话题一般都伤人,并且信息的传播自由也就带来了良莠不齐,当然有一些网络运营商已经进行了相关的屏蔽。
这个问题从根本上来说还没有得到有力的解决,因为可能那就是反对者所持的无法打破的一个根本原则和事实:网络上的一个字节,无论是短时玩家还是支付良好的来源,是发送大量流量的对等服务还是别的服务,确实都没有卵个区别。
再比如说,网络的便利沟通同时也为运营者坤窥探某些东西提供了便利,那么这里就涉及到了很多的利益的冲突
比如:美国FBI曾经在很多服务提供商安装了系统来检测非法信件的出入境
又比如:cookie是web浏览器上保存在用户计算机的小文件,可以被用来跟踪用户的活动和行为,甚至可能是重要信息的泄露
再比如:你既然使用了移动设备,那么网络运营商就必然要了解你在哪里(是不是很恐怖咕嘿嘿~)
当然了,计算机网络同时也提供了匿名的功能,既然信息本身并没有辨识性的话
接下来这点东西比起安全问题我更愿意称之为缺点
比如你查询到的问题倒真的未必是正确和靠谱的
比如垃圾邮件(damn it!)
比如目的是窃取你的信息和侵入电脑的电脑病毒
比如钓鱼网站
相关的一些小东西比如:图灵测试
网络硬件
好了现在结束无聊的东东来看更无聊的东西
首先明确两种基本的传输技术:点到点(point to point,话说最近迷上了二次元写作之后就对这些中英文违和的转换很是着迷我怕是个妖怪吧……),也就是将一对单独机器连接起来,当然,还有一个中间机器,这种短信息成为包(packet),也称为单播,另外有长度不一的路由,所以找到最短的很重要(嗯……总感觉有点熟悉又恶心的感觉……)
广播就是一对多,每个数据包都指定了预期的接收方,一台机器接收到的时候要看是不是目的地就是自己来决定处理还是忽略
广播就是全部,组播就是给一组,挺没意思的
根据距离作为分类指标来进行区分
pan,person area network个人
lan,local局域网
campus network
man,metropolitan城域网(cable,catv,有线电视网)
wan,广域网
先来看所谓的个域网
也就是设备围绕着一个人来进行通信
例子:彩色的孔线,短距离无线网络蓝牙
局域网
私有网络,一般也就是说建筑物,比方说家庭、办公室或者是工厂
被广泛用来连接个人计算机和消费类电子设备
再比如说企业网络
每台计算机都有一台无线调制解调器和一个天线,而每台计算机都与天花板上的某个个东东通信,这个玩意儿叫作接入点,捂脸路由器,或者是基站
路由器——access point——》wired network差不多是这么个道理吧,负责中继来自于无线的计算机之间的数据包,以及无线计算机和internet之间的数据包,当然如果计算机足够近的话直接交流就是了
无线局域网的一个标准称为IEEE 802.11,嗯,就是wifi,在任何地方可以从11mbps到几百个mbps的速率进行
有线局域网大多数都适用铜线作为传输介质,也有适用光纤的,这种网延迟很低,在所有性能的所有方面都超过了无限网络(“因为通过电线或通过光纤发送信号比通过空气发送信号更容易,道理就这么牛逼”,哇塞原作者是什么神仙逼男啊!)
许多有限局域网的拓扑结构是点到点链路为基础的,俗称以太网的IEEE802.3就是如此,每台计算机都连接到了一个盒子,也就是交换机(switch,我突然发现这些术语好像可以被用到小说里面怎么办我是不是没救了),一个交换机有多个端口,工作是中继与之连接的计算机之间的数据包,根据地址来确定给哪个计算机
当然交换机也可以插交换机(噗嗤),斜体的工作任务是梳理这种情况的数据包的路径
也可以将较大的物理局域网分成两个较小的逻辑局域网,这完全是为了适应人类奇怪的分类思维(话说在上课的时候我突然想象到,所谓人类的行为为什么是无限的,那不是因为人类行为的数据不能够测量,而是人类永远能够想出衡量一个事物的新的标准,这是人工智能永远无法达到的事情)
最开始的以太网中,所有的数据包在一条线性电缆上来解决,一次至多只有一台及其能够成功发送,因此需要仲裁机制来解决冲突(机制:如果空闲就ojbk,如果两个以上,就两个都等待随机时间再发送)
无线和有线广播网络可以分为静态设计和动态设计,前者是为机器分配固定的时间槽来广播,动态分配分为集中式和分散式,前者有一个中心实体,比如蜂窝网络中的基站,按照内部算法来决定数据包发送优先次序
家庭局域网?
这里我又看见了作者挺牛逼的一句话“没有人要求这样,但一旦到达实现了这种愿景的那一天,有没有人能够想象没有它们的生活会怎样”
也就是说万物皆可联网
那么家庭局域网的特殊性体现在
1.安装简单
2.网络和设备操作必须无懈可击,也就是安全问题,因为(这个定理倒是很正常),购买汽车电视冰箱的公众不如对待计算机那么宽容,他们不希望自己买来的是一个(虽然确实是但是他们甚至不希望他们自己认识到这一点)电脑怪人,其实这也确实挺怪的,理解理解
3.便宜
4.网络接口稳定
5.安全可靠,不仅是信息更是人身安全
一个明显的选项是使用早已经存在的电线网络,但是同一时间运输电源信号和数据信号?只需要使用不同频段即可
城域网
说白了就是城市
由社区天线系统发展而来,当然是有天线了,最著名的例子就是有线电视,通过天线到家里,后来就变成商业了
internet之后就开始用原有未使用的频谱来提供internet服务,电视信号和internet流量都先是送到一个集中式线缆前端(head end),然后到家里,参考机顶盒
广域网
也就是一个大陆,先说有线广域网,比如一个公司在各地的主机,连接这些主机地网络的其余部分也就是子网(通信子网),子网包括传输线路和交换元素,前者移动比特,可以是光线导线和无线,后者是交换机是专门的计算机,负责连接两条以上线路,选择一条出境线路来处理入境线路,最常用的名称就是——路由器……
子网就是一组路由器和一堆通信线路,负责将数据从源移动到目标主机,
广域网跟有线局域网的区别是:子网是网络运营商或者电话公司,通信(子网)和应用(主机)玩你去哪分离开来(废话要是不大还用得上分离)
还有一个区别就是路由器连接了不同类型的网络技术,所以其实很多广域网事实上是互联网络(internetwork),也就是网络的网络,所以其实互联网就像是全明星(all stars)一样是个复数来着
最后一个差异在于子网连接什么,可以是单个计算机也可以是一个局域网,所以其实总结起来就是——大了就会有吊事
第一种广域网直接将办事处连接到internet,办事处之间使用虚拟链路进行连接,底层使用internet的容量,也就是虚拟专用网络(vpn出现了!),更具灵活性,但是缺乏对于底层资源的控制
采用专用线路可以得到的容量是明确的,但是前者取决于internet服务
第二种,子网由不同公司运营,成为网络服务供应商(出现了!),办事处相当于是客户了,只要给钱就办事儿,这个子网运营商跟其他的internet网络进行连接,成为internet服务供应商,注意一个是单数一个是复数,这样的子网是isp网络,简而言之,给isp钱就能用internet
大多数广域网中,每条传输线路连接一对路由器(废话),如果两个路由器不共享线路,必须间接(又是恶心的感觉……),涉及到了路由算法(最短路径呗),如何决定将某个数据包发送到某个位置的是转发算法
大量使用无线技术,卫星系统中,每个计算机都有天线,通过其发送接收数据,卫星网络是广播的
例子:蜂窝移动网络,第一代是语音的,第二代是语音的,第三代是数据的,
互联网络(出现了!)
许多网络使用不同的硬件和软件,怎样兼容连接,就是互联网络,而因特网?那就是一种特殊的互联网。
internt用isp来连接各种网络,子网就是一组路由器和通信线路,就像是电话系统一样,电话交换局通弄过高速线路连接,通过低速线路连接到住宅和办公楼,线路和设备构成了电话系统的子网,属于电话公司并由其管理,电话本身就是主机,而并不是子网的一部分
子网+主机=网络
但是子网也可以是网络,很宽泛
也可以是一个广域网
但网络最初的定义仍然应该是由一种单一技术相互连接在一起的计算机的集合
不同的网络连接在一起就构成了互联网,所以一个局域网和广域网相连或者是局域网相连也是互联网,
1.如果两个组织出资构建一个网络的不同部分,各自维护运营,就是互联网络
2.如果网络的不同部分使用了不同的底层技术,那么也是一个互联网络
必要转换的机器,硬件和软件方面的总称是网关,工作在协议的不同层次的网关有所区别,层次越高与应用层次捆绑越紧密,比如web应用;下层与传输链路有关,比如以太网。
太低层次的网关导致无法将不同类型连接,太高层次导致只能互联特定的应用程序
恰到好处才行,这一个中间层也被称为是“网络层”,路由器是网关,在网络层交换数据包,可以通过一个路由器来定位互联网的定位
网络软件
协议层次结构
层次栈,也就是分级结构,每一层都建立在下一层的基础之上,层的个数和名字、内容、功能不尽相同,每一层向上提供服务,并将实现细节加以屏蔽,每一层都是虚拟机,向上一层提供服务
这是计算机的基本思想了
一台机器上的第n层跟另一台的机器的第n层进行对话,使用的规则和约定是第n层协议
协议,就是如何通信地约定,这个比喻不错,就是吻手或握手取决于商务会谈的美国律师或是正式舞会上的欧洲公主
相应层次的实体称为对等体,最下面是物理介质,采取下下下上上上的形式
每一对相邻层次之间的是接口,定义了下层向上层提供哪些原语操作和服务,这是必须考虑的
为了减少层与层之间的信息,必须使得接口清晰,以实现协议替换变得容易,比方说换个完全不同的协议实现,对于新协议,只需要向上层提供与旧协议完全相同的服务,对于同一个协议不同主机使用了不同的实现(个体差别)
所以实际上某个层次的协议确实是可以改变的,而且不用通知上下层
每个协议独立于其他的协议
第5层的信息先加上一个具有控制信息的头变成第4层,第4层的主流信息分包到了第三层再加控制信息
到了第2层不仅加头而且加尾,很精髓
向上再逐步剥离
没有一个第n层以下的头会被传递到第n层
第3层决定用哪条线路
协议看上去是而并不是直接与另一端进行通信的
协议层次结构中的较低层往往由硬件或者是固件来实现
层次设计
检错编码(防止某些信息受到干扰)
重新传输直到正确,还能纠错,都需要在被传的信息中加上冗余的信息,保障数据在个别链路上的正确传输(在低层次时),也可检测接收数据是否正确(高层时)
另外一个问题
是找到通过网络的工作路径,考虑多条路径和故障的情况,这个问题,就是路由
第二个设计问题涉及到了网络演进,网络增长出现的新设计需要与现有的网络进行相互连接,关键在于分而治之和协议分层
网络上的许多计算机,每一层在特定的消息中都需要机制来标识发送方和接收方,在下层和高层称为寻址和命名
另外一个方面,不同的网络技术有不同的限制,并非所有通信通道支持发送消息的顺序,就要对消息进行编号,再好比说传说消息的最大长度的差异导致了分段机制,综合起来就是网络互联
规模变大出现新的问题,在网络规模变大的时候仍然能够工作良好称为是可扩展的
第三个问题,资源分配,基于底层资源提供服务,要做好这些工作必须分配资源的机制才可以,使得一台主机不会太妨碍另外一台
许多网络根据主机短期需求变化动态的网络带宽,而不是分配固定比例带宽,这种设计称为统计复用,可以应用在低层次的单条链路或者是高层次的网络层甚至是网络的应用层上
还有一个每个层次都有的问题,流量控制(保证一方不会太快把对方淹没),太多的计算机要发送所有的流量而网络没有能力传输所有数据包
网络超载称为拥塞,策略是当发生的时候,所有计算机减少对带宽需求
最后一个问题如何保证网络抵御不同的威胁,保密性,认证,完整性机制(保证相关操作绝对精准)
层和协议的集合称为是“网络体系结构”,这个规范必须包括足够的信息,以便实现者在编写程序和设计硬件的时候能够遵守相关的斜体,实现细节和接口规范不属于这一方面,因为在机器内部而外界不可见,一个网络中所有机器的接口也不必都一样,只要都能正确使用所有协议就可以,一个特定的系统所使用的每层一个协议被称为是协议性
终于到了最后了,现在已经快十一点半了,卧佛了,面向连接与无连接服务
这个是区分下层向上层给的服务的类型
前者是按照电话系统建模的,先建立连接,然后传输数据,然后释放,
需要跟子网协商,电路就是与资源共享关联的连接的另一个名字,比如具有固定的带宽,在电话网络中,一条电路就是通过铜线传递电话内容的路径
后者是按照邮政系统建立的,每个报文(信件)懈怠了完整的目标地址,由系统中的中间节点路由,并且路由独立于后续的报文,报文:数据包是网络层的报文,如果中间节点只能在接收到报文的全部内容后再发送给下一个,就是存储转发交换方式(别问为什么我不知道我不想回答),有别于直通式交换(不用等全部接收完毕)
服务质量:不丢失,可靠度,文件传输中发送和到达顺序相同,没有乱码和丢失数据位
比如报文序列和字节流,后者不能区分
一本书采取报文序列
电影采取字节流,因为报文边界不相关
ip语音中减少延迟最重要
并非所有应用都寻求面向连接的服务,,不可靠的也就是没有确认的无连接服务比如垃圾邮件通常称为数据报服务,与电报类似,发送方不会收到反馈信息,往往还占主导你说气人不
与之相对的是可靠性和便利性都重要的“有确认的数据报服务”,就像是寄挂号信时要求一个回执一样,如果收到回执就肯定没有丢失,比如手机上的文本服务
还有另外一种服务是请求—应答服务,发送方传输一个请求的数据报,接收方反馈一个请求结果的应答数据,通常应用在客户机-服务器模型中,客户机发出请求,而服务器对此作出响应
面向连接:
可靠报文流 顺序页面
可靠字节流 移动下载
不可靠连接 ip语音
无连接:
不可靠数据报 垃圾邮件
有确认的数据报 文本消息
请求-应答 数据库查询
不可靠连接的必要性——首先,首先在某些层次并不能总用,比如以太网不提供可靠通信,有些数据包偶尔可能在传输过程中损坏,上层协议需要处理这个问题,尤其是许多可靠服务是建立在不可靠数据基础上的
其次,为了提供可靠服务却引入延迟也很扯淡,在多媒体中更无法忍受额外的延迟,所以,不可靠和可靠通信并存于网络之中