计算机网络


1 TCP/IP 网络模型有哪几层?

TCP/IP四层协议(数据链路层、网络层、传输层、应用层)

  • 应用层应用层最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服 务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,TELNET等。

  • 传输层 建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输 服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到 的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说 的,TCP UDP就是在这一层。端口号既是这里的“端”。

  • 网络层 本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由 和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说 的IP协议层。IP协议是Internet的基础。

  • 数据链路层 通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,

2.TCP和UDP的区别?

image-20230227164139932

TCP用于在传输层有必要实现可靠传输的情况,UDP用于对高速传输和实时性有较高要求的通信。TCP和UDP应该根据应用目的按需使用。

3.TCP和UDP的应用场景

  • 对某些实时性要求比较高的情况使用UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以 容忍;
  • 其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失的情况

4.什么是Http协议?

  • Http协议是对客户端和服务器端之间数据之间实现可靠性的传输文字、图片、音频、视频等超文本 数据的规范,格式简称为“超文本传输协议”
  • Http协议属于应用层,及用户访问的第一层就是http

5.Http和Https的区别?

Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;

Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:

  • 端口不同:Http与Https使用不同的连接方式,用的端口也不一样,前者是80,后者是443;
  • 资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;
  • 开销:Https通信需要证书,而证书一般需要向认证机构购买;

Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。

6.什么是http的请求体?

1、HTTP请求体是我们请求数据时先发送给服务器的数据,毕竟我向服务器那数据,先要表明我要什么吧

2、HTTP请求体由:请求行 、请求头、请求数据组成的,

3、注意:GET请求是没有请求体的,只有POST有请求体

7.TCP 协议如何来保证传输的可靠性

TCP 提供一种面向连接的、可靠的字节流服务。其中,面向连接意味着两个使用 TCP 的应用(通常是一 个客户端和一个服务器)在彼此交换数据之前必须先建立一个 TCP 连接。在一个 TCP 连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过 TCP 链接交换 8 bit 字节构成的字节流,TCP 不在 字节流中插入记录标识符。

对于可靠性,TCP通过以下方式进行保证:

  • 数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时TCP发送数据端超时后会重发数据;
  • 对失序数据包重排序:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP将对失序数据进行重新排序,然后才交给应用层;
  • 丢弃重复数据:对于重复数据,能够丢弃重复数据;
  • 应答机制:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送, 通常将推迟几分之一秒;
  • 超时重发:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能 及时收到一个确认,将重发这个报文段;
  • 流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓 冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP使 用的流量控制协议是可变大小的滑动窗口协议。

8.浏览器中输入:“ www.xxx.com ” 之后都发生了什么?请详细阐述。

1、由域名通过DNS解析到IP地址 寻找IP地址的过程依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、 递归搜索根域名服务器。

2、建立TCP/IP连接(三次握手具体过程)

3、由浏览器发送一个HTTP请求

4、经过路由器的转发,通过服务器的防火墙,该HTTP请求到达了服务器

5、服务器处理该HTTP请求,返回一个HTML文件

6、浏览器解析该HTML文件,并且显示在浏览器端

7、这里需要注意:

  • HTTP协议是一种基于TCP/IP的应用层协议,进行HTTP数据请求必须先建立TCP/IP连接
  • 可以这样理解:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网 络通信的能力。
  • 两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同 的应用层协议来定义的。

9.滑动窗口机制

由发送方和接收方在三次握手阶段,互相将自己的最大可接收的数据量告诉对方。 也就是自己的数据接收缓冲池的大小。这样对方可以根据已发送的数据量来计算是否可以接着发送。在处理过程中,当接收缓冲池的大小发生变化时,要给对方发送更新窗口大小的通知。这就实现了流量的控制。

10.什么是Cookie

cookie是由Web服务器保存在用户浏览器上的文件(key-value格式),可以包含用户相关的信息。客户端向服务器发起请求,就提取浏览器中的用户信息由http发送给服务器.

11.什么是Session

session 是浏览器和服务器会话过程中,服务器会分配的一块储存空间给session。 服务器默认为客户浏览器的cookie中设置 sessionid,这个sessionid就和cookie对应,浏览器在向服务器请求过程中传输的cookie包含 sessionid ,服务器根据传输cookie 中的 sessionid 获取出会话中存储的信息,然后确定会话的身份信息。

12.Cookie和Session对于HTTP有什么用?

HTTP协议本身是无法判断用户身份。所以需要cookie或者session

13.Cookie与Session区别

1、Cookie数据存放在客户端上,安全性较差,Session数据放在服务器上,安全性相对更高

2、单个cookie保存的数据不能超过4K,session无此限制

3、session一定时间内保存在服务器上,当访问增多,占用服务器性能,考虑到服务器性能方面,应当 使用cookie。


  目录