计算机网络相关问题

计算机网络相关问题

①TCP三次握手和四次挥手

三次握手(创建)

1)客户端–发送带有SYN标志的数据包–一次握手–服务端
2)服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端
3)客户端–发送带有带有ACK标志的数据包–三次握手–服务端

第二次握手中,服务端为何要传回SYN(发起一个新链接)?

接收端传回发送端所发送的SYN是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。

双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号来进行验证。

四次挥手(断开)

1)客户端-发送一个FIN,用来关闭客户端到服务器的数据传送
2)服务器-收到这个FIN,发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号
3)服务器-关闭与客户端的连接,发送一个FIN给客户端
4)客户端-发回ACK报文确认,并将确认序号设置为收到序号加1

②在浏览器中输入url地址->>显示主页的过程(完整描述)

域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) –> 浏览器对页面进行渲染呈现给用户

③HTTP和HTTPS的区别

④TCP、UDP协议的区别

UDP:

UDP在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP确是一种最有效的工作方式(一般用于即时通信),比如: QQ语音 QQ视频 、直播等等

1)无连接
2)尽力交付,不保证可靠
3)面向报文
4)没有拥塞控制(网络出现拥塞不会使源主机的发送速率降低,对实时应用很有用)
5)支持一对一,一对多,多对多交互通信
6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

TCP:

TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的,面向连接的运输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接,四次挥手,用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP一般用于文件传输、发送和接收邮件、远程登录等场景。

1)面向连接(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接)
2)TCP连接只能是点对点的(一对一)
3)可靠(通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达)
4)TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据
5)面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

⑤常见的状态码

1XX informational(信息性状态码) 请求正在处理

2XX Success(成功状态码) 请求正常处理完毕

3XX Redirection(重定向状态码) 需要进行附加操作才能完成请求

4XX Client Error(客户端错误状态码) 服务无法处理请求

5XX Server Error(服务端错误状态码) 服务端处理请求出错

计算机网络知识回顾

#计算机网络知识回顾

OSI七层模型:

被一些大公司甚至一些国家政府支持的OSI失败的原因:

1)OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力

2)OSI的协议实现起来过分复杂,而且运行效率很低

3)OSI制定标准的周期太长,占领市场失败,使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来,但基于TCP/IP的互联网已经抢先在全球相当大的范围成功运行了)OSI的层次划分不太合理,有些功能在多个层次中重复出现

###OSI七层结构:

  • 应用层
  • 表示层
  • 会话层
  • 运输层
  • 网络层
  • 数据链路层
  • 物理层

###TCP\IP四层协议:

  • 应用层(各种应用层协议TELNET,SMTP,FTP)
  • 运输层(TCP UDP)
  • 网际层(IP)
  • 网络接口层

###五层协议体系结构:

  • 应用层
  • 运输层(TCP\UDP)
  • 网络层(IP)
  • 数据链路层
  • 物理层

应用层

应用程序间的网络通信交互规则

应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用层交互的数据单元称为报文。

DNS(Domain Name System)

域名系统是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(百度百科)例如:一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。

HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

传输层

传递应用层报文

运输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。

-传输控制协议TCP(Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务。
-用户数据协议UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。

网络层

打包报文段或用户数据,并找寻合适的路由,进而找到目标主机

网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫IP数据报,简称数据报。

数据链路层

两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。

在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装程帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层.

物理层

在物理层上所传送的数据单位是比特。实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。