每天五个java相关面试题(5)--主要关于网络协议(重点)

今天主要是网络线程方面的,内容有点多慢慢记。。。但是是面试中非常重要的知识点。所以需要多加记忆和理解。

1.OSI七层模型,每一层的功能 (osi开放式系统接口)

答:
这里写图片描述
物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。

传输层:定义了一些传输数据的协议和端口号(WWW端口80等)

—数据传送服务(上面说的4个) (下面说的3个)面向终端用户—

会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路

表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

应用层: 是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

2. TCP/IP的四层模型,每一层的功能

这里写图片描述
上图是对应的到osi层的内容。
主机到网络层:实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。

网络互连层:定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。

传输层:在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。

应用层(会话层,表示层,应用层): TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。  
 应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。

3. IP协议是什么, IPv4的协议包封装结构, 及该结构中的每个数据域的意思?

答:
IP协议:用于将多个包交换网络连接起来的,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。

这里写图片描述

版本号(VERS): 4比特,表示IP协议版本号。目前的版本号是4,即IPv4。版本号规定了数据报的格式。版本不同,其数据报格式也有所不同,如IPv6的报文结构就和IPv4的结构不同。

报文头长度(HLEN): 4比特,表示报文头长度。报文头长度以4 Byte为单位计算。除IP选项(IP Options)和填充(Padding)字段可以不存在外,其他各字段必须存在。这些必须存在的字段是5个4 Byte,共20 Byte长。因此,报文头长度值一般是5 。又由于报文头长度必须是32比特的整数倍,所以当一个含有IP选项字段的IP数据报不是32比特的整数倍时,由填充字段用0补足。

服务类型(Type of Service): ToS字段,8比特,指示对本数据报的处理方式。它主要用来指示数据报的优先权及传输类型。QoS技术就是使用此字段对数据进行标记优先级的。

**总长(Total Length):**16比特,以Byte为单位表示整个IP数据报长度,包括报文头及其携带的数据。因为总长字段是16比特,所以IP数据报最长可达216 1=65 535字节。

标识(Identification): 16比特,是发送者赋予数据报的标识符,接收者利用这个信息和源地址判断收到的分组属于哪个数据报,以便进行重组。因此,在分片时,该域必须不加修改地复制到各分片的报文头中。

标志(Flags): 3比特,只有低两位有效。第一比特为0时表示该分片是最后一片,如果该位是1表示后面还有分片。第二比特为0时表示可以对数据报进行分片,如果该位是1表示数据报不能分片。当该位设置为1而帧长度不匹配又必须分片时,设备就会将数据报丢弃并返回错误信息。

片偏移(Fragment Offset):指示本分片数据在初始数据报数据区中的偏移量,偏移量以8 Byte为单位,重组时分片顺序由片偏移提供。

生存时间(Time To Live):简称TTL,8比特,用来控制数据报在网络中存在的时间。目前TTL的值并不代表时间,而是代表经由路由器的个数。数据报每经过一台路由器时,路由器将TTL值减1,一旦TTL=0,系统就丢弃该数据报,并返回错误信息。这样避免了路由出现环路时数据报在路由器之间无休止地循环。

协议(Protocol): 8比特,表示该数据报携带的数据是由哪个上层协议封装的,也就是指示传输层的协议类型。如最常见的协议类型是TCP或UDP。

头校验和(Header Checksum): 16比特,用于保证IP头数据的完整性。

地址(Address):分为源IP地址和目的IP地址,各占32比特,表明数据的来源及其到达的目的地。

填充(Padding):当IP报文头长度不是32比特的整数倍时,填充0来凑齐32比特整数倍,没有实际意义。

数据(Data):来自第4层的数据段。

4. TCP协议是什么?TCP数据包结构? TCP建立联接的三次握手,断开连接的四次挥手的过程?

答:
TCP: TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。

数据包结构:
这里写图片描述

三次握手形象的说:我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
这里写图片描述

四次挥手:
这里写图片描述

5.一次完整的HTTP请求所经历的7个步骤?

答:
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

  • 建立TCP连接
    在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。
  • Web浏览器向Web服务器发送请求命令
    一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。
  • Web浏览器发送请求头信息
    浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
  • Web服务器应答
    客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。
  • Web服务器发送应答头信息
    正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。
  • Web服务器向浏览器发送数据
    Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
  • Web服务器关闭TCP连接
    一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive
    TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

你可能感兴趣的:(面试题)