第一章 计算机网络概述
1、OSI参考模型:
应用层——所有能产生网络流量的程序
表示层——在传输之前是否进行加密 或 压缩 处理,二进制或ASCII码表示
会话层——查木马,看需求端和网站之间的连接 netstat –n
传输层——可靠传输,流量控制,不可靠传输(一个数据包即可,不需要建立会话,例如向DNS查询网站IP地址)
网络层——负责选择最佳路径,规划IP地址(ipv4和ipv6变化只会影响网络层)
数据链路层——帧的开始和结束,还有透明传输,差错校验(纠错由传输层解决)
物理层——定义网络设备接口标准,电气标准(电压),如何在物理链路上传输的更快/
2、网络排错
OSI参考模型对网络排错的意义:
每一层都为上一层提供服务,一旦某一层崩了,上面所有层都崩了,所以排查问题从最上层(物理层)排查;
1.物理层故障怎么办?查看链接状态,发送和接收的数据包数值;
2.数据链路层故障怎么办?Mac地址冲突,2个一样的Mac地址同时访问;ADSL(非对称数字用户线路)欠费;两端的接口网速没有协商一致;计算机连接到其它VLAN(虚拟互联网)中。
3.网络层故障怎么办?配置错误的IP地址,子网掩码,网关;数据有没有通过各个网关到达指定位置;
4.应用层(合并3层)故障怎么办?应用程序配置问题
3、OSI参考模型和网络安全解决办法:
1.物理层安全隐患?别人能私自接入你的网络,应该拔掉不用的网线或接口;
2.数据链路层安全隐患?ADSL账号密码,VLAN,交换机端口绑定Mac地址
3.网络层安全隐患?路由器上使用ACL(访问控制列表)控制数据包流量;防火墙设置;
4.应用层安全隐患?应用程序有没有漏洞;
4、计算机网络的性能:
1.速率,连接在计算机网络上的主机在数字信道上传送数据位数的速率,也称data rate或bit rate(比特率),单位是b/s, kb/s, Mb/s, Gb/s。和正常理解的网速的关系是除以8.
2.带宽,数据通信领域中,数字信道所能传送的最高数据率,单位是b/s, kb/s, Mb/s, Gb/s。常见的是Mpbs。
3.吞吐量,在单位时间内通过某个网络的数据量,单位是b/s, Mb/s。
4.时延,包括发送时延,传播时延,处理时延,排队时延。发送时延等于数据块长度(bit)除以信道带宽(bit/s). 更快的发送速度意味着波长越短,链路上的数据量更大;更快的传播速度意味着在网线中更快的传播速度。
5.时延X带宽(时延带宽积),有多少数据正在线路上。
6.往返时间(RTT, Round-Trip Time),从发送方发送数据开始,到发送方收到接收方确认数据的时间。例如ping一下。
7.利用率,包括信道利用率:有数据通过的时间/总时间
网络利用率:信道利用率的加权平均
网络当前时延D = 网络空闲时时延D0 / (1 - 信道利用率U)
第二章 物理层
2.1 物理层定义的标准
物理层解决如何在链接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的主要任务:确定传输媒体的接口的一些特性,包括,
机械特性:接口形状,大小,引线数量
电气特性:例如规定电压范围(-5V-5V)
功能特性:例如规定-5V上0,+5V是1
过程特性:也称规程特性,规定建立连接时各个相关部件的工作步骤
2.2 信道的概念
信道一般表示向一个方向传输信息的媒体。所以通信线路往往包含一条发送信息的信道和一条接收信息的信道。
->单向通信(单工通信)——只能有一个方向的通信,没有反向交互。
->双向交替通信(半双工通信)——通信的双方都可以发送信息,但是不能双方同时发送或接收。
->双向同时通信(全双工通信)——通信的双发可以同时发送和接收。
基带信号(基本频率信号)——来自信源的信号,例如计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如说我们说话的声波。
带通信号——把基带信号经过载波调制后,把信号的频率范围迁移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
因此在传输距离较近时,采用基带传输方式(衰减不大,信号内容不会变化)。传输距离较远时,采用带通传输方式,例如从计算机到监视器,打印机等外设的信号。
从基带信号到带通信号,涉及到 调频(AM),调频(FM),调相(PM)。
2.3编码
单极性不归零编码:只使用一个电压值,高电平表示1,低电平表示0.
双极性不归零编码:用幅值相等的正负电平表示二进制数1和0.
单极性归零编码:发送码1时高电平在整个码元期间只持续一段时间,其余时间返回零电平。
双极性归零编码:正负零三个电平,信号本事携带同步信息。
曼彻斯特编码:单极性编码的缺点是没有办法区分此时是没有信号,还是有信号,但是信号是0.
->这种编码方式是bit中间有信号,低-高跳转表示0,高-低跳转表示1,一个时钟周期只可以表示一个bit,并且必须通过两次采样才能得到一个bit。它能携带时钟信号,而且能区分此时是没有信号还是信号为0.
差分曼彻斯特编码:抗干扰能力比曼彻斯特编码更强。bit与bit之间有信号跳变,表示下一个bit为0,bit与bit之间没有信号跳变,表示下一个bit为1。
2.4 奈氏(Nyquist)准则
在理想条件下(无噪声/干扰/失真),为了避免码间串扰,码元的传输速率是有上限的。如果信道的频带越宽(信号高频分量越多),则用更高的速率传输码元也不会出现码间串扰。
2.5 信噪比和香农(Shannon)公式
信道的极限信息传输速率C(带宽受限且有Gauss白噪声干扰时的信道极限且无差错时的信息传输速率)可表示为,
C = W log2(1 + S / N) b/s
->W是信道的带宽(Hz);
->S是信道内所传信号的平均功率;
->N是信道内的Gauss噪声的功率。
可以发现,减少速度和增大功率能提高准确度。
信道的带宽或信道中的信噪比(S/N)越大,则信息的极限传输速率C就越高;
只要信息传输速率小于信道的极限传输速率C,就一定能实现某种无差错传输;
若带宽W或信噪比(S/N)没有上限,则极限传输速率C也没有上限(虽然不可能);
实际上,信道能达到的最高传输速率要比C低不少;
2.6 复用
频分复用(FDN: frequency division multiplexing):用户在分配到一定的频带后,在通信过程中始终站用这个频带。频分复用的所有用户在同样的时间占用不同的带宽资源(带宽指频率带宽不是数据的发送速率)。
时分复用(TDN: time division multiplexing)
统计时分复用(STDM: statistic TDM)
波分复用(WDM: wavelength division multiplexing)
就是光的频分复用。
码分复用
常用的名词是码分多址CDMA(Code Division Multiple Access)
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为m个短的间隔,称为码片(chip)。
第三章 数据链路层
3.1 数据链路层的基本概念
数据链路层不关心物理层解决的问题,只关心帧头帧尾和校验。
3.1.1 数据链路层的信道类型
->点到点信道:这种信道使用一对一的点对点通信方式。
->广播信道:广播信道上的主机很多,需要专用的共享信道协议来协调主机的数据发送。
3.1.2 链路与数字链路
->链路(link)——是一条点到点的物理线路段,中间没有任何其他的交换节点。一条链路只是一条通路的一个组成部分。
->数据链路(data link)——除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
3.1.3 帧
在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头帧尾,MAC地址和校验值。
3.2 数据链路层解决的基本问题
3.2.1 封装成帧(framing)
就是在一段数据的前后分别添加帧头和帧尾,构成一个帧,确定帧的界限。
3.2.2 透明传输
用字节填充法解决透明传输问题。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B)。
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在数据送往网络层之前杀出插入的转义字符。
如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那一个。
3.2.3 差错校验
传输过程中可能会产生bit差错:0变成1,1变成0.
在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER(bit error rate)。
误码率和信噪比的关系很大。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。
->循环冗余检验CRC:
除数必须比后面添加的0的位数多一位,可以是任意的二进制数。每一步运算其实是不进位的加法。下图的001就是FCS帧检验序列。接收端计算101001001(也就是原数据加上FCS)除以1101,如果商为0,意味着传输过程没有差错,就接受,否则丢弃。
在数据后面添加的冗余码称为帧检验序列FCS(frame check seqeunce)。CRC不是获得FCS的唯一方法。
特点:
不能确定出错的bit的是哪一位;
可能会出错,但只要经过严格的挑选,并且除数位数足够大,就可以极大减少出错概率;
CRC只能做到无差错接受(意思是传输过程没有差错,有差错的一律丢弃);
要做到可靠传输,必须加上确认和重传机制。
3.3 两种情况下的数据链路层
3.3.1 使用点对点信道的数据链路层(广域网)
(1)PPP协议(point to point protocol),是数据链路层协议,例如用户使用拨号上网。
(2)PPP协议应该满足:
简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;
(3)PPP协议不需要满足:
纠错;流量控制;序号;多点链接;半双工或单工连接。
(4)PPP协议的组层部分:
数据链路层协议可以用于异步串行或同步串行介质;
使用LCP(链路控制协议)建立并维护数据链路连接,可以实现身份验证和欠费管理;
网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如下图;
(5)PPP协议帧格式
标志字段F = 0x7E
地址字段A = 0xFF,它并不起作用
控制字段C = 0x03
PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。
(6)字节填充(类似于透明传输)
此时,信息部分是以字节为单位的。
将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);
将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);
将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D;
(7)0比特填充(类似于透明传输)
此时,信息部分是二进制流。PPP协议在SONET/SDH链路时,是使用同步传输。
在发送端,只要发现有5个连续的1,则填充一个0,接收端删掉对应的0。
(8)PPP协议不使用序号和确认机制的原因
在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;
在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
帧检验序列FCS字段可以保证无差错接受。
(9)PPP协议的工作状态
当用户拨号接入ISP(网络运营商)时,路由器的调制解调器对拨号进行确认,建立物理连接;
PC机箱路由器发送一些列的LCP(链路控制协议)分组(封装成多个PPP帧);
这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;
通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址;
接着,LCP释放数据链路层连接;
最后释放的事物理层连接。
3.3.2 使用广播信道的数据链路层(局域网)
一般是总线型。
(1)局域网的拓扑
(2)共享通信媒体
静态划分信道(麻烦):
频分复用;时分复用;波分复用;码分复用;
动态媒体接入控制(多点接入):
随机接入(主要是以太网);受控接入,如多点线路探询(polling),轮询(不采用了)。
(3)认识以太网
最初的以太网是将许多计算机都连接到一根总线上,当初认为这样连接即简单又可靠,因为总线上没有有源器件。
总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。
这是一种具有广播特性的总线上实现了一对一通信。这种方式不安全。
(4)带冲突检测的载波监听/碰撞检测
CSMA/CD:
Carrier Sense Multiple Access with Collision Detection
多点接入:
许多计算机以多点接入的方式连接在一根总线上。
载波监听:
每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;
(5)碰撞检测
碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大;
当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
碰撞就是冲突,碰撞检测也称冲突检测。
检测到碰撞后:
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。
(6)传播时延对载波监听的影响
在2t时间内,可能存在碰撞。
(7)CSMA/CD的重要特性
使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
(8)争用期
最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。
经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;
以太网的争用期:
->以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;
->对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
->以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;
最短有效帧长:
->如果发生冲突,一定是前64字节;
->由于一旦发生冲突就立刻停止,所以已发送的数据一定小雨64字节;
->以太网规定了最短有效帧长为64字节,凡事小雨64字节的帧一定是因为冲突而异常终止的无效帧。
(9)二进制指数类型退避算法
发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。
确定基本退避时间,一般是争用期2t;
定义参数k = min(重传次数,10);
从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。
3.4 以太网
3.4.1 以太网的两个标准
DIX Ethernet V2一般是指这个。
IEEE 802.3 两个标准差别很小。
以太网 是满足DIX Ethernet V2标准的局域网。
3.4.2 以太网与数据链路层的2个子层
为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:
->逻辑链路控制LLC(Logical Link Control)子层;
->媒体接入控制MAC(Medium Access Control)子层。
与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的;
由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议;
3.4.3 以太网提供的服务
以太网提供服务是不可靠的交付,即最大努力的交付;
当接收站收到的有差错的数据帧时就丢弃此帧,其它什么也不做,差错的纠正由高层来处理;
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新帧发送。
3.4.4 以太网的星型拓扑结构
物理上是星型,逻辑上是总线型。
为了降低成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收;
在星形的中心增加了一种可靠性高的设备,为集线器(hub)。
3.4.5 集线器的特点
集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍然是像一个传统的以太网那样运行。由于集线器使用了大规模集成电路芯片,所以可靠性更高;
使用集线器逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议,共享逻辑网络上的总线;
集线器像一个多接口的转发器,工作在物理层。
3.4.6 10Base-T 基于集线器的以太网标准
它的通信距离稍短,每个站到集线器的距离不超过100m。
这种10MB/s的无屏蔽双绞线星形网的出现,能降低成本和提高可靠性。
10Base-T的出现有很大的意义,类似标准有100Base-FX,10Base-T,100Base-T4.
3.4.7 信道利用率
争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。
一个帧从开始发送,经可能发生的碰撞后,将再次重传多次,直到发送成功且信道转为空闲(即再经过t使得信道上没有信号在传播)时为止,是发送一帧所需的平均时间。
3.4.8 信道利用率的最大值
假设理想状态下,以太网个展发送的数据都不会碰撞,一旦总线空闲就能有站立即发送数据,所以没有争用期;
发送一帧需要占用总线T0+t,而帧本身需要发送时间为T0,于是理想情况下极限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).
3.5 MAC层
3.5.1 MAC层的硬件地址(MAC地址)
硬件地址 = 物理地址 = MAC地址
MAC地址前3个字节(24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;
一个地址块可以产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;
MAC地址实际上是每一个站的名字或标识符。
3.5.2 适配器检查MAC地址
适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:
->如果是发往本站的帧就收下,然后进行其它处理;
->否则丢弃。
发往本站的帧包括:
->单播帧(unicast)(一对一)
->广播帧(broadcast)(一对全体)
->多播帧(multicast)(一对多)
3.5.3 MAC帧的格式
6 + 6 + 2 + 46 + 4 =64 byte,这就是为什么IP数据报的最短长度为46字节。前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。
3.5.4 无效的MAC帧
帧的长度不是整数个字节;
用收到的帧检验序列FCS查出有错误;
数据字段的长度不在46-1518字节内;
对于检查出来的无效MAC帧简单的丢弃。
3.5.5 帧间最小间隔
为9.6微秒。相当于96bit的发送时间。
一个站在检测到总线空闲时,还需要等待9.6微秒后才能再次发送数据,这样做是为了使刚刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。
3.6 数据帧的抓包分析
3.7 扩展以太网
3.7.1 在物理层考虑扩展
(1)距离的扩展
主机使用光纤和一对光纤调制解调器连接到集线器。
3.7.2 在数据链路层考虑扩展
(1)使用网桥
网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口。
(2)交换机
随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。
交换机就是网桥和集线器的合并升级版,能全双工,安全通信。
端口带宽独享;
安全;
基于MAC地址转发;
通过学习构建MAC地址表。
(3)透明网桥(transparent )
透明指局域网上的站点不知道所发送的帧将经过几个网桥,因为网桥对于各站点是看不见的。
透明网桥是一种即插即用的设备,标准是IEEE 802.1D。
3.8 快速 以太网(fast ethernet)
3.8.1 100Base-T以太网
速率在100Mb/s以上的以太网称为高速以太网。
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。100Base-T以太网被称为快速以太网(fast ethernet)。
100Base-T以太网的物理层:
->100Base-TX:使用2对UTP 5类线或屏蔽双绞线STP。
->100Base-FX:使用2对光纤。
->100Base-T4:使用4对UTP 3类线或5类线。
3.8.2 100Base-T以太网的特点
可以实现全双工通信(注意,如果交换机上某一路连接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。
MAC帧格式不变,仍是802.3 标准。
最短帧长度不变,但是一个网段的最大电缆长度减少到100m。
帧间间隔从9.6微秒缩小到0.96微秒。
3.8.3 吉比特Gbit以太网
允许在1 Gb/s下全双工或半双工工作方式。
使用802.3标准的帧格式。
在半双工下使用CSMA/CD协议。
与10Base-T和100Base-T技术向后兼容。
当吉比特以太网在全双工方式时,不用载波延伸和分组冲突。
1000Base-X以太网的物理层(基于光纤通道):
->1000Base-SX:SX表示短波长,传输距离上275m或550m。
->1000Base-LX:LX表示长波长,传输距离上550m或5000m。
->1000Base-CX:
1000Base-T以太网的物理层(基于双绞线):
->使用 4对 5类线UTP。
3.8.4 10Gbit/s以太网
MAC帧格式不变,仍是802.3 标准。
使用光纤而不是铜线。
只能工作在全双工方式,没有争用问题。
它的出现使工作范围从局域网扩大到城域网和广域网,实现了端到端的以太网传输,优点是:技术成熟;互操作性好;广域网中使用以太网便宜;统一的帧格式。
3.8.5 以太网从10Mb/s到10Gb/s的演变说明了
可拓展性;
灵活性(多种传输媒体,全/半双工,共享/交换);
易于安装;
稳健性好。
第四章 网络层
4.1 网络层提供的服务
4.1.1 网络层的作用
负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
有点像送快递,一个人往另一个地方寄快递,每个快递走不同的路线,可能后发的先到了,也可能丢件了。但是网络层不管这些,只管寄快递。
数据包在Internet中的传输,Internet既有局域网,又有广域网,既有光纤,又有铜线,无线,还有不同的协议,这是Internet复杂所在。
路由器是三层设备:能看到网络层的IP地址来选择路径。
4.1.2 互联网络与虚拟互联网络
(1)互联网互联的设备
中间设备又称为中间系统或中继(relay)系统。
->物理层中继系统:转发器(repeater),有点像集线器。
->数据链路层中继系统:网桥或桥接器(bridge)。
->网络层中继系统:路由器(router)。
->传输层/应用层中继系统:网关(gateway)器。
网关就是路由器接口的地址。一般是本网段第一个地址。
(2)网络需要解决的问题
(3)虚拟网络把复杂的Internet看成一个网络,化简问题。虚拟互联网络就是逻辑互联网络,他的意思就是互联起来的各种物理网络的异构性本来就是客观存在的, 但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,而不用考虑具体的网络异构细节。
4.2 网络设备和OSI参考模型的关系
4.2.1举例,PC4向PC3传输数据
PC:计算机;Hub:集线器;Switch:交换机;Router:路由
发送端(封装):
(1)应用层准备要传输的数据;
(2)传输层把文件进行分段并编号;(数据段)
(3)网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
(4)数据链路层把每个数据加上MAC地址;两种情况:(数据帧)
使用自己的子网掩码,判断自己和目标地址分别在哪个网段,若在同一个网段(不过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧;如果子网掩码不是一个网段(用与运算),通过ARP协议广播的方式得到路由器(网关)的MAC地址,然后把数据通过交换机发送到路由器M2,因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF。
(5)物理层把数据帧变成数字信号(bit流)
接收端(解封):
(1)交换机Hub0接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的,要去哪。
(2)路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容。
(3)路由器M2到M3是点对点通信,遵守PPP协议。
(4)PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来。
4.2.2 路由器/交换机/集线器会不会中病毒
不会,路由器不能识别数据内容。它只负责信息的传递。但是病毒会影响网络设备。因为病毒会占用网络流量。
4.3 ARP协议
4.3.1 TCP/IP协议层次关系
IP协议:把数据包从一个网段转到另一个网段,就是用来选择路径用的。
ARP为IP服务,IP为ICMP/IGMP服务。
4.3.2 ARP协议的作用
将IP地址通过广播(本网段,不通过路由器),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。
4.3.3 使用ARP的四种典型情况
(1)发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
(2)发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
(3)发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
(4)发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
4.3.4 逆地址解析协议RARP
只知道自己MAC地址就能获得其IP地址。
4.3.5 ARP欺骗/网络执法官/ARP防火墙-实验课
如果同一网段中有电脑中毒,可能会把中毒电脑的MAC地址传回去。
Continue with configuration dialog? [yes/no]: n
Press RETURN to get started!
Router>enable
Router#config terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#no shutdown
Router(config-if)#ip address 10.0.0.1 255.0.0.0
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000
Router(config-if)#ip address 11.0.0.1 255.0.0.0
Continue with configuration dialog? [yes/no]: n
Router>enable
Router#config t
Router(config)#interface serial 3/0
Router(config-if)#ip address 11.0.0.2 255.0.0.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 12.0.0.1 255.255.0.0
Router(config-if)#no shutdown
查看路由表
Router#show ip route
Router#config terminal
Router(config)#ip route 12.0.0.0 255.255.0.0 11.0.0.2
Router>enable
Router#conf t
Router(config)#ip route 10.0.0.0 255.0.0.0 11.0.0.1
Router(config)#^Z
网络设备和OSI参考模型关系
计算机通信的过程 本网段通信跨网段通信的过程
发送端
1.应用程序准备要传输的文件
2.传输层 将文件分段 并编号
3.网络层 添加目标IP地址源IP地址8
4.数据链路层 两种情况 使用自己的子网掩码 判断自己在哪个网段
使用自己的子网掩码 判断目标地址在哪个网段
如果是同一个网段 arp协议广播解析目标IP地址的MAC
如果不是同一个网段
网络层协议
ARP 将IP地址通过广播 目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的MAC地址
扫描本网段MAC地址
网络执法官
arp -s 192.168.80.1 00-0C-29-53-48-C3
arp -a
本地连接 修复
使用ICMP协议的命令
ping time 查看延迟
Linux 64
Windows 128
Unix 255
ping 10.7.1.53 -t
ping -l 200 10.7.1.53
ping 10.7.1.53 -l 200
ping 8.8.8.8 -i 2 更改数据包TTL时间 能够跟踪数据包途径的路由器
如何排除网络故障
ping 估算网络是否畅通
pathping 跟踪数据包路径 计算丢包情况
Windows上跟踪数据包路径的命令
tracert 10.7.1.53
在路由器上跟踪数据包路径的命令
traceroute 12.0.0.3
IGMP
点到点
广播
组播=多播
IP数据包结构
版本 用来表示 TCP/IP协议的版本 v4 v6
区分服务 Windows 2008上 gpedit.msc
网络层 数据包 65535字节
数据链路层 数据1500 字节 最大传输单元 MTU
数据包 如果不分片 数据包数据最大不超过1480字节
数据包分片
协议号 ICMP 协议号1 IGMP协议 2 TCP 6 UDP 17 IPv6 41 OSPF 89
网络畅通的条件 数据包有去有回
Router>en
Router#config t
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#clock rate ?
Router(config-if)#clock rate 64000
Router(config-if)#ip address 172.16.0.1 255.255.255.0
Router(config-if)#no shutdown
Router>en
Router#configure terminal
Router(config)#interface serial 3/0
Router(config-if)#no sh
Router(config-if)#ip address 172.16.0.2 255.255.255.0
Router(config-if)#ex
Router(config)#interface serial 2/0
Router(config-if)#clock rate 64000
Router(config-if)#ip address 172.16.1.1 255.255.255.0
Router(config-if)#no shutdown
静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁
静态路由的缺点 适合于小规模网络 不能够自动调整路由
动态路由
RIP 周期性广播路由表 跳数 30秒更新一下路由信息 最大跳数 15跳
RA#config t
RA(config)#router rip
RA(config-router)#network 192.168.0.0
RA(config-router)#network 192.168.1.0
RA(config-router)#network 192.168.2.0
RA(config-router)#network 192.168.7.0
RA#show ip prot
4.4 网际控制报文协议ICMP
4.4.1 ICMP
ICMP:在IP之上,用来测试网络层有没有故障。使用最多的命令是ping。
为了提高IP数据报交付成功的机会,在网络层使用了ICMP(Internet Control Message Protocol)。
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
ICMP不是高层协议,而是IP层协议;
ICMP报文件为IP层数据报的数据加上数据报的首部,组成IP数据报发送出去。
4.4.2 ping(Packet Internet Grope)命令诊断网络故障
PING是网络层命令。
TTL是数据报的生存时间每过一个路由器就会减1,作用是防止数据报在网络中循环。TTL默认初始值如下:
Linux 64
Windows 128
Unix 256
可以根据TTL值粗略判定对方是什么系统。
(1)PING,因特网包套所起,用于测试网络连接量的程序。ping发送一饿ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
(2)ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
(3)如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。
4.4.3 ping和pathping命令
QQ能登上,网页打不开是为什么? 网络层没有问题,域名解析有问题。
pathping 能跟踪数据包路径,发现出问题的位置。
Windows上跟踪数据包路径的命令:tracerert 10.7.1.53
路由器上跟踪数据包路径的命令:traceroute 12.0.0.3
4.5 IGMP协议和多播组播
点到点通信:
广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。
组播=多播:分组广播。
4.5.1 访问多播视频节目
使用多播一般用于直播,网络会议,能够节省带宽。
IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
4.6 IP数据包的结构
注意,ARP数据包不是这个格式。
首部:第一部分是固定长度,20字节,是所有IP数据包必须具有的。后一部分是可选字段,长度可变。
(1)版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6.
(2)区分服务:确定更高的传输优先级。
(3)总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节。
->注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节,是不一样的。所以说,一旦超过数据链路层的最大要求时(网络层数据部分超过1480字节),数据包会分片。最大传输单元MTU。
->数据包分片:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(泪滴攻击就是利用目标机发送破坏的IP包(重叠的包货过大的包负荷)可以通过TCP/IP协议来瘫痪各种不同的操作系统)。所以需要编号。
(4)标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。
(5)标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间一位是DF(Don’t Fragment),只有DF=0才允许分片。
(6)片偏移:偏移等于当前字节在数据部分的第几个再除以8.
(7)生存时间:就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。
(8)协议:用协议号标识数据部分是什么数据。
ICMP协议号:1;
IGMP协议号:2;
TCP协议号:6;
UDP协议号:17;域名解析
IPv6协议号:41;
OSPF协议号:89;
(9)首部检验和:16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。
(10)源地址和目的地址都是IP地址,32位,只符合IPv4。IPv6是128位。
(11)可变部分:一般没用。
4.7 IP协议
(1)网络畅通的条件
沿途路由器必须知道下一跳给谁,数据包有去有回。
4.7.1 静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
适合于小规模网络,不能自动调整路由。
4.7.2 动态路由
(1)RIP协议
周期性广播(30s)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。
(2)OSPF协议
根据带宽选择路径。
4.8 子网掩码
能够帮助路由器判断对应主机是否在同一个网段中。
4.9 ABCDE类网络地址
网络地址(网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。ABC对应的子网掩码分别是255.0.0.0和255.255.0.0和255.255.255.0
特殊的几个地址
127.0.0.1 本地换回地址
169.254.0.0
10.0.0.0,172.16.0.0–172.31.0.0,192.168.0.0–192.168.255.0 保留的私网地址
4.10 子网划分
注意,全为1是广播,所以63,127,191,254不选
第五章 传输层
->传输层协议UDP和TCP
->网络安全
->TCP可靠传输的实现
->TCP的流量控制
->TCP的拥塞控制
->TCP的运输连接管理
5.1 OSI和DoD模型
下图必须背下来。尤其是传输层和网络层的协议。
传输层最大数据包是65535字节,而网络层数据最大只有1480字节。所以需要分段,但是只要分段,就有可能丢包,因为网络层不负责可靠传输。所以要求服务器和客户端保持会话,直到数据传输完成。
->TCP(Transmission Control Protocol)传输控制协议
应用场景:需要将要传输的文件分段传输时;就需要TCP协议来建立会话实现可靠传输;同时也有流量控制功能。(例如QQ传文件)
查看会话 netstat -n
查看建立会话的进程 netstat -nb
->UDP(User Data Protocol)用户数据报协议
应用场景:一个数据包就能完成数据通信;不需要建立会话和流量控制;多播/广播;是一种不可靠传输。(例如QQ聊天,屏幕广播)
5.2 传输层协议和应用层协议的关系
(1)TCP和UDP协议和不同的端口即可对应一个应用层的协议。注意,53大部分是与UDP相连。
(2)熟知数值一般为0-1023,登记端口号数值1024-49151,客户端口号数值为49152-65535.
(3)常用的应用层协议使用的端口(号):
http = TCP + 80
Https = TCP + 443
RDP = TCP + 3389
ftp = TCP + 21
共享文件夹 = TCP + 445
SMTP = TCP + 25
POP3 = TCP + 110
telnet = TCP + 23
SQL = TCP + 1433
DNS = UDP + 53
(注意与4.6 的协议号的区别)
5.3 服务和应用层协议的关系
防火墙是基于网卡的,只打开必要的端口,不必要的端口不允许接收数据,不影响服务的运行和监听。
服务使用TCP或UDP的端口侦听客户端请求;
客户端使用IP地址定位服务器,使用目标端口,定位服务;
可以在服务器网卡上设置只开放必要的端口,实现服务器网络安全。
5.3.1 如何在Windows上安装服务
DNS服务
Web服务
SMTP
POP3
5.3.2 如何查看服务侦听的端口
netstat -a
netstat -an 以数字的形式查看端口
netstat -n 查看建立的会话
netstat -nb 查看建立会话的进程
telnet 192.168.80.100 3389 测试到远程计算机某个端口是否打开
5.3.3 如何更改服务使用默认端口
可以迷惑病毒,使系统更加安全。
5.3.4 如何设置Windows网络安全
设置本地连接 TCP/IP筛选
5.4 传输层功能和端口范围
5.4.1 传输层协议和网络层协议的主要区别
网络层实现如何把数据包从这个地址(服务器)发送到另一个地址(服务器)。
传输层实现如何让这个应用程序找到对应计算机的应用程序(相对应的应用程序实现逻辑通信)。
5.4.2 传输层的主要功能
(1)传输层为应用进程之间提供了端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
(2)传输层还要对收到的报文进行差错检验。
(3)传输层提供面向连接(TCP)和无连接(UDP)的服务。
5.4.3 传输层的端口
1)TCP的端口
端口用一个16位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层的各进程。在Internet中不同计算机的相同端口号是没有联系的(最好不要有冲突)。
5.5 UDP协议
(1)UDP是无连接的,即发送数据之前不需要建立连接。
(2)UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
(3)UDP是面向报文的,适合多媒体通信的要求。
(4)UDP支持一对一,一对多,多对一,多对多交互通信。
(5)UDP首部开销小,只有8个字节。
首部中的长度指的是UDP用户数据报的长度(首部+数据)。
伪首部用于检验和,我的理解是伪首部是IP数据包首部的后部分。
5.6 TCP协议
(1)TCP是面向连接的传输层协议。(三次握手)
(2)每一条TCP连接智能有两个端点(endpoint),每一条TCP连接只能时点对点的(一对一)。
(3)TCP提供可靠交付的服务。(确保不丢包)
(4)TCP提供全双工通信。(因为需要接收端的反馈,例如如果接收端处理不过来,可让发送端慢一点,流量控制)
(5)面向字节流。
如果要传输一个比较大的数据,首先一次只会传输一小块,这个数据块的大小是没有规律的。加上数据包数据帧的头,发送给接收端,接收端去掉首部,再次拼接。
5.6.1 TCP的连接
(1)TCP把连接作为最基本的抽象。
(2)每一条TCP连接有两个端点。
(3)TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层协议端口,TCP连接的端点叫 套接字(socket).
->套接字socket = (IP地址:端口号)
->每一条TCP连接唯一地被通信两端的两个套接字所确定,即:
->TCP连接 ::= {socket1, socket2} = {(IP1:port1), (IP2:port2)}
(4)端口号拼接到IP地址即构成了套接字。
5.7 TCP如何实现可靠传输
(1)可靠传输的工作原理——停止等待协议。
(3)可靠通信的实现
->使用上述的确认和重传机制,微秒就可以在不可靠的传输网络上实现可靠的通信。
->这种可靠传输的协议常称为自动重传请求ARQ(Automatic Repeat reQuest)。
->ARQ表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。
->缺点,信道利用率低。
(4)流水线传输(发送方)
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断的传送,这种传输方式可获得很高的信道利用率。
(5)连续ARQ协议
(6)累计确认(接收方)
接收方一般采用累计确认的方式。
优点:容易实现,信道利用率高。
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
5.8 TCP报文段的首部格式
(1)源端口:2个字节16位。
(2)目的端口:2个字节16位。
(3)序号:当前数据的第一个字节在整个文件中的序号。
(4)确认号ack:接收端发送,提示发送端下一次该发的数据在整个文件中的序号。接收端收到后,会把这个序号之前的数据从缓存中删掉。
(5)数据偏移:当前TCP报文段第多少个字节后是TCP的数据部分了。数据偏移最多表示1111,即15,他最多可以表示15乘以4,即60个字节的偏移量,所以选项+填充最多只能是40个字节。
(6)保留:6位,无作用。
(7)URG:urgent,意思是优先级高,发送端优先发送,而不是在缓存中排队。
(8)ACK:acknowledge,1意味着确认建立了会话。
(9)PSH:1意味着接收端优先读取,而不是在缓存中排队。
(10)RST:reset,1意味着TCP会话出现严重错误,必须释放和重新连接。
(11)SYN:同步。1意味着要发起会话。
(12)FIN:finish,1意味着释放连接。
(13)窗口:接收端先发,发送端根据接收端的窗口尺寸确定发送端窗口尺寸。
(14)检验和:
(15)紧急指针:只有URG为1才有用。5.11.2 慢开始和拥塞避免
5.9 TCP如何实现可靠传输P67
5.9.1 以字节为单位的滑动窗口技术
A的发送窗口是由B的接受窗口长度决定的。
在没有收到B确认收到之前,A不能删掉滑动窗口内的内容。
A可以持续给B发送,直到A的滑动窗口内数据都发了。
B收到后给A发确认收到的反馈ACK,序号是下一个应该发送的字节的序号,A收到后,就可以滑动窗口到对应的位置。例如B反馈ACK是7,那么A的滑窗可以移动到7位置,1-6删除。21-26可以发送。
5.9.2 超时重传时间的确定
TCP美发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到了,但是还没有收到数据,那么就重传这一报文段。
RTTs(new) = (1 - alpha) x (RTTs(old)) + alpha x (new RTT样本)
超时重传时间应略大于上面得出的加权平均往返时间RTTs。alpha推荐值是0.125.
这个公式的目的是根据网速和带宽的实时情况调整往返时间。
5.10 TCP如何实现流量控制P68
解决通信两端处理时间不一样的问题。通过实时调整滑窗尺寸的大小(尺寸甚至可以是0)来实现流量控制。接收端主动调整滑窗大小,发送端根据接收端发送的报文调整相应的滑窗。发送端也会定时发送报文向接收端确认滑窗信息,避免接收端发送的相关调整滑窗大小的报文丢失带来的影响。
5.11 TCP如何避免网络拥塞
(1)出现资源拥塞的条件:对资源需求的总和>可用资源。
(2)拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由区,以及与降低网络传输性能有关的所有因素。
(3)流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,它所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
5.11.1 拥塞控制起到的作用
红线和绿线之间是数据丢失内容。
(1)发送方维持 拥塞窗口cwnd(congestion window)
(2)发送方控制拥塞窗口的原则是:
只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去;
只要网络出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的分组数。
(3)慢开始算法的原理
(4)设置慢开始门限状态变量ssthresh
慢开始门限状态变量ssthresh的用法如下:
当cwnd<ssthresh时,使用慢开始算法;
当cwnd>ssthresh时,停止使用慢开始算法,改用拥塞避免算法;
当cwnd=ssthresh时,使用慢开始算法或拥塞避免算法均可;
(5)拥塞避免算法的思路
让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长。
(6)当网络出现拥塞时对策
无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半(但是不能小于2)。
然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。
这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够的时间吧队列中积压的分组处理完毕。
(7)慢开始和拥塞避免算法的实现举例
->拥塞避免并非指完全能够避免拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。
->拥塞避免是说在拥塞避免阶段吧拥塞避免窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
5.11.3 快重传和快恢复
快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认,这样做可以让发送方及早知道有报文段没有到达接收方。
当发送端收到连续三个重复的确认时,就执行“乘法减少”算法,即把慢开始门限ssthresh减半,但拥塞窗口cwnd现在不设置为1,而是设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
5.11.4 发送窗口的实际上限制
取接收方窗口和 拥塞窗口 这两个变量中的较小值。
发送窗口的上限制 = min {rwnd, cwnd}.
5.12 TCP传输连接管理
传输连接有三个阶段,即:连接建立,数据传送,连接释放。
TCP连接的建立都是采用客户服务器方式。
主动发起连接建立的应用进程叫做客户(client)。
被动等待连接建立的应用进程叫做服务器(server)。头两次握手除了确定双方都能联通外,还通知了双方的一些端口信息。
第三次握手原因:假如把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定A给B发送一个连接请求分组,B收到了这个分组,并发送了确认应答分组。按照两次握手的协定,B认为连接已经成功地建立了,可以开始发送数据分组。可是,B的应答分组在传输中被丢失的情况下,A将不知道B是否已准备好,A认为连接还未建立成功,将忽略B发来的任何数据分组,这样就形成了死锁。
结束传输时:
A 必须等待 2MSL 的时间
第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。
第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
第六章 应用层
域名系统DNS (Domain Name System)
动态主机配置协议DHCP
文件传送协议FTP (File Transfer Protocol)
远程终端协议TELNET
远程桌面RDP
万维网WWW (World Wide Web)
电子邮件 (SMTP, POP3, IMAP)
6.1 域名协议DNS(Domain Name System)
6.1.1 作用
把域名解析为IP地址。例如打得开QQ(可以直接用IP地址登陆),打不开网络可能是域名问题。
8.8.8.8 是google的DNS服务器,222.222.222.222是电信的DNS服务器,能够用来帮忙解析域名地址。
6.1.2 域名
根 .
顶级域名 com, edu, net,cn,org,gov
二级域名 91xueit, inhe,例如91xueit.com是全球唯一的域名。
三级域名 dba,例如www.dba.91xueit.comPing或nslookup能得到IP地址。或者直接输入网址。
6.2 动态主机配置系统DHCP(同一个网段)
(1)静态IP地址
(2)动态IP地址
(3)DHCP客户端请求IP地址的过程
我的理解这是一个动态IP地址的请求和分配过程。客户机在网中发广播请求地址,目标IP是4个255,目标MAC地址是全FF。DHCP收到后,会从地址池里选一个给客户机。如果网络中有2个DHCP服务端且都给了反馈,此时计算机还需要返回一个数据通知他选择了谁提供的地址。另一个DHCP客户端发现没要他的,于是收回他提供的。从这个角度看,网络中不能有太多的DHCP服务端。
(4)DHCP服务器的安装
必须是固定的IP地址。释放命令为ipconfig /release
(5)DHCP跨网段配置IP地址
需要DHCP配IP地址的计算机,需要在他所在的网络的路由器的网关上配置IPhelper address,再访问到DHCP。
6.3 文件传输协议FTP(File Transfer Protocol)
6.3.1 FTP使用的两个TCP连接
FTP的连接方式包括控制连接和数据连接。每上传/下载一个文件就会建立一个会话。
控制连接:标准端口为21,用于发送FTP命令信息。
数据连接:标准端口为20,用于上传/下载数据。
6.3.2 FTP数据连接(上图的TCP数据连接)
涉及到主动模式和被动模式
(1)主动模式:FTP客户端告诉FTP服务器(的21端口)它在使用什么端口侦听,然后FTP服务器(的20端口)主动地和FTP客户端的这个端口建立连接。
(2)被动模式:FTP服务器端打开在指定范围内的某个新的端口(例如1089端口)并且进行侦听,被动地等待客户端发起连接。
综上,在有防火墙的情况下,如果使用被动模式,防火墙不得不开很多端口来监听。因此应该使用主动模式来进行数据连接,并在防火墙开21和20端口。
6.3.3 FTP传输模式
文本模式:ASCII模式,以文本序列传输数据。
二进制模式:Binary模式,以二进制序列传输数据。
6.4 远程终端协议telnet
默认使用TDP23端口。
6.5 远程桌面协议RDP(Remote Desktop Protocol)
6.6 超文本传输协议HTTP(Hyper Text Transfer Protocol)
通过这个协议访问网站。
6.6.1 万维网www(World Wide Web)
(1)www提供分布式服务(2)统一资源定位系统URL(Uniform Resource Locator)
有点像地址。
网站的标识有多种方式,不同的端口,不同的IP地址,不同的域名(主机头)来区分。
6.6.2 使用web代理服务器访问网站
内网其它主机不能通过路由访问Internet,只能由web代理(在同一个网段里)访问外网,然后内网其它主机访问这个web代理来实现上网功能。如果web代理在外网,反而速度更慢。
(1)节省内网访问Internet的带宽(便于访问内容变化不大的网站)。
(2)绕过防火墙访问外网。例如访问某个禁止的网站A,但是假如通过在与A同一个网络中的web代理,就可以访问该网站。
(3)通过web代理避免被跟踪。
6.7 电子邮件(SMTP, POP3, IMAP)
SMTP发, POP3和IMAP是收。
第七章 网络安全
7.1 网络安全介绍
7.1.1 一个入侵实例
(1)端口扫描,指定一个公网范围扫描端口的地址,调查哪些主机开了1433端口。
(2)将地址拷贝到某个破解数据库管理员密码的软件。
7.1.2 安全包括哪些方面
(1)数据(文件/文件夹)存储安全
(2)应用程序安全
(3)操作系统安全
(4)网络安全
(5)物理安全
(6)用户安全教育
7.2 计算机网络上的通信面临的威胁
(1)截获——从网络上窃听他人的通信内容。(被动攻击)(例如cain软件)
(2)中断——有意中断他人在网络上的通信。(主动攻击)
(3)篡改——故意篡改网络上发送的报文。(主动攻击)(例如cain软件)
(4)伪造——伪造信息在网络上传送。(主动攻击)
例如,cain软件能够截获和篡改本网段的的报文。它是在主机通过ARP协议寻找网关地址(想上网)的时候,用ARP欺骗,把本电脑的地址发给那个主机,此时,网段内的所有的计算机的报文都会发给cain,这样主机访问外网的时候,都是通过cain访问的(主机访问cain提供的假域名,cain去访问真的域名,再把信息转给主机,这是一种DNS劫持),既能篡改DNS解析结果,还能获取密码。同样的道理,局域网管理员可以在网关设置监视端口,获得本网段的所有信息。
7.2.1 被动攻击和主动攻击
中断——拒绝服务式攻击
举例:DoS拒绝服务式攻击,通过在网络上拥挤一些没用的数据包来组断网络。一般会占用下载通道ADSL而不是上传通道UDP,因为下载的带宽要大得多。
DDoS分布式攻击,可以在网络上找很多有漏洞的网站(肉鸡),给指定的服务器发流量来使网络拥挤吃掉带宽,对于这种方式没有什么好办法。
篡改——修改域名解析的结果
类似于钓鱼网站,当用户想出入建设银行的域名,解析错误导致用户访问了错误的网站,当用户输入账号密码的话就会导致信息泄漏。
伪造——伪装成其它主机的IP地址
趁其它主机关机时,把IP地址伪装成该主机的IP地址,从而获取信息。
7.3 计算机面临的威胁——恶意程序(rogue program)
(1)计算机病毒——会“传染”其它程序,“传染”是通过修改其它程序来把自身或其变种复制进去完成的。(熊猫烧香)
(2)计算机蠕虫——通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。(消耗CPU资源)
(3)特洛伊木马——一种程序,它执行的功能超过所声称的功能。(和(1)(2)的区别是会和外界通信)
(4)逻辑炸弹——一种当运行环境满足某种特定条件时执行其它特殊功能的程序。
7.3.1 木马程序的识别
查看会话netstat -n看看是否有可疑的会话;
运行msconfig服务,把隐藏微软服务掉,看看剩下的有哪些刻意;
杀毒软件。
7.4 加密技术
广泛应用于应用层加密。
7.4.1 对称加密
加密密钥和解密密钥是同一个。
缺点:密钥不适合在网上传;密钥是一对一的,如果有很多主机相互通信,有很多密钥需要维护;
优点:效率高。
加密包括加密算法和加密密钥。
7.4.2 数据加密标准DES
(1)它属于常规密钥密码体制,是一种分组密码。在加密前,先对整个铭文进行分组,每一个租场为64位,然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得出整个密文。使用的密钥是64位(实际密钥长度位56位,有8位数用来奇偶校验)。
(2)DES的保密性
仅取决于对密钥的保密,而算法本身是公开的。尽管人在破译DES上有很多进展,但是至今没有找到比穷举搜索密钥更有效的方法。
DES是世界上第一个公认的使用密码算法标准,它曾对密码学的发展做出了重大贡献。
目前较为严重的问题是DES的密钥的长度。
现在已经设计出来搜索DES密钥的专用芯片。
DES算法公开,所以破解取决于密钥长度,56位密码破解需要3.5-21min;128位密钥破解需要5.4*10^18年。
7.4.2 非对称加密
(1) 加密密钥和解密密钥是不同的,有一对密钥对,公钥和私钥。
要么公钥加密私钥解密;要么私钥加密公钥解密。
(2)优点:给出私钥和公钥其中一个无法算出另一个。
(3)缺点:效率低。
(4)非对称加密实现细节:
设A是非对称加密机制;B为对称加密机制;A1要给A2传一组数据,很大,如果直接用非对称加密花的时间很长;为了加快速度,用对称加密手段B来加密这个数据得到加密后数据B’和密钥B给A1,速度很快;然后A1对密钥B进行非对称加密得到公钥A1’;A1把密钥A1’和数据B’发给A2;A2运用私钥解密A1’获得密钥B,再用密钥B解密这个数据,最终得到想要的结果。
通过这种对数据采用对称加密,对对称加密的密钥进行非对称加密的方式能实现快速加密。
7.4.3 数字签名
防止抵赖,能够检查签名后的内容有没有被更改过。
7.4.4 证书颁发机构CA
来验证公钥是否是证书颁发机构认证过。
为企业和用户办法数字证书,确认这些企业和个人的身份;
如果证书丢失,它要发布证书吊销列表;
企业和个人是信任证书颁发机构的。
7.5 Internet上使用的安全协议
7.5.1 安全套接字SSL(Secure Sockets Layer)
(1)SSL的位置
是在应用层和传输层之间进行加密。好处是应用层和传输层都不需要来加密。不需要应用程序(应用层)来支持,但是需要在服务器配置证书。
例如,不使用SSL加密使用的是http://,使用SSL加密是https://。
注意,http://使用的是TCP的80端口,而https://使用的是TCP的443端口。
(2)SSL的配置(加密的实现)(https://)
客户端有一个浏览器IE,想要访问服务器端的网站web;
浏览器IE要访问网站web,此时网站web会把他的公钥给浏览器IE;
浏览器IE通过校验CA证书确保网站web的公钥是可靠的;
浏览器IE会产生一个对称密钥;
浏览器IE拿着网站web的公钥对它的对称密钥进行加密,发给网站web;
网站web用它的私钥进行解密,就得到了浏览器IE的对称密钥;
所以说,本质上是用对称密钥对数据进行加密的,公钥和私钥是用来对这个对称密钥进行加密的。这也是为什么https://刚开始打开的时候会有一些慢。
(3)另外一些协议使用的安全套接字SSL时对应的TCP端口
imaps tcp-993
pop3s tcp-995
smtps tcp-465
https tcp-443
(4)SSL提供的三个功能
->SSL服务器鉴别:允许用户证实服务器的身份;具有SSL功能的浏览器维持一个表,上面有一些可信赖的认证中心CA(Certificate Authority)和它们的公钥。
->加密的SSL会话:客户和服务器交互的所有数据都在发送方加密,在接收方解密。
->SSL客户鉴别:允许服务器证实客户的身份。
7.5.2 网络层安全IPSec
网络层安全是底层安全,不需要应用程序支持,也不需要配置证书,对用户是透明的(感觉不到)。
(1)安全关联SA(Security Association)
在使用AH或ESP之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联SA。
IPsec就把传统的Internet无连接的网络层转换为具有逻辑连接的层。
SA是构成IPSec的基础,是两个通信实体经过协商(利用IKE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议(只签名:只关心发送方的身份而不关心数据是否被窃取)或ESP协议(既签名又对数据加密)),转码方式,密钥及密钥的生存周期等。
(2)IPsec中最主要的2个协议
->鉴别首部AH(Authentication Header):AH鉴别源点和检查数据完整性,但不能保密。
在使用AH时,把AH首部插在原数据报数据部分的签名,同时把IP首部中的协议字段设置为51.
在传输过程中,中间的路由器都不查看AH首部。当数据报到达终点时,目的主机才会处理AH字段,以鉴别源点和检查数据报的完整性。>封装安全有效载荷ESP(Encapsulation Security Payload):ESP比AH复杂的多,它鉴别源点,检查数据完整性和提供保密。
使用ESP时,IP数据报首部的协议字段设置为50.当IP首部检查到协议字段是50时,就知道在IP首部后面紧跟着ESP首部,同时在原IP数据报后面增加了2个字段,即ESP尾部和ESP数据。
7.6 数据链路层安全(链路加密与端到端加密)
PPP 身份验证
ADSL
7.7 防火墙(firewall)
防火墙用来解决内联网和外联网的安全问题。
防火墙是由软件,硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。接入控制策略是由防火墙的单位自行制定的,为的是可以最适合本单位的需要。
防火墙内的网络称为“可信赖的网络”(trusted network),而将外部的Internet称为“不可信赖的网络”(untrusted network)。
7.7.2 防火墙在互联网中的位置
7.7.3 防火墙的功能
(1)阻止:阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
(2)允许:允许某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
防火墙必须能够识别通信量的各种类型。一般是阻止功能。
7.7.4 防火墙技术的分类
(1)网络层防火墙:用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。
可以基于数据包,源地址,目标地址,协议和端口来控制流量。
(2)应用层防火墙:从应用程序来进行接入控制,通常使用应用网关或代理服务器来区分各种应用。例如,可以只允许用过访问www的应用,而阻止FTP应用的通过。
应用级防火墙可以检查数据报的内容。
可以基于数据包,源地址,目标地址,协议和端口,用户名,时间段来控制内容,可以放病毒,可见功能更强大。
7.7.5 防火墙的结构
(1)边缘防火墙
(2)三向外围网 DMZ是公司内部的服务器。内网可以访问外网,外网不能访问内网,只能访问服务器DMZ。
(3)背靠背防火墙
(4)单一网卡防火墙