计算机基础知识(三)

计算机基础知识:计算机网络


电路交换与分组交换的区别? 优劣对比。
电路交换的三个阶段:
(1)建立连接 (2)通信 (3)释放连接
电路交换具有下面优缺点:
长处:
(1)因为通信线路为通信两方用户专用,数据直达。所以数据传输的时延非常小。
(2)通信两方之间的屋里通路一旦建立。两方能够随时通信,实时性强。
(3)两方通信时按发送顺序传送数据,不存在失序问题。
(4)电路交换既适用于传输模拟信号,也适用于传输数字信号。
(5)电路交换的交换设备及控制均比較简单。
缺点:
(1)电路交换平均连接建立时间对计算机通信来说较长。
(2)电路交换家里连接后,物理通路被通信两方独占,即使通信线路空暇。也不能供其它用户使用,因而信道利用率低。
(3)电路交换时,数据直达,不同类型,不同规格,不同速率的终端非常难相互进行通信,也难以在通信过程中进行差错控制。
分组交换是以分组为单位进行传输和交换的,它是一种存储——转发交换方式。即将到达交换机的分组先送到存储器临时存储和处理,等到对应的输出电路有空暇时再送出。
分组交换具有下面优缺点。
长处:
(1)分组交换不须要为通信双反预先建立一条专用的通信线路。不存在连接建立时延,用户可随时发送分组。
(2)因为采用存储转发方式,加之交换节点具有路径选择。当某条传输线路故障时可选择其它传输线路。提高了传输的可靠性。
(3)通信双方不是固定一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。
(4)加速了数据在网络中的传输。因而分组是逐个传输。能够使后一个分组的存储操作与前一个分组的转发操作并行。这样的流水线式传输方式降低了传输时间。
(5)分组长度固定,对应的缓冲区的大小也固定,所以简化了交换节点中存储器的管理。
(6)分组较短。出错几率降低,每次重发的数据量也降低,不仅提高了可靠性,也降低了时延。
缺点:
(1)因为数据进入交换节点后要经历存储转发这一过程,从而引起的转发时延(包含接受分组、检验正确性、排队、发送时间等),并且网络的通信量越大,造成的时延就越大。实时性较差。
(2)分组交换仅仅适用于数字信号
(3)分组交换可能出现失序,丢失或反复分组。分组到达目的节点时。对分组按编号进行排序等工作。添加了麻烦。
综上,若传输的数据量非常大,并且传送时间远大于呼叫时间,则採用电路交换较为合适;当端到端的通路由非常多段链路组成时,采用分组交换较为合适。从提高整个网络的信道利用率上看,分组交换优于电路交换。

OSI各层作用和协议
这里写图片描述
应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用
表示层(数据):主要解决拥护信息的语法表示问题,如加密解密
会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制,如服务器验证用户登录便是由会话层完成的
运输层(段):实现网络不同主机上用户进程之间的数据通信,可靠
与不可靠的传输,传输层的错误检测,流量控制等
网络层(包):提供逻辑地址(IP)、选路,数据从源端到目的端的
传输
数据链路层(帧):将上层数据封装成帧,用MAC地址访问媒介,错误检测与修正
物理层(比特流):设备之间比特流的传输,物理接口,电气特性等
知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)

数据交换设备
网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连)
路由器:网络层(路由选择、存储转发)
交换机:数据链路层、网络层(识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中)
网桥:数据链路层(将两个LAN连起来,根据MAC地址来转发帧)
集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)
中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在网络上传输更长的距离)

ARP
ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系。
工作在第二层或第三层,无明确定义
工作过程
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

IP分组转发
1、从数据报的首部提取目的主机的IP地址D,计算出目的主机的网络地址N。
(将IP数据报中目的主机的IP地址和路由表上的子网掩码进行&运算,就可以得出网络地址N)
2、若N就是与此路由器直接相连的某个网络的网络地址。则直接进行交付,不需要经过其他路由器,而是直接将IP数据报交付给目的主机。
(注意,直接交付时,路由器需要将目的主机地址D转换为具体的硬件地址,把数据报封装在MAC帧,在发送此帧。)
若N不是与此路由器直接相连的网络,就进行间接交付。执行3或执行4

3、若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4。
(这是特殊情况)
4、若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行5。
5、如果3和4都没能将IP数据报转发出去,若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认
路由器;负责,执行6
6、报告转发分组出错。

IP报文及字段含义
IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图(图片来源:百度百科)
这里写图片描述
版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
服务类型:Type Of Service。
总长度:IP报文的总长度。报头的长度和数据部分的长度之和。
标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.
首部校验和:计算IP头部的校验和,检查IP报头的完整性。
源IP地址:标识IP数据报的源端设备。
目的IP地址:标识IP数据报的目的地址。
TCP报文
这里写图片描述
32位端口号:
源端口和目的端口各占16位,2的16次方等于65536,看端口的命令:netstat。
32位序号:
也称为顺序号(Sequence Number),简写为SEQ,
32位确认序号:
也称为应答号(Acknowledgment Number),简写为ACK。在握手阶段,确认序号将发送方的序号加1作为回答。
4位首部长度:
这个字段占4位,它的单位时32位(4个字节)。本例值为7,TCP的头长度为28字节,等于正常的长度2 0字节加上可选项8个字节。,TCP的头长度最长可为60字节(二进制1111换算为十进制为15,15*4字节=60字节)。
6位标志字段:
ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。
SYN 置1时用来发起一个连接。
FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。
URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。注:一般不使用。
PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。注:一般不使用。
16位检验和:
检验和覆盖了整个的TCP报文段: TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。
16位紧急指针:
注:一般不使用。
只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
可选与变长选项:
通常为空,可根据首部长度推算。用于发送方与接收方协商最大报文段长度(MSS),或在高速网络环境下作窗口调节因子时使用。首部字段还定义了一个时间戳选项。
最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方通常都在握手的第一步中指明这个选项。它指明本端所能接收的最大长度的报文段。1460是以太网默认的大小。
TCP三次握手和四次挥手
这里写图片描述

这里写图片描述

问题
1. 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
因为网络原因,主动关闭的一方发送的这个ACK包很可能延迟,从而触发被动连接一方重传FIN包。极端情况下,这一去一回,就是两倍的MSL时长。如果主动关闭的一方跳过TIME_WAIT直接进入CLOSED,或者在TIME_WAIT停留的时长不足两倍的MSL,那么当被动关闭的一方早先发出的延迟包到达后,就可能出现类似下面的问题:1.旧的TCP连接已经不存在了,系统此时只能返回RST包2.新的TCP连接被建立起来了,延迟包可能干扰新的连接,这就是为什么time_wait需要等待2MSL时长的原因。
2. 为什么不能两次握手:(防止已失效的连接请求又传送到服务器端,因而产生错误)
假设改为两次握手,client端发送的一个连接请求在服务器滞留了,这个连接请求是无效的,client已经是closed的状态了,而服务器认为client想要建立一个新的连接,于是向client发送确认报文段,而client端是closed状态,无论收到什么报文都会丢弃。而如果是两次握手的话,此时就已经建立连接了。服务器此时会一直等到client端发来数据,这样就浪费掉很多server端的资源。

TCP流量控制和拥塞控制
点击跳转
HTTP报文格式及含义
点击跳转

ICMP
ICMP的全称是 Internet Control Message Protocol 。从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:
侦测远端主机是否存在
建立及维护路由资料
重导数据传送路径
数据流量控制

猜你喜欢

转载自blog.csdn.net/beyond_2016/article/details/81187421