网络基础(一)

Posted by monkey-yu on March 29, 2019 | 浏览量: -

一、五层因特网协议栈

1. 应用层

应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信和交互规则。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。


报文:应用层交互的数据单元。

域名系统:

域名系统是因特网的一项核心服务,它作为可以将域名和IP地址互相映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

http协议:

超文本传输协议(HyperText Transfer Protocol)是互联网应用最为广泛的一种网络协议。所有的www(万维网)文件都必须遵守这个标准。


2. 传输层

传输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。

传输层常用的两种协议:

  1. 传输控制协议 - TCP:提供面向连接的,可靠的数据传输服务。
  2. 用户数据协议 - UDP:提供无连接的,尽最大努力的数据传输服务。(不保证数据传输的可靠性)。

TCP(Transmission Control Protocol)
  1. TCP 是面向连接的(需要先建立连接);
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是一对一;
  3. TCP 提供可靠交付的服务,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
  4. TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
  5. 面向字节流。TCP中的“流”指的是流入进程或从进程流出的字节序列。
UDP(User Datagram Protocol)
  1. UDP是无连接的;
  2. UDP是尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态;
  3. UDP是面向报文的;
  4. UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发生率降低(对实时应用很有用,如直播,实时视频会议等);
  5. UDP 支持一对一、一对多、多对一、多对多的交互通信;
  6. UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

3. 网络层

网络层的任务是选择合适的网间路由和交换节点,确保计算机通信的数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫IP数据报。

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做网际层或 IP 层。

4. 数据链路层

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

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

5. 物理层

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

在互联网使用的各种协议中最重要和最著名的就是 TCP/IP 两个协议。

二、五层因特网协议、OSI七层协议、TCP/IP四层 区别

OSI七层协议模型主要是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

TCP/IP四层模型:应用层、传输层、网络层、链路层。

各层对应图:

network

三、HTTP 与HTTPS 的区别

区别 HTTP HTTPS
协议 运行在TCP之上,明文传输,客户端与服务器端无法验证对方的身份 有SSL外壳的HTTP,运行于SSL之上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP
端口 80 443
资源消耗 较少 由于加解密处理,会消耗更多的CPU和内存资源
开销 无需证书 需要证书,一般需要向认证机构购买
加密机制 共享密钥加密和公开密钥加密并用的混合加密机制
安全性 由于加密机制,安全性强

四、对称加密与非对称加密

对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题是密钥发送问题,即如何安全地将密钥发给对方

非对称加密是指使用一堆非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己到私钥进行解密。

由于非对称加密方式不需要发送用来解密的私钥,因此可以保证安全性;但是和对称加密相比,非常的慢。

综上,我们还是用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

五、HTTP2

HTTP 2可以提高网页的性能。

http1中,浏览器限制了同一个域名下的请求数量(chrome下一般是6个)。当在请求很多资源时候,由于队头阻塞当浏览器达到最大请求数量时,剩下的资源需要等待当前6个请求完成后才能发起请求。

http2中引入了多路复用的技术,这个技术可以只通过一个TCP连接就可以传输所有的请求数据。多路复用绕过了浏览器限制同一域名下的请求数量的问题,进而提高网页的性能。

未完,请接下一博客 网络基础(二)