网络的本源: 沟通和共享
即CS (Connnect the Separated) & DOTA (Don't Own Them Alone)
网络的组成
1.内容提供商 网络上的内容是真正吸引你的地方,像门户网站(sohu,sina)上的新闻,优酷上的视频等等,内容提供商将自己的资源放在服务器(Server)内(规模大一些的为服务器集群),通过向ISP租用固定IP使人们能够访问到自己。一般来讲,内容提供商收入的主要来源是广告。
2.网络运营商 常常简称为ISP(Internet Service Provider),典型代表有电信,网通,移动等。ISP是我们和内容提供商之间的桥梁,说白了就是卖带宽的,一般来说,ISP从网络设备厂商(比如cisco,juniper)买入设备,组建好网络,然后由网络工程师运营和维护,这样就可以向客户提供网络接入的服务了。
我们所处的网络世界
因特网(Internet),前身是美国的ARPANET,最初由美国的四个ISP互联而成,而今已席卷全球,Internet上互联的ISP数以万计,我国的电信和网通都是其中的一员。中国大陆这一块,我们可以简单认为是由电信,网通和中国教育网互联而成的。
以前的数据传输方式是CS,即Client/Server模式,比如A有一部电影,他就牛啊,因为B和C想看这部电影都得从A那里下。ISP也喜欢CS,因为这种模式便于预测流量走向并进行流量控制,也好借机向流量的集中方(即内容提供商)收取高额费用。
但后来BT,eMule这一类P2P(Peer to Peer)软件的兴起打破了这一局面,每一台运行P2P软件的PC既是Client也是Server,这使得获取资源的成本降至为0,流量的走向也变得不可捉摸,最可怕的是激发了人们下载的欲望,使得ISP的设备每天24小时都处于高负荷的状态,链路上始终充斥着这些廉价的流量,做着亏本的买卖。
我们平常能接触到的上网方式
1.校园网 通过中国教育网(CERNET)接入Internet,CERNET由全国的主要教育机构互联而成,天津大学为天津地区骨干节点,CERNET由赛尔网络公司负责运营,所以也称为赛尔网。
大学校园网可以认为是一个大的“局域网”,应用的是“以太网技术”(寻址均基于Mac地址,所以申请帐号时需提供本机Mac),不过校园网节点众多,部署的设备,使用的接口模块类型,应用的交换技术和安全策略也更为复杂,不能和网吧这等比较。
2.ADSL 即我们所说的“拉外网”或在家“宽带上网”,由电信或网通这样的ISP提供。ADSL基于电信网通原有的PSTN(电话网络)设备部署,成本低,提供的带宽也为国人所接受,因此得以流行开来。
ADSL应用的技术为PPPOE (Point to Point Protocol over Ethernet),即在Ethernet数据帧上封装一层PPP报文头,PPPOE使得ISP顺应以太网成为局域网技术主流的同时,可以借助PPP本身的特点进行身份验证,流量审计和计费。
记住,我们在用ADSL上网的时候,获得的IP地址是由当地网通或电信的DHCP服务器所分配得到的,属于临时租用,不是固定IP。DHCP技术开发的目的是缓解IPv4地址的紧缺。
3.光纤到户 目前在美国,日本已大规模部署,出于成本的制约和消极的市场需求,在中国一般只有高档住宅和大型网吧才使用这种方式上网,光纤的特点是速率高(10M,100M,1000M等),成本也高,记住一条光纤里面有两根芯,一根用于发送数据,一根用于接收数据。
网络设备
我们目前能接触到的设备一般只有三种(且均在板砖大小):路由器(Router) & 交换机(Switch) & 集线器(Hub),目前需要掌握的是:
1. Hub是一层设备,除了端口多,和网线没什么差异,性能低下,只有40%左右的带宽利用率,在买设备的时候注意 Hub-Switch = Hub (厂商忽悠人而已)
2. Swith是二层设备,知道什么叫Mac,但不知道什么是IP,Switch性能较Hub有很大改进,制造成本取决于背板带宽,端口数等。
3.Router是三层设备,知道什么叫IP,当然也知道什么叫Mac,不过我们宿舍所用的板砖不是真正意义上的路由器,因为并没有发挥路由器的本职工作:跨网段的数据传输。只不过这板砖既然能知道什么是IP,就姑且定义为三层设备,实际功能上只是集成了PAT和DHCP功能的交换机而已。
以上所提到的“层”的概念,基于OSI七层模型,记住一条基本规则:上层对下层了如指掌,下层对上层一无所知。
PS:PAT是NAT技术的加强版,NAT技术是将私有地址转换为公有地址,为一一映射,而PAT可以将多个私有地址转换一个公有地址,为多对一映射,PAT技术目的是为了缓解IPv4地址的紧缺。
为什么要进行这样转换?
因为公有地址全球唯一,只有公有地址才能在因特网上进行路由!
你拥有的IP不能在Internet上进行路由 = 你上不了网,挂不了QQ,下不了歌,玩不了跑跑......(似乎生命没有意义了)
注意:以下会提到“一个IP地址对应一台PC”这样的概念,要明确其真正含义。
IP地址是一个接口概念,而不是主机概念,我们说IP地址对应一台PC,实际上是对应这台PC上那块网卡的接口,因为PC处于网络的边缘,有一个接口足够用。
但是像路由器这样处于网络中的设备,负责数据包的传输,一个接口是不可能够用的,所以得用多个接口,每一个接口都要配一个IP地址。
IP & Mac地址
Internet是一个圈子,进去这个圈子就要有相应的身份,就像我们去篮球场打球,首先得是个“人”才能进去,其次要亮出自己的学生证说明自己是“天大这个圈子里的人”。
在这个比较中,人对应的就是Mac地址,是物理属性;学生证上的学号对应的就是IP地址,是逻辑属性。以下是几种地址的格式:
IPv4地址 长度为32bits 点分十进制表示 比如192.168.1.1
IPv6地址 长度128bits 双点分十六进制 如3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562
Mac地址 长度为48bits 用十六进制表示 比如44-45-53-5F-3D-00
Mac地址是厂商烧录在网卡(NIC)中的地址,所以也叫物理地址,网络底层的数据传输就是通过Mac地址来识别主机的,在不考虑软件改写的情况下,Mac地址全球唯一。
在Windows XP中,依次单击如下命令可以看到自己的MAC地址和IP地址:
“开始”→“运行”→输入“CMD”→回车→输入“ipconfig/all”→回车
IPv4地址解析
1.从路由的角度来讲,IPv4地址分为网络位和主机位,网络位用于“定位某一网段”,主机位则用于“定位该网段的一台PC(也就是那块网卡)”,主机位同时也决定了一个网段可以容纳的主机数。
简单联想一下,网络位就是地名,主机位就是人名,路由器就是邮局,数据包就是信件。比如家里有封信寄给你,邮局作为中转站,送信的时候并不关心你叫什么,而是关心你在天大,送到了天大自然有人认识你,然后把信给你,邮局作为外人没有必要知道你是男是女,长得帅不帅。
路由器也是这样,它只在乎网络位是什么(即网络地址是什么),并不看主机位,一旦送到了正确的网段,主机位可以在这个局域网内唯一的确定一台主机,从而完成数据包的转发。
2.什么是子网掩码
子网掩码:一个用来标识网络位的数,长为32bit,和IP地址位一一对应
如何标识:凡是网络位都标识为1,凡是主机位都标识为0
子网掩码也用点分十进制表示,但一般会简写为“/24”这样的形式,24这个数值代表网络位的位数。
举例来讲,192.168.1.1/24 = IP地址 192.168.1.1 子网掩码 255.255.255.0
/24表示这个IP地址的前24位是网络位,后8位是主机位,所以子网掩码的前24位都是1,后8位都是0,即子网掩码是255.255.255.0
3.知道了子网掩码能怎么样?
有了IP地址和子网掩码,通过进行“逻辑与”运算,我们就可以知道该IP所属哪个网段,即“网络地址”是什么。路由器进行路由需要的就是网络地址,它认为要想找对PC,首先得知道这台PC在哪。
比如 192.168.1.1 And 255.255.255.0 = 192.168.1.0
我们发现网络地址就是将主机位全部为0得到的地址,这个地址是不能够用来标记一台具体PC的,它代表的是整个网段。
那么如果主机位全是1呢,比如192.168.1.255/24 ? 记住,主机位都是1的地址我们也不能不用于标记一台具体主机,因为它代表“该网段内的全体成员”,称之为“广播地址”。
4.最最基本的转发原则:
处于不同网段(即网络地址不同)的PC之间不能进行通信,要想通信必须借助路由器进行路由转发。
处于同一网段(即网络地址相同)的PC之间可以通信,一个网段内不能有重复的IP地址
5.为什么有公有IP才能上Internet ?
IPv4地址分为公有地址和私有地址,公有地址全球唯一,可以在Internet上进行路由;
私有地址也称为保留地址,任何局域网都可以用,这就造成了地址不唯一的现象,所以私有地址不能在Internet上进行路由,但是可以通过PAT转换成公有地址,从而实现多台配有私有IP的PC共享一个公有IP上网。
说简单些,想上Internet要有公有IP地址。私有IP谁都可以用,如果你想看Sohu的网页,但是有N个人和你一样将主机地址设为192.168.1.1,Sohu怎么就非得把网页发给你?记住,就路由寻址来讲,“唯一性” 是确定一定以及肯定要保证的。
6.IPv4一共有 2^32 = 42亿多个地址,范围从0.0.0.0 - 255.255.255.255。
IP地址可以分为ABCDE五类,其中ABC类为单播地址,D类为组播地址,E地址留做科研使用(即不用)
IP地址在数值上如何区分:(就看第一个八位组)
A 类地址以0开头 第一个八位组数值的范围 0-127
B 类地址以10开头 第一个八位组数值的范围 128-191
C 类地址以110开头 第一个八位组数值的范围 192-223
D 类地址以1110开头 第一个八位组数值的范围 224-239
这里先说一下为什么要有这么多种“播”,PC在发数据包之前得写上目的IP地址,那么:
1)如果目的地址写着192.168.1.1这样的 单播地址 就是把数据发给192.168.1.1这台主机
2)如果目的地址写着192.168.1.254这样的 广播地址 就是把数据发给处于192.168.1.0网段内的所有主机
3)如果目的地址写着224.1.1.10这样的 组播地址 就是把数据发给处于加入了224.1.1.10这个组的主机
组播和广播都是一对多的数据传输,有什么区别?
广播是强迫的,不管想不想听,你都得听~ 即不管你是否请求这个数据,数据都会给你。组播是自愿的,当你想要这个数据,可以加入相应的组播组,凡是组成员都会收到这个数据。
IP地址中有一些很特殊(其实特殊的多了去了,只是举几个常见的):
127.0.0.1 是用做操作系统的还回口地址,检验网卡是否正常。
0.0.0.0 表示任何网络
255.255.255.255 全网广播地址
7.ABC 类作为单播地址在网络位和主机位上有何不同:
A类地址 前8bit是网络位 后24bit是主机位 默认子网掩码 255.0.0.0 每个网段主机数上限为2^32-2个
B类地址 前16bit是网络位 后16bit是主机位 默认子网掩码 255.255.0.0 每个网段主机数上限为2^16-2个
C类地址 前24bit是网络位 后8bit是主机位 默认子网掩码 255.255.255.0 每个网段主机数上限为2^8-2=254个
至于这个-2,是减去每一个网段的网络地址和广播地址,即主机位全0和全1的地址,因为这两种地址有“全局性”,不能标记一台具体PC。
PS:私有地址范围如下
A类地址 10.0.0.0 - 10.255.255.255
B类地址 172.16.0.0 - 172.31.255.255
C类地址 192.168.0.0 - 192.168.255.255
OSI & TCP/IP
网络模型的提出是为了让厂商在研发自己的产品时有统一的标准,同时各厂商设备可以相互兼容,从而实现广泛的网络互联,否则各厂商会为了垄断市场而互不相让,设备也不能相通。
OSI七层模型:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
TCP/IP模型: 应用层 主机到主机层 Internet层 网络接口层
PS: TCP/IP的应用层对应OSI的上三层,网络接口层对应OSI的最后两层
OSI是法定的国际标准,并没有市场化,目前多用于理论教学,当我们说设备是哪一层的时候,都是依据OSI模型。
TCP/IP是事实上的工业标准,所有的网络设备和技术在开发时都是符合这个标准的,比如以太网就是定义在网络接口层的一项技术标准。
学习OSI模型我们要注意的地方:
1. Mac地址是以太网技术中的概念,而以太网是局域网技术中的一种,只因为太过流行所以几乎成了代名词,但是数据链路层不仅仅定义了局域网技术,同时也包括Frame Relay,PPP这样的广域网技术,要记住Mac地址,但是不能以偏概全。
2. OSI模型中将数据链路层分为了LLC子层和Mac子层,但实际上厂商制造网卡的时候,遵循的是TCP/IP模型而不是OSI模型,所以技术规范并不涉及LLC子层。
3. 链路大体有两种类型:点到点 & 多路访问
多路访问:共享型的链路,以以太网最为典型,中心节点为大家共用的通道,如果没有Mac地址进行标记,这么多PC,怎么就非得把数据发给你?
点到点:无所谓寻址,因为只能发到对面去。
4. 数据链路层只进行错误检测,不进行错误纠正,因为这个有传输层去做
关于网线
网线类型:直通线 全反线 交叉线 (一般我们买到的网线都是直通线)
EIA/TIA的布线标准中规定了两种双绞线的线序568A与568B
标准568A:橙白--1,橙--2,绿白--3,蓝--4,蓝白--5,绿--6,棕白--7,棕--8
标准568B:绿白--1,绿--2,橙白--3,蓝--4,蓝白--5,橙--6,棕白--7,棕--8
网络设备的以太网接口有两种:MDI (级连口) 和 MDI-X (普通口)
通常 PC 和 Router 的接口属于 MDI
SW 和 Hub 的接口属于 MDI-X (上连 Router & 下连 PC)
MDI 的1-8号针脚信号定义: TX+ TX- RX+ N N Rx- N N
MDI-X的1-8号针脚信号定义: RX+ RX- TX+ N N TX- N N
一根铜芯的两端必定是transmit & receive,且极性一致,所以
MDI 与 MDI-X 接口的互联使用直通线,MDI 或 MDI-X之间的互联使用交叉线
从接口角度讲,1、2用于发送,3、6用于接收,4、5、7、8并不用
从线的角度将,1、3针脚一根线,3、6针脚一根线,4、5、7、8是双向线
单接1236,只能满足10M的速率要求,如果网络传输速度不快,距离不长的话,没有问题
但如果速度和距离上去之后,容易出现传输错误,因为另外四根线是用来消除干扰的,没有了自然干扰会增大
如果看插孔,使针脚接触点在上方,那么最左边是1,最右边是8
如果看插头,将插头的末端面对眼睛,而且针脚的接触点插头的在下方,那么最左边是1,最右边是8
双绞线的最大传输距离为 100m
以太网技术规格:
首先介绍一个物理层上的概念:
半双工:线路上可以双向传输数据,但同一时刻只能向一个方向传数据
全双工:线路上可以同时双向传输数据 (比如电话线路就是全双工)
传统以太网 10 Base 2 & 10 Base T
10 Base 2 用的是同轴电缆,总线型意味着只有一个信道,物理层上只能是半双工,为了在半双工上实现共享 才出现了CSMA/CD ,那会虽然有Mac,但是总线型的共享就是这样,像水涌进河床一样,不管是不是给你的你都得接,拿过来拆开看不是再扔掉,这样就那个正确的接收者没有扔掉,实现了所谓的“一对一”。
10 Base T 用的是双绞线和Hub(HUB就是多端口的集线器),虽然你用了RG-45接口,有两对线(4根)对应两个信道,一对发,一对收,但是Hub逻辑上还是总线型,这种网络结构要是现共享同时避免冲突,就只能是半双工+CSMA/CD。而半双工的时候就是同一时刻只能发,或者只能收,也就是说那两对线,同一时刻只有一对在用。
交换式以太网 100 Base T (一般宿舍,小型企业组网的规范都是100 Base T)
用交换机来解决问题,首先交换机有缓存,不像HUB猴急的有1发1,有0发0,然后进入交换机内部一个很大的中转空间,最后转发到输出端口。每个端口的输入和输出可同时进行,所以每个端口和连接的PC间就可以实现全双工的通信。
总的来说:
1.要想用全双工,关键是让中心设备争点气,才能把两对线都利用上,要利用就得先解决冲突域的问题
2.总线型的网络拓展用 中继器(一层扩展,单纯的重生放大信号)& 网桥(二层扩展,可以隔离冲突域)
星型的网络拓展用 HUB(一层扩展,单纯的重生放大信号) & 交换机(二层扩展,可以隔离冲突域)
3.信号跑的马路叫“信道”,逻辑拓扑是总线型就只有一条信道,用半双工,即使是用双绞线的工业标准,一对发送,一对接收,但是同一时刻只在用一对 (Hub逻辑上也是总线型,称为“bus in a box”)
逻辑拓扑是星型的有两条信道,一个发送,一个接收,两个信道都能用上,前提是中心节点是用交换机,实现交换式的网络
CSMA/CD (载波侦听 多路访问 冲突检测 )
1.监听信道直到其空闲
2.发送数据并一直监听,直到这个帧成功发送完毕
3.如果遇到碰撞,立即停止发送,并采用退避算法等待一个随机时间,再从新发送
4.如果重传16次都不成功,就丢弃该帧,并向上层报告
冲突域:冲突可能发生的地域,那什么是冲突,冲突就是数据帧撞在一起,损坏了。
广播域:一个广播能够波及的范围,在3层和2层均有定义。
规则:
1.路由器的每一个端口既是一个冲突域,也是一个广播域
2.交换机的一个端口是一个冲突域,不能划分广播域
3.HUB既不能划分冲突域,也不能划分广播域
网桥是如何划分冲突域的?
关键就是一个转发表,在形成转发表时,看的是数据帧的源Mac;在转发帧时,看的是数据帧的目的Mac,如果没有对应表项怎么办,就向除接收端以外的所有端口发出去,这叫做防洪(flooding)。
Flooding的原因是网桥认为,既然收到去往未知目的地的数据帧,说明自己的转发表并不能代表真实的网络拓扑,全部端口都转发是一种保险的办法。
网桥这样就像一个关口一样,对总线上的数据进行检查,如果源和目的在网桥的同一侧,网桥就会丢弃帧,另一侧的PC共享的总线并没有收到影响,冲突域因此而划分开了。
网桥和交换机的异同?
网桥和交换机同为二层设备,接口都有缓存,都能够识别Mac地址,并依据记录进行转发。
不同点有以下4点:
1.交换机端口比网桥多很多,即使PC多也够用,这样就避免了用HUB进行扩展,造成半双工传输
2.网桥的数据帧转发基于软件,而交换机基于硬件,转发效率更高
3.网桥用于总线型拓扑的二层扩展,交换机用于星型拓扑。
4.交换机属于“微分段”的网桥,即每一个端口都是一个网桥,意思就是它的Mac转发表是细致的,能够记录每个接口对应的Mac地址。
二层设备为什么不能划分广播域,而三层设备行?
关键:行不行取决于--这设备知道多少东西
因为广播域的概念最高定位在三层,一个广播域 = 一个IP子网 = 一个IP网段,而一个广播数据包在二层封装的时候目的Mac是全F(即FF-FF-FF-FF-FF-FF),也就是说一个广播在二层和三层都会有体现。
路由器作为三层设备能够识别IP地址,当收到一个广播数据包的时候,它知道目的IP网段对应的是哪个接口,便不会发向其它端口;
但是二层设备不知道IP为何物,不能在三层上解决问题,但是在二层,对于全F的Mac地址,交换机会无条件向所有端口转发。
二层设备和三层设备在二层处理数据帧上有什么区别?
二层设备转发数据帧成为透明桥接,即只是查看帧,但是不做任何变动,但是三层设备不同,它会把源Mac改为自己出口的Mac地址,把目的Mac改为下一跳路由器的入口Mac地址。
交换机好在哪里?
1.有缓冲区 不像HUB那样有0发0,有1发1,而是能把数据帧留着,先审查一番。
2.Mac地址表 Mac地址表明细,记录了端口号和所连接的PC网卡的Mac地址,这个特性也成为“微分段”。
3.交换矩阵 背板带宽决定了交换效率,每个帧的转发都是不受干扰的,每个端口的输入和输出可同时进行,如果说HUB里是几个单行道的话,SW里就是超级宽敞的多车道双向中转线路。
交换机的工作原理
1.Mac地址学习(通过记录数据帧的源Mac地址)
2.依据Mac地址表进行转发/过滤 (通过查看数据帧的目的Mac地址)
3.避免桥接环路 (通过二层生成树协议即STP实现,可以查看相关资料)