美文网首页
Java基础(十二)

Java基础(十二)

作者: isuntong | 来源:发表于2020-01-31 19:31 被阅读0次

    计算机网络

    一、OSI、TCP/IP、五层协议的体系结构、以及各层协议作用
    二、TCP三次握手、四次挥手全过程
    三、TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
    四、TCP的滑动窗口,流量控制和拥塞控制,快重传和快恢复,超时重传
    五、TCP和UDP的区别?
    六、IP地址的分类
    七、在浏览器中输入www.baidu.com后执行的全部过程
    八、各种协议的介绍
    九、ARP是地址解析协议,简单语言解释一下工作原理。
    十、RARP

    一、 OSI、TCP/IP、五层协议的体系结构、以及各层协议作用

    OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

    TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。

    五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。

    每一层的协议如下:

    物理层:RJ45、CLOCK、IEEE802.3(中继器、集线器)
    数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
    网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
    传输层:TCP、UDP、SPX
    会话层:NFS、SQL、NETBIOS、RPC
    表示层:JPEG、MPEG、ASII
    应用层:FTP、DNS、HTTP、SMTP、WWW、NFS、Telent

    每一层的作用如下:

    物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
    数据链路层:将比特组装成帧和点到点的传递(帧Frame)
    网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
    传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
    会话层:建立、管理和终止会话(会话协议数据单元SPDU)
    表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
    应用层:允许访问OSI环境的手段(应用协议数据单元APDU)

    二、TCP三次握手、四次挥手全过程

    https://blog.csdn.net/sinat_41144773/article/details/88314735

    三、TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

    建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。
    (1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。
    (2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
    (3)采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。

    四、TCP的滑动窗口,流量控制和拥塞控制,快重传和快恢复,超时重传

    TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。
      滑动窗口协议:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;2. “滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,方式就是按顺序“滑动”。
      流量控制,主要是接收方传递信息给发送方,使其不要发送数据太快,是一种端到端的控制。主要的方式就是返回的ACK中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。
      拥塞控制:就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。常用的方法就是:(1)慢开始、拥塞控制(2)快重传、快恢复。
      数据在传输时不仅一个窗口协议,还有一个拥塞窗口来控制数据的流量,使得数据不会一下子都跑到网路中引起“拥塞”。拥塞窗口最初使用指数增长的速度来增加自身的窗口,直到发生超时重传,再利用拥塞避免算法和慢启动门限进行一次微调。
      拥塞避免算法就是:每经过一个往返时间RTT就把发送方的拥塞窗口+1,即让拥塞窗口缓慢地增大,按照线性规律增长;当出现网络拥塞,比如丢包时,将慢开始门限设为原先的一半,然后将cwnd设为1,执行慢启动算法(较低的起点,指数级增长);
      慢启动门限就是说,当拥塞窗口超过门限时,就使用拥塞避免算法,而在门限以内就采用慢启动算法。通常拥塞窗口记做cwnd,慢启动门限记做ssthresh。
      慢开始和拥塞控制算法常常作为一个整体使用,而快重传和快恢复则是为了减少因为拥塞导致的数据包丢失带来的重传时间,从而避免传递无用的数据到网络。
      快重传的机制是:
      1.接收方如果发现一个包丢失,则对后续的包继续发送针对该包的重传请求;
      2. 一旦发送方接收到三个一样的确认,就知道该包之后出现了错误,立刻重传该包;
      3. 此时发送方开始执行“快恢复”算法:
          1. 慢开始门限减半;
          
    2. cwnd设为慢开始门限减半后的数值;
          3. 执行拥塞避免算法(高起点,线性增长);
      
    超时重传*是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。

    五、TCP和UDP的区别?

    1. TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
    2. TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
    3. TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
    附:TCP对应的协议和UDP对应的协议
    TCP对应的协议
    (1) FTP:定义了文件传输协议,使用21端口。
    (2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
    (3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
    (4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
    (5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。默认端口:80
    UDP对应的协议
    (1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
    (2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
    (3) TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

    六、IP地址的分类

    IP地址根据网络ID的不同分为5种类型,A类、B类、C类、D类和E类。

    A类:1字节的网络地址和3字节的主机地址组成。以0开头。范围:1.0.0.1~126.255.255.254
    B类:2字节的网络地址和2字节的主机地址。以10开头。范围:128.0.0.1~191.255.255.254
    C类:3字节的网络地址和1字节的主机地址。以110开头。范围:192.0.0.1~223.255.255.254
    D类:是专门的保留地址,用于多播,以1110开头。范围:224.0.0.1~239.255.255.254
    E类:是以“11110”开始,为将来使用保留

    在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:

    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
    另外IPv6地址长度为128位。

    七、在浏览器中输入www.baidu.com后执行的全部过程

    1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
      2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
      3、客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
      4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

    八、各种协议的介绍

    ICMP协议:因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
    TFTP协议:是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
    HTTP协议:超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
    DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
    NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术

    九、ARP是地址解析协议,简单语言解释一下工作原理。

    1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
    2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
    3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

    4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

    广播发送ARP请求,单播发送ARP响应。

    十、RARP

    RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

    https://blog.csdn.net/ethan__xu/article/details/98852563

    相关文章

      网友评论

          本文标题:Java基础(十二)

          本文链接:https://www.haomeiwen.com/subject/sccgthtx.html