探究网络协议(IP、HTTP、TCP和UDP)

网络协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

网络协议是由三个要素组成:

(1) 语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。

(2) 语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。

(3) 时序。时序是对事件发生顺序的详细说明。

国际标准化组织ISO在80年代提出的开放系统互联参考模型OSI(Open System Interconnection),这个模型将计算机网络通信协议分为七层。

自上而下依次为:

  • 应用层(Application Layer)
  • 表示层(Presentation Layer)
  • 会话层(Session Layer)
  • 传输层(Transport Layer)
  • 网络层(Network Layer)
  • 数据链路层(Data Link Layer)
  • 物理层(Physics Layer)

其中传输层完成数据传送服务,上面三层面向用户。对于每一层,至少制定两项标准:服务定义协议规范。前者给出了该层所提供的服务的准确定义,后者详细描述了该协议的动作和各种有关规程,以保证服务的提供。

网络层协议:IP (IPv4、IPv6)、IS-IS、IPsec、ARP、RARP等;

传输层协议:TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等;

应用层协议:FTP、HTTP、IMAP4、NDS、SOAP等。

IP

网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议;IP地址具有唯一性。

TCP

TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。
TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。

TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

TCP协议中的三次握手和四次挥手,可以参考https://www.cnblogs.com/111testing/p/6942585.html

UDP

UDP(User Datagram Protocol)协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

TCP和UDP的比较

1、TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接;

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;

3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信;

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;

5、TCP对系统资源要求较多,UDP对系统资源要求较少。

HTTP

HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。

HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器;

HTTP请求格式主要有四部分组成,分别是:请求行、请求头、空行、消息体,每部分内容占一行。

请求行---请求方法(GET/POST/DELETE/PUT/HEAD)、请求资源的URI路径、HTTP的版本号
请求头---请求头中的信息有和缓存相关的头(Cache-Control,If-Modified-Since)、客户端身份信息(User-Agent)等等。

HTTP响应消息的格式包括:状态行、响应头、空行、消息体。每部分内容占一行。

状态行:状态行位于相应消息的第一行,有HTTP协议版本号,状态码和状态说明三部分构成。如:HTTP/1.1 200 OK

响应头:响应头是服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。
        Connection:keep-alive
        Content-Encoding:gzip
        Content-Type:text/html; charset=utf-8
        Date:Fri, 24 Jun 2016 06:23:31 GMT
        Server:nginx/1.9.12
        Transfer-Encoding:chunked

响应消息体:响应体是服务端返回给客户端的HTML文本内容,或者其他格式的数据,比如:视频流、图片或者音频数据。

HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立,将需要3次握手。

另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

猜你喜欢

转载自blog.csdn.net/qq_41244651/article/details/79967113