计算机网络
1、拥塞控制和阻塞控制的区别
- 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承度受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。
- 流量控制:指点对点通信量的控制,是端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
端到端与点到点是针对网络中传输的两端设备间的关系而言的。
说法一:
端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就象它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。
点到点系统指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。
端到端传输的优点是链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发,因此传输延迟小。端到端传输的缺点是直到接收端收到数据为止,发送端的设备一直要参与传输。如果整个传输的延迟很长,那么对发送端的设备造成很大的浪费。端到端传输的另一个缺点是如果接收设备关机或故障,那么端到端传输不可能实现。 点到点传输的优点是发送端设备送出数据后,它的任务已经完成,不需要参与整个传输过程,这样不会浪费发送端设备的资源。另外,即使接收端设备关机或故障,点到点传输也可以采用存储转发技术进行缓冲。点到点传输的缺点是发送端发出数据后,不知道接收端能否收到或何时能收到数据。在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。如Internet网,IP及以下各层采用点到点传输,4层以上采用端到端传输。
说法二:
一句话概括就是端到端是由无数的点到点实现和组成的。 A---------B---------C----------D | | | | E---------F ,一个报文从A到D,经过B、C ,A到D的安全叫端到端的安全,而A到B、B到C、C到D的安全叫点到点的安全。点到点是物理拓扑,如光纤,就必须是点到点连接,DDN专线也是,即两头各一个机器中间不能有机器。
点到点是网络层的,传输层只认为数据是从a直接到e的,但实际不是这样的,打个比方,传输层好象领导,他发布命令:要干什么什么事,但真正干的不是他,真正干的是员工,也许领导认为很简单一句话就可以干好的事,在员工眼里却是难于登天,手续极其烦琐,所以传输层是发布命令的领导,他说的是命令,也就是最终的目的,所以他只看到最初的地址和最终的地址,既一个任务的两个端点,网络层就相当于员工,领导的任务我要一步一步的作完,先从a到b,再从b到c…,所以他看到的只是整个任务的一个阶段,a到b、b到c…这就是点到点。
端到端是网络连接。网络要通信,必须建立连接,不管有多远,中间有多少机器,都必须在两头(源和目的)间建立连接,一旦连接建立起来,就说已经是端到端连接了,即端到端是逻辑链路,这条路可能经过了很复杂的物理路线,但两端主机不管,只认为是有两端的连接,而且一旦通信完成,这个连接就释放了,物理线路可能又被别的应用用来建立连接了。TCP就是用来建立这种端到端连接的一个具体协议,SPX 也是。 端到端是传输层的,你比如你要将数据从A传送到E,中间可能经过A->B->C->D->E,对于传输层来说他并不知道b,c,d的存在,他只认为我的报文数据是从a直接到e的,这就叫做端到端。
说法三:
点到点是数据链路层的说法,因为数据链路层只负责直接相连的两个节点之间的通信,一个节点的数据链路层接受ip层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个节点。
端到端是传输层的说法,因为无论tcp还是udp协议,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少节点。只不过tcp比较可靠而udp不可靠而已。所以称之为端到端,也就是从发送端到接收端。
2、为什么需要网络层和路由
网络层处于数据链路层和传输层之间,它在数据报文包的传递中起到了重要作用。
- 路由功能:选择从一点到另一点发送数据包的最佳路径。
- 存储、转发、交换:
- 拥塞控制
- 呼叫准入
- 分类的功能
- 网络层的功能属于通信子网,它通过网络连接交换传输层发出的实体数据。在交换过程中,选择合适的传输路径,解决网络中出现的局部拥挤或全面阻塞。此外,网络层还应有记账功能,一边通过网络中交换的分组或字符度数、位数收取费用。
当传输的数据跨越一个网络边界时,网络层根据不同的分组长度、寻址方式道、通信协议进行交换,使得异构网络能够互相通信。
3、HTTPS和HTTP的区别
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
4、使用HTTP时需要使用的协议
HTTP处于应用层,TCP处于传输层,IP属于网络层。
HTTP实际上就是基于TCP/IP协议开发的,TCP/IP的网络模型没有照搬计算机网络的七层模型,而是整合了表示层,会话层,应用层,统一为应用层。
5、时延
时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。它是计算机网络的性能指标之一,网络中的时延包括发送时延(传输时延)、传播时延、处理时延、排队时延。
- 发送时延(传输时延) 是主机或路由器发送数据帧所需要的时间, 也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。
- 传播时延 是电磁波在信道中传播一定的距离需要花费的时间。
- 处理时延 是主机或路由器在收到分组时进行处理所需要的时间,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。
- 分组通过网络传输时,要经过很多路由器。分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这两个因素就造成了 排队时延 。
发送时延与传播时延有本质上的差别。发送时延发生在机器内部的发送器中(一般是发生在网络适配器中),与传播信道的长度无关。 而传播时延发生在机器外部的传播信道媒体上,与信号的发送速率无关。传播信道长度越长,传播时延就越大。
6、IP地址
- IP地址:网络中每个独立主机的每个接口都必须有一个唯一的internal地址。
IPV4 长度为 32 位(4 个字节)。地址由网络和主机部分组成,位数取决于地址类。
IPV6 长度为 128 位(16 个字节)。基本体系结构的网络数字为 64 位,主机数字为 64 位。 - 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。 需要注意zd的是网络号不能为127,这是因为该网络号被保留用作回路及诊断功能。
一个B类IP地址由2个字节的网络地址和2个字节的主机地答址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 - 一个局域网内IP地址不够用
改子网掩码、增加路由器、划分vlan
子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。
使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。
通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段。
网段是一个计算机网络中使用同一物百理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
为什么要进行网段划分呢?
我们寻找某台主机时,在同一个网段的主机网络号都是相同的,我们可以根据网络号确定一个区域,再通过主机号寻找目的主机。因此,我们需要知道:
1、IP地址分为两个部分, 网络号和主机号
2、网络号: 保证相互连接的两个网段具有不同的标识
3、主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;
4、不同的子网其实是把网络号相同的主机放到一起.
5、如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复。
6、主机号为1的一般都为路由器接口。
所以,通过合理设置网络号的主机号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同。
7、ARP协议
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在局域网中,网络中实际传输的单元是数据帧,数据帧的首部有目的主机的MAC地址,在以太网中,一个主机要和另一个主机进行直接通信,必须通过地址解析协议获得目的主机的MAC地址。
ARP协议应用于网络层,网络层协议可以使数据可以从一个网络传递到另一个网络上,ARP协议根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而把数据传送到目的网络。
8、DNS协议
ARP协议是用来将IP地址转换为MAC地址,DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
我们都知道,TCP/IP中使用的是IP地址和端口号来确定网络上某一台主机上的某一个程序,不免有人有疑问,为什么不用域名来直接进行通信呢?
- 因为IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理。
- IP地址对于用户来说不方便记忆,但域名便于用户使用,例如www.baidu.com这是百度的域名。
总结一点就是IP地址是面向主机的,而域名则是面向用户的。
9、TCP协议和UDP协议
TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的字节流服务,也就是说,在收发数据前,必须和对方建立可靠的连接。这一过程和打电话类似:先拨号振铃,等待对方接电话,说喂,再说自己是谁。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层。
UDP (User Datagram Protocol,用户数据报协议),是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种非连接的传输层协议,提供面向事务的简单不可靠信息传送服务,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,故也不安全。
TCP三次握手,四次挥手
为什么连接建立需要三次握手,而不是两次握手?
背景:A首先发送一个连接请求,但是该请求在网络节点上滞留了,没有收到确认。于是A重传了一次请求,并且收到了B的确认,于是连接建立,数据传输完成后,释放连接,假定A发出的第一个请求报文段并没有丢失,而是在某些网络节点上滞留,本来是一个失效的请求,但B收到后误认为是A再次发出一个新请求,于是向A发送确认,同意建立连接。
②假定采用两次握手,那么只要B发出确认,则新的连接就建立了。由于A并没有发出请求,因此不理会B的确认,也不会向B发送数据,但B却以为新的连接已经建立,并一直等待A的数据,B的许多资源就这样白白浪费了。
③假定采用三次握手,则B发出确认,但A因为并没有发请求,所以不理会B的确认,B没有收到A的确认,则连接建立失败,B知道连接建立失败。会回收资源。
④极端的情况可能由于Client用户端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要。
推荐博文:https://blog.csdn.net/u012662731/article/details/77877616
10、IP地址和MAC地址
IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:
1.对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。
2. 长度不同。IP地址为32位,MAC地址为48位。
3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。
4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
11、虚拟链路