一、概述
1、三种交换方式
电路交换:整个报文的比特流连续地从源点到终点,好像在一个管道中传送;
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一结点;
分组交换:把报文分割成单个分组发送。
2、公用网:电信公司出资建造的大型网络;专用网:某个部门、行业为各自特殊业务工作需求而建造的网络。
3、网络性能指标:
1)速率;
2)带宽:a、指信号具有的频带宽度;b、单位时间内从网络某一点到另一点所能通过的“最高数据率”;
两种概率本质相同,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
3)吞吐量:单位时间内通过网络的数据流量
4)时延:发送时延(主要可以提高的时延,光纤就是发送时延较少)、传播时延、处理时延、排队时延;
5)利用率:俯首或网络利用率过高会产生非常大的时延,一般利用率不超过50%;
4、协议:网络中数据交换应该遵守的规则、标准或约定;包括:语法、语义、同步
5、计算机网络体系结构
OSI的七层协议:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层(既复杂又不实用);
TCP/IP的四层协议:应用层、运输层、网际层IP、网络接口层(已经得到最广泛的应用);
五层协议:应用层、运输层、网络层、数据链路层、物理层(为了学习)。
6、everything over IP:TCP/IP协议可以为各式各样的应用提供服务;
IP over everything:允许IP协议在各式各样的网络构成的互联网上运行;
7、internet(互联网):通用名词,泛指由多个计算机网络互联而成的网络;
Internet(因特网):专用名词,指当前全球最大的、开放的、由众多网络互相连接而成的特定计算机网络;
二、物理层
1、提供比特流传递的物理连接。
2、调制:基带调制(曼彻斯特编码等)、带通调制(调幅、调相、调频)
3、信道极限容量
1)码元传输的速率越高,信号传输的距离越远,噪声干扰越大,传输媒体质量越差,在接收端的波形的失真就越严重;
2)奈氏准则:信道中,码元的传输速率是有上限的,传输速率超过此上限会出现严重的码间串扰问题;
3)香农定理:信道的带宽或信噪比越大,信息的极限传输速率越高。
4、传输媒体:双绞线、同轴电缆、光缆(传输损耗小、中继距离长、抗干扰性好、保密性好),光缆发送时延很低。
5、信道复用:频分复用、时分复用、波分复用(光缆)、码分复用(不同码型)
三、数据链路层
1、将网络层交下来的IP数据报封闭成帧,在相邻的结点上传送帧。
2、数据链路层三个基本问题
1)封装成帧:将网络层交付的IP数据报加上头部和尾部封闭成帧;但帧的长度要小于最大传送单元(MTU,它是数据链路层的概念);
2)透明传输:不管从键盘上输入什么字符都可以通过帧传输;透明:某一事物看起来好像不存在一样(字节填充:将和帧开始符、帧结束符相同的字符之间加上转义字符,以免将其误认为是开始符或结束符);
3)差错检测:比特在传输过程中可能出现差错,接收到数据后需要进行差错校验,循环冗余检验(CRC)就是其中最常用的一种,但只能保证比特流无差错,但不能避免:帧丢失、帧重复、帧失序;
3、点对点协议(PPP):用户计算机和ISP进行通信时所使用的数据链路层协议;
4、局域网
1)工作层次跨越数据链路层和物理层;
2)网络拓扑:星型网、环形网、总线网;
3)以太网是局域网中的一种;
4)共享信道
a、静态划分信道(频分复用、时分复用、波分复用、码分复用等);
b、动态媒体接入控制:随机接入(所有用户都可以随机地发送信息,需要碰撞解决协议)、受控接入(轮询);
5)适配器(网卡)决定了硬件地址,网卡作用如下:
a、数据串行传输和并行传输的转换;
b、网络和计算机总线之间的数据缓存;
c、网卡决定了硬件地址;
6)以太网简化措施:
a、采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据(差错检验由高层完成);但同一时间只允许一台计算机发送数据(利用协议 CSMA/CD解决);
载波监听多点接入/碰撞检测(CSMA/CD):不管在发送前还是发送中,每个站都必须不停地检测信道;发送前检测是为了获得发送权,发送中检测即碰撞检测,当检测到碰撞则立即停止发送,执行退避算法,等过一段时间再发送,如若16次仍不能成功则报错。
CSMA/CD协议要点:多点接入(多点接入方式连接在同一总线上)、载波监听(不管是发送前还是发送中,每个站都要不停检测俯首)、碰撞检测;
争用期:检测信号在信道中的往返时间引起;如果争用期(共发送64字节)没有发生碰撞,那么后续发送的数据就一定不会发生冲突。
帧间最小间隔:9.6us,相当于96比特时间,用于清理缓存。
凡长度小于64字节的帧都是由于冲突而异常的无效帧;
b、以太网发送的数据都采用曼彻斯特编码;
7)局域网地址:6字节的MAC地址,由网卡决定,网卡在出厂时,其硬件地址就已经固定;
MAC帧分为五个字段:6字节的目的地址和源地址、类型字段(标识上一层所使用的协议)、数据字段、帧检验序列FCS;
8)以太网扩展,既可以在物理层扩展、也可以在网络层扩展,扩展的以太网在网络层看来还是一个网络。
物理层扩展以太网:转发器,相连区域还是一个碰撞域,其中两个站点在通信时,其他站点不能通信;
数据链路层扩展以太网:网桥,隔离的碰撞域,网桥根据目的地址以收到的帧进行转发和过滤,作用类似于网络层的路由器。
四、网络层
1、为分组交换网上的不同主机提供通信服务;网络层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,网络层不提供质量保证。
2、把网络相连的中间设备:
1)物理层使用的中间设备:转发器;
2)数据链路层使用的中间设备:网桥或桥接器;
3)网络层使用的中间设备:路由器;
4)网络层以上使用的中间设备:网关;
3、IP地址(4字节32位):网络号+主机号,IP地址不仅仅指明一个主机,而且指明了主机所在的网络。
1)IP地址管理机构只分配IP地址的网络号,主机号则由得到该网络号的单位自行分配;
2)路由器根据目的主机的网络号转发分组,从而降低路由表所占的存储空间以及查找路由表的时间;
3)路由器连接不同的网络(一个网络是具有相同网络号的主机的集合),所以一个路由器至少有两个IP地址;
4)转发器或网桥连接起来的若干局域网仍为一个网络;
5)两个路由器直接相连,在连线两端的接口处,可以分配也可以不分配IP地址;
6)三类IP地址:A类(1字节网络号)、B类(2字节网络号)、C类(3字节网络号);
7)路由表中内容:目的网络地址、下一跳地址;
8)物理地址是数据链路层和物理层使用的地址,是一种硬件地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址,IP地址是由软件实现的。
4、地址解析协议(ARP):IP地址到MAC地址的映射;ARP高速缓存存放IP地址到硬件地址的映射表;如果目的主机不在该局域网中,ARP是无法解析的。
5、IP数据报包括首部和数据两部分,首部包括内容:IP协议版本(4位)、首部长度(4位)、总长度(首部和数据之和,8位)、目的地址(32位)和源地址(32位)、数据协议(目的主机网络层交付给传输层需要用到,8位)、首部校验和(只检验数据报的首部,16位)、生存时间(数据报在网络中的寿命,8位)等。
6、两级IP地址不够灵活,IP地址空间面临不足,给每一个物理网络分配一个网络号导致路由表变得太大,因而网络性能变坏;解决方法:三级IP地址;
1)网络号+子网号+主机号;
2)子网掩码:用于提取目的地址的网络号(包括子网号);
3)路由表中内容:目的网络地址、子网掩码、下一跳地址;先将目的IP地址和子网掩码相与,如果得出的网络地址和目的地址相同,则转发到相应的下一跳地址。
7、无分类编址CIDR:消除了传统的A类、B类和C类地址以及划分子网的概念;
1)网络前缀+主机号,IP地址格式开如:206.0.68.0/25,后面的25就是指前面25位是网络前缀;
2)路由表组成:网络前缀、下一跳地址;
3)最长前缀匹配:应该从匹配结果中选择具有最长网络前缀的路由;
五、运输层
1、为进程通信提供数据传输服务;通过协议端口号将数据交付给正确的应用进程。
2、IP协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程;通信的真正端点是主机中的进程而非主机。
3、运输层的分用和复用
1)复用:不同的应用进程使用同一个运输层协议传送数据;
2)分用:运输层能把数据正确交付给目的应用进程;
4、网络层和运输层区别:网络层为主机提供逻辑通信,而运输层为应用进程提供端到端的逻辑通信;
5、网络层的差错检验是检验IP数据报的首部,而运输层的差错检验是检验整个数据;
6、软件端口是各种协议进程与运输实体进行层间交互的一种地址,运输层收到IP层提交的运输层报文时,根据其首部的目的端口号将数据交付给应用层的相应进程。
两个进程间进行通信,不仅要知道目的主机的IP地址,还要知道对应进程的端口号。
端口号只具有本地意义,分类如下:1)服务器端使用的端口号:系统端口号(熟知端口号)和登记端口号;2)客户端使用的端口号。
7、两个重要协议:
1)用户数据报协议(UDP):面向无连接的、不可靠的、没有拥塞控制、支持一对一、一对多、多对一和多对多通信。
UDP数据报格式:源端口、目的端口、长度、检验和(和IP数据报只校验首部不同,用于校验整个数据报)
2)传输控制协议(TCP):面向连接的、可靠的(超时重传机制)、支持一对一通信;
TCP报文格式:源端口、目的端口、序号(报文段序号,seq)、确认号(ack)、检验和、确认ACK、同步SYN、终止FIN.......
8、可靠传输工作原理
IP层只能提供尽最大努力传输服务,即TCP下面的网络所提供的是不可靠的传输。
1)停止等待协议:
发送方A发送完数据后,等待接收方B的确认(若B接收的数据报检测出了差错时,会直接丢弃,其他什么都不做),收到确认后再发送下一个分组,超过一定时间后重新发送分组。需要注意以下几点:
第一:A发送完一个分组后,必须暂时保留已发送的分组的副本;
第二:分组和确认分组都必须进行编号;
第三:超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些。
当B再次收到某一分组时,直接丢弃该分组,不用向上层交付,并向A再次发送确认通知。
2)连续ARQ协议:维持一个发送窗口,每次发送完窗口中的所有数据,不必等待确认,接收方只发送连续收到的最后一个分组的确认,然后发送发向前移动窗口。
9、拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
几种拥塞控制方法
1)慢开始:发送窗口逐渐变大;
2)拥塞避免:窗口线性增加,而不是加倍
3)快重传:接收方每收到一个失序报文扣立即发出重复确认,如果发送方一连接收到三个重复确认就应该立即重传对方尚未收到的报文,而不必继续等待重传计时到期。
4)快恢复:和快重传配合使用,减小开始门限,不执行慢开始算法。
8、TCP运输连接管理
1)建立连接:“三次握手”,客户端A首先向服务器端B发送连接请求(SYN=1,seq=x),请求报文中不携带数据;B接收到连接请求后,如果同意连接,则向A发送确认(SYN=1,ACK=1,ack=x+1,seq=y),同样该报文也不能携带数据;当A收到B的确认连接请求后,还要向B发送确认(ACK=1,ack=y+1,seq=x+1),这个报文可以携带数据,也可以不携带,如果未携带数据,则下一报文序号仍为seq=x+1。此时A进入连接状态,B收到确认请求后也进入连接状态。
三次握手意义:如果A因为未收到确认请求而发送了两次连接请求,当B收到一个失效的报文段时,误认为A请求建立连接,发送确认报文,此时,如果B不等待A的第三次确认就直接进入连接状态,则B将一直处于等待状态,造成资源的浪费。
2)数据传输;
3)释放连接:“四次握手”,A发送连接释放报文(FIN=1,seq=u),u为前面已传送过的数据的最后一个字节的序号加1;这时A进入FIN-WAIT-1状态,等待B的确认,FIN报文中不能携带数据报文;B收到连接释放请求后即发出确认(ack=u+1,seq=v),v为前面已传送过的数据最后一个字节的序号加1,然后B进入CLOSE-WAIT状态;A收到来自B的确认后,就进入FIN-WAIT-2状态,等待B发出的连接释放报文段;B发出连接释放报文(FIN=1,ack=u+1,seq=w),w不一定等于v+1,因为B可能又发送了一些数据,等待A确认,B进入LAST-ACK状态;A在收到B的连接释放报文后,发出确认报文(ACK=1,ack=w+1,seq=u+1),A已经发送过释放连接请求,所以不会再发送数据,所以seq为u+1,然后进入TIME-WAIT状态,此时TCP连接还未释放,A在等待2MSL(最长报文段寿命)后,A进入CLOSED状态;B在接收到A的确认后,立即进入CLOSED状态,所以B结束TCP连接的时间比A稍早。
A在TIME-WAIT状态等待2MSL的原因如下:
a、为了保证A发送的最后一个ACK报文段能够到达B,处于LAST-ACK状态的B如果收不到A的FIN-ACK报文段,B会进行超时重传FIN+ACK报文。如果A提早关闭,则B可能无法接收到FIN-ACK报文而无法进入CLOSED状态。
b、防止失效的连接请求报文段出现在本连接中,最后一个ACK报文段后,再经过2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络上消失。
除此之外,TCP还设有一个保活计时器(一般为两小时),服务器每接收到一次客户端发送来的数据就重设一下保活计时器。若超过保活计时器的时间仍未收到来自客户端的报文则发送一个探测报文,以后每隔75分钟发送一次,若连续10个探测报文都仍无客户端面响应,服务器则认识客户端故障,于是断开TCP接连。
六、应用层
1、进程间的通信,交换单元为报文。
2、域名服务系统
1)IP地址长度固定,而域名的长度并不固定,机器处理比较困难;
2)根域名服务器:记录有所有顶级域名服务器的域名和IP地址,13个,地址保密;
3)DNS域名服务器:根域名服务器、顶级域名服务器、权限域名服务器;
3、常用协议:文件传送协议(FTP)、远程终端协议(TELNET)
4、万维网(WWW)是一个大规模的联机式的信息储藏所;浏览器即用户主机上的万维网客户程序。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
5、域名、网址、IP和URL(统一资源定位符)的区别:域名是IP的别称(域名比IP地址好记),网址是URL的别称,域名标识的主机地址,它只是URL的一小部分,URL还包括所使用的协议、端口号、路径等信息(<协议>://<主机>:<端口>/<路径>);URL内的字符是不区分大小写的。
6、代理服务器:把最近的一些请求和响应暂存在本地磁盘中,代理服务器可以工作在客户端也可以工作在服务器端,甚至中间系统。
7、邮件发送协议(如SMTP)、邮件读取协议(如POP3);
七、网络安全
1、计算机网络上的通信面临以下两大威胁:被动攻击(截获;无法检测)和主动攻击(篡改、恶意程序(病毒、蠕虫、特洛伊木马、逻辑炸弹)、拒绝服务);
2、在无任何限制的条件下,目前几乎所有实用的密码体制均是可破的;
3、两大密码体制:对称密码体制(加密密钥和解密密钥相同)、公钥密码体制(加密密钥和解密密钥不同);
4、公钥密码体制:A用B的公钥采用加密算法加密,B用密钥采用解密算法进行解密;公钥、加密算法、解密算法都是公开的;
5、任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量;
6、数字签名功能:报文鉴别(谁发的)、报文完整性、不可否认;方法之一、采用私钥加密,对方用公钥解密;
7、鉴别
1)报文鉴别:报文摘要算法(MD5、SHA)是一种单向算法,不能从摘要还原原文,并且,若想找到两个报文,使得它们具有相同的报文摘要也是不可能的;
2)实体鉴别:防止重放攻击;