计算机使用模式的演变:
20世纪50年代 批处理时代
20世纪60年代 分时系统时代
20世纪70年代 计算机间通信时代
20世纪80年代 计算机网络时代
20世纪90年代 互联网普及时代
2000年 以互联网为中心的时代
2010年 无论何时何地地一切皆TCP/IP的网络时代
在计算机网络与信息通信领域,人们经常提及 “协议” 。简单来说。 协议 就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能实现通信。换句话说, 协议 就是计算机之间的通信语言,只有支持相同的协议,计算机之间才能相互通信。
计算机通信也会在每一个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地址以及分组序号写入的部分称为 “报文首部” 。
TCP/IP协议并非ISO(国际标准化组织)所制定的某种国际标准,而是由IETF(Internet Engineering Task Force国际互联网工程任务组)所建议的、致力于推进器标准化作业的一种协议。
OSI参考模型
应用层 :针对特定应用的协议。以电子邮件为例,用户A在主机A上新建一封电子邮件,指定收件人为B,并输入邮件内容为“早上好”。应用层协议会在所要传递数据的前端附加一个首部(标签)信息,该首部标明了邮件内容为“早上好”和收件人为B。
表示层 :设备固有数据格式和网络标准数据格式的转换。用户A和用户B使用的邮件客户端一致,便能够顺利收取和阅读邮件,不一致时表示层就发挥作用了:将数据从“某个计算机特定的数据格式”转换为“网络通用的标准数据格式”后再发送出去,接收端也进行相应处理。表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层处理。
会话层 :通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。假定用户A新建了5封电子邮件准备发送给用户B,是建立一次连接一起发送,还是分别建立5次连接各自发送,都是会话层决定的,会话层和表示层一样,也会在数据前段附加首部或标签信息再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。
传输层 :管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠传送到目标地址)。用主机A将“早上好”这一数据发送给主机B,期间可能因为某些原因导致数据损坏,主机B只收到“早上”,此时也会将这一事实告诉主机A,主机A得知情况会将后面的“好”重发给主机B。保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠性,这一层所要传输的数据附加首部以识别这一分层的数据。然而,实际上将数据传输给对端的处理是由网络层来完成的。
网络层 :地址管理与路由选择。两端主机之间虽然有众多数据链路,但能够将数据从主机A送到主机B也都是网络层的功劳。相当于TCP/IP协议中的IP协议,网络层不能保证数据的可达性,所以需要传输层TCP协议确保可达性,所以TCP/IP协议实现了可靠传输。
数据链路层 :互连设备之间传送和识别数据帧。网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
物理层 :以“0”、“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格。将数据的0、1转换为电压和脉冲光传输给物理的传输介质。
计算机之间的网络连接通过 电缆 相互连接。任何一台计算机连接网络时,必须要使用 网卡 (网络适配器、NIC、LAN卡), 中继器 的作用是将电缆传过来的信号调整和放大再传给另一个电缆,可以完成不同媒介之间的连接工作。 网桥 是数据链路层面上连接两个网络的设备,提供的是传递数据帧的作用,并且还具备自学机制。 路由器 是在网络层面上(OSI七层模型网络层)连接两个网络、并对分组报文进行转发的设备。 网桥 是根据物理地址(MAC地址)进行处理,而路由器/3层交换机则是根据IP地址进行处理的。由此,TCP/IP中网络层的地址就成为了IP地址。对于并发访问量非常大的一个企业级Web站点,使用一台服务器不足以满足前端的访问需求,这时通常会架设多台服务器来分担。这些服务器的访问的入口地址通常只有一个,为了能通过同一个URL将前端访问分发到后台多个服务器上,可以将这些服务器的前端加一个负载均衡器。这种负载均衡器就是4-7层交换机的一种。 网关 是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备。在两个不能进行直接通信的协议之间进行翻译,最终实现两者的通信。非常典型的例子就是互联网邮件和手机邮件之间的转换服务。防火墙也是一款通过网关通信,针对不用应用提高安全性的产品。
美国军方利用分组交换技术组件的ARPANET网络是互联网的鼻祖。而BSD UNIX操作系统实现了TCP/IP协议,随着UNIX系统的普及,TCP/IP协议开始盛行。TCP/IP可以单纯的指这两种协议,然而在很多情况下,它指的是包含HTTP、SMTP、FTP、TCP、UDP、IP、ARP等很多协议的 网际协议族 。
发送数据包的过程,和上节OSI参考模型中介绍的差不多。数据链路层是由网络接口(以太网驱动)来处理的,它会改数据附加上 以太网首部 , 以太网首部 中包含接收端的MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议。
在以太网普及之初,一般多台终端使用同一根同轴电缆的 共享介质型 连接方式,访问控制一般以半双工通信为前提采用CSMA/CD方式。随着ATM交换技术的进步和CAT5 UTP电缆的普及很快发生了变化,逐渐采用像 非共享介质网络 那样直接与交换机连接的方式。
网络层与数据链路层的关系
某人要去一个很远的地方旅行,并计划先后乘坐飞机、火车、公交车到达目的地。旅行社不仅帮他预订好了飞机票和火车票,甚至还为他指定了一个详细的行程表,详细到几点几分需要乘坐飞机或火车都一目了然。机票和火车票只能够在某一限定区间内移动,此处的“区间内”就如同通信网络上的数据链路。这个区间内的出发地点和目的地点就如同某一个数据链路的源地址和目标地址等首部信息。整个行程表的作用就相当于网络层。
DNS :将域名和IP地址相匹配。
ARP :以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址。ARP只适用于IPv4,IPv6可以用ICMPv6替代ARP发送邻居探索消息。
ICMP :在IP通信中如果某个IP包因为某种原因未能送达目标地址,那么这个具体的原因将由ICMP负责通知。
DHCP :使用移动设备时,每移动到一个新地方,都要重新设置IP地址,为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP协议。
NAT :是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。
IP隧道 :IPv4和IPv6之间进行通信的技术就是IP隧道。
TCP用于低速可靠传输
UDP用于高速不可靠传输
端口号就是用来识别同一台计算机中进行通信的不同应用程序,也被称为程序地址。
TCP传输利用 窗口控制 提高速度,无需等到每次应答来进行下一次发送,而是有个窗口进行缓冲,来提高吞吐量。
TCP拥塞控制,利用拥塞窗口来调节发送的数据量,拥塞时减小窗口,流畅是增大窗口来控制吞吐量。
我们日常网络访问的 http 用的是 tcp ,那还是看一下这个过程吧
tcp 可以提供全双工的数据流传输服务,全双工说白了,就是同一时间 A 可以发信息给 B , B 也可以发消息给 A ,俩人同时都可以给对方发消息;半双工就是某个时间段 A 可以发给 B ,但 B 不能给 A ,换个时间段,就反过来了。
这个过程理解起来,就像两人在喊话:
A:喂,有人吗,我想建立连接
B:有哇,你建立吧,等你吆
A:好哒,我来啦
然后俩人就建立连接了...
一定要三次握手么,两次行不行?
这么一个场景:
A->B: 洞幺洞幺,我是洞拐,收到请回复。
B->A: 洞拐洞拐,洞幺收到。
请问根据以上对话判断:
1、B是否能收到A的信息? (答案是肯定的)
2、A是否能收到B的信息? (你猜?)
tcp的核心思想是保证数据可靠传输,如果 2 次,显然不行,但 3 次就一定行么?未必,可能第三次的时候网络中断了,然后 A 就认为 B 收到了,然后一通发消息,其实 B 没收到,但这是无法完全保证的。无论握手多少次都不能满足传输的绝对可靠,为了效率跟相对可靠而看, 3 次刚刚好,所以就 3 次了(正好 AB 相互确认了一次)。
举个栗子:把客户端比作男孩,服务器比作女孩。通过他们的分手来说明“四次挥手”过程:
"第一次挥手" :日久见人心,男孩发现女孩变成了自己讨厌的样子,忍无可忍,于是决定分手,随即写了一封信告诉女孩。
“第二次挥手” :女孩收到信之后,知道了男孩要和自己分手,怒火中烧,心中暗骂:你算什么东西,当初你可不是这个样子的!于是立马给男孩写了一封回信:分手就分手,给我点时间,我要把你的东西整理好,全部还给你!男孩收到女孩的第一封信之后,明白了女孩知道自己要和她分手。随后等待女孩把自己的东西收拾好。
“第三次挥手” :过了几天,女孩把男孩送的东西都整理好了,于是再次写信给男孩:你的东西我整理好了,快把它们拿走,从此你我恩断义绝!
“第四次挥手” :男孩收到女孩第二封信之后,知道了女孩收拾好东西了,可以正式分手了,于是再次写信告诉女孩:我知道了,这就去拿回来!
为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当 Server端 收到 Client端 的 SYN 连接请求报文后,可以直接发送 SYN+ACK报文 。其中 ACK报文 是用来应答的, SYN报文 是用来同步的。但是关闭连接时,当 Server端 收到 FIN报文 时,很可能并不会立即 关闭SOCKET ,所以只能先回复一个 ACK报文 ,告诉 Client端 ,"你发的 FIN报文 我收到了"。只有等到我 Server端 所有的报文都发送完了,我才能发送 FIN报文 ,因此不能一起发送。故需要四步握手。
静态路由 是指事先设置好路由器和主机中并将路由信息固定的一种方法。缺点是某个路由器发生故障,基本上无法自动绕过发生故障的节点,只有在管理员手工设置以后才能恢复正常。
动态路由 是管理员先设置好路由协议,其设定过程的复杂程度与具体要设置路由协议的类型有直接关系。在路由器个数较多的网络,采用动态路由显然能够减轻管理员负担。网络发生故障,只要有一个可绕的其他路径,数据包会自动选择这个路径,但路由器需要定期相互交换必要的路由控制信息,会增加一定程度的负荷。
根据路由控制范围分为 IGP (内部网关协议)和 EGP (外部网关协议)
路由算法分为 距离向量算法 和 链路状态算法
距离向量算法 :通过距离与方向确定通往目标网络的路径
链路状态算法 :链路状态中路由器知道网络的连接状态,并根据链路信息确定通往目标网络的路径。
IGP包含RIP、RIP2、OSPF
EGP包含EGP、BGP
RIP是距离向量型的一种路由协议,广泛应用于LAN
RIP2是RIP的第二版。新增以下特点:使用多播、支持子网掩码、路由选择域、外部路由标志、身份验证密钥
OSPF是一种链路状态型路由协议。
在RIP和OSPF中利用IP的网络地址部分进行着路由控制,然而BGP则需要放眼整个互联网进行路由控制。BGP的最终路由控制表有网络地址和下一站的路由器组来表示,不过它会根据所要经过的AS个数进行路由控制。有了AS编号的域,就相当于有了自己一个独立的“国家”。AS的代表可以决定AS内部的网络运营和相关政策。与其他AS相连的时候,可以像一位“外交官”一样签署合约再进行连接。正是有了这些不同地区的AS通过签约的相互连接,才有了今天全球范围内的互联网。
转发IP数据包的过程中除了使用路由技术外,还在使用标记交换技术。最有代表性的就是多协议标记交换技术(MPLS)。
MPLS的标记不像MAC地址直接对应到硬件设备。因此,MPLS不需要具备以外网或ATM等数据链路层协议的作用,而只需要关注它与下面一层IP层之间的功能和协议即可。
MPLS优点:
1.转发速度快
2.利用标记生成虚拟路径,并在它的上面实现IP等数据包的通信。
因为一旦我们在电脑方面有了麻烦总会有人很绅士地提供帮助,我们根本就没有机会也没有必要去懂那些东西,无论我们乐意不乐意,我们都已经被别人定义为“电脑白痴”。大脑能容纳的知识是有限的,与其去学这些别人认为我们不应该会的,不如去学一些对我们更有用的东西。
还有,与编程或数据有关的一般可列为文理中的理科,请问你能解释为什么女生一般不喜欢理科吗?同理边可以解释你这个问题。
一个傻瓜玩热血传奇的感人故事!傻瓜听人说有一款游戏叫热血传奇,里面的MM很多什么的。
傻瓜当时就决定要玩那款游戏了,不是因为听他们说MM多,而是因为傻瓜喜欢这游戏名字。
傻瓜决定要玩战士,因为傻瓜知道战士不容易挂,还有这两个字很吸引人! 傻瓜进了游戏也都是傻傻的乱撞,游戏的背景和怪物都很漂亮,傻瓜觉得。MM是傻瓜很少去注意的职业,因为傻瓜认为游戏就是给自己散心的,随着自己的心意就好,不会强求自己一定要什么什么的。
几天后傻瓜15级了,还是呆在银杏山谷里,他时常会陪着梅花鹿聊天,看着天空发呆…… 那天傻瓜正在观察路旁草中有没新长出来的嫩芽时,看到一个穿着布衣瘦弱的身影正在被一群钉耙猫围困着,很狼狈,手中的小刀无助的对着它们乱砍。傻瓜热心三两下就把钉耙猫解决了,因为在这里15级的他已经是一个高手了,哪知道刚解围的女孩不乐意了冲着傻瓜急忙喊着:不要抢怪。傻瓜糊涂了,莫名其妙的看着眼前这个穿着布衣样子很瘦弱的女孩。女孩嘟着嘴让傻瓜做为赔偿要把她带到10级。傻瓜出于自己(抢怪在先)错误也就答应了。
后来因为傻瓜的“不务正业”女孩也只有陪着傻瓜一起看一起看天空,一起数绿草,一起又蹦又跳的,女孩笑的很开心。
后来傻瓜才觉得自己的抉择很聪明,有女孩时常在他身边,傻瓜觉得很开心。女孩,就是傻瓜的幸福。
女孩告诉傻瓜很多游戏里的东西,傻瓜也知道了女孩还有四十来级的号,女孩说等她10级了一定送点装备给傻瓜,傻瓜觉得心理酸酸的。
女孩说自己很喜欢食人花的果子,因为看上去很美,傻瓜每天晚上都等女孩下线后,自己接着去打怪,他,只打食人花。
女孩10级了,傻瓜16级,他们一起离开了银杏山谷。
路上,傻瓜总喜欢走在女孩的前面,替她挡开前面的小怪,女孩夸傻瓜细心,傻瓜只是傻傻得笑着。来到毒蛇山谷时,傻瓜执意要先陪女孩去比齐城,女孩笑傻瓜没有志气,傻瓜为了不让女孩看不起自己就决定20级后再去找女孩。傻瓜点了交易,把身上所有的钱都给了女孩,女孩没说什么就走了,傻瓜直到望着这个穿着布衣身影瘦弱的女孩消失在视线中才向20级冲了。
路上因为傻瓜没钱买药,所以死了两次,等升级后他就急匆匆的给女孩发消息,发了很久,很多,直到对方不在线……
傻瓜到处打听女孩的下落,因为没钱买药和没心思打怪,所以死了很多次。
那时候,女孩,是傻瓜的一切。
那一天,傻瓜照常去银杏山谷,看到三个等级很高的人围着一个穿着布衣,身体瘦弱的女孩,这不正是她吗。
傻瓜欣喜的跑过去,张开双手把女孩挡在后面,怒视着前面几个四十级以上的人,傻瓜觉得不管是谁,谁都不能欺负女孩,女孩奇怪的望着傻瓜那张坚毅的脸。
就当傻瓜要跟眼前三人评理的时候,女孩下线了。
后来从他们三人口中得知,女孩骗了他们很多钱,傻瓜一次又一次的告诉自己,女孩不是骗子。
再次见到女孩时,也是在银杏山谷,女孩什么话都没有说,只是愣愣地看着傻瓜,这一穿着布衣的20级的傻瓜。
傻瓜还是傻傻地点了交易,女孩激动的看着包裹里40个果子,傻瓜对着女孩傻傻的笑着。女孩强忍着眼泪扔下一把20级用的斩马转身就要走。
傻瓜好怕,好怕再也看不到女孩了,他鼓起了平生以来最大的勇气,拦住了女孩,冲着女孩喊着,我喜欢你。
傻瓜傻傻的站着,看着女孩轻蔑的笑容。女孩把果子一个一个地扔到了地上,果子在阳光的照射下是那样的灿烂,迷人,就像女孩那时候的笑容。
女孩说他不喜欢穿着布衣只会挖果子的人,女孩说她是一个骗子,玩小号只是为了骗人而以。只是傻瓜太穷了,所以她要离开。
傻瓜哀求女孩能不能给他一次机会,女孩嘲讽着,只要你收集到99999个果子,我就答应嫁给你。
傻瓜捡起女孩丢在地上的斩马消失了。
银杏山谷,每天都能看到一个傻傻的身影,一个20多级的战士,穿着一件布衣,拿着一把20级斩马在那里挖果子。他时常把自己身上所有的钱给那些嚷着没钱了的新手们,无私的帮助他们。大家也都把挖到的果子送给他,可是99999个的数量总是那么得遥遥无期,只是他还是一如既往的坚持着。新手们问他为什么,他总是说:我在等一个穿着布衣的女孩。说到这里时他总是很激动的加上一句:她,答应要做我的新娘。别人笑他傻,说她被骗了,傻瓜只是傻傻的一笑而过。
那一天,一对身着高级装备的夫妇从这里路过,女孩停下脚步奇怪的看着傻瓜,似乎在回忆着什么。傻瓜也停了下来傻傻的看着这个女孩,他知道这是女孩的大号。
女孩身边的男孩是这个服务器里大帮会的老大,他嘲弄的看着傻瓜,随手扔了一件好装备在地上:捡垃圾的,这个送给你了。
傻瓜紧紧的握了握手中的斩马,继续挖起了地上的果子。女孩指责男孩,男孩火了,找了很多会里的人把傻瓜围了起来。
穿着布衣,手里拿着20级斩马的傻瓜在这些高等好装备人的面前是那么的不堪,那样的弱小。
就在这时,银杏山谷角落一个小战士向世界发了一条信息。
没多久,银杏山谷就围满了人,服务器里好几个顶级行会的老大都来了。原来他们都是新手时受过傻瓜帮助的人,他们扬言谁要是敢动傻瓜一下,就不要在这服务器混了。
后来,女孩知道傻瓜这半年都在为能跟自己结婚而在努力时,她哭了,原来傻瓜才是自己的幸福。
从那天开始,银杏山谷每天都会出现一个穿着布衣身体柔弱的女孩,她总是问每个路人:有没有看见我的傻瓜……
可是傻瓜再也没有出现在这个服务器上,有人说,他已经对女孩放弃了,有人说,他换了个号还在继续练……只是他游戏包裹中那99999个果子,女孩是再也看不见了………
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)