如何理解网络中的各种协议

Post on Jul 17, 2017 by Lightfish Zhang

前言

对协议的理解

UDP与TCP协议

  • UDP, 有状态的不可靠的连接, 用户数据报协议
    • 把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
    • 由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
    • 说它是有状态的,举个视频直播的例子,常用UDP传输视频的帧,每一帧都是连续的,与上一次发送的数据有关联,也就是有状态的
  • TCP, 有状态的可靠的连接, 传输控制协议
    • 提供的是面向连接、可靠的字节流服务。
    • 当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。(三次握手四次挥手)
    • TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

由此衍生的协议族

  • 类似继承的思想去思考它们的关系

例子

- TCP
    + HTTP
        - post
        - get
        - put
        - head
  • TCP制定了一个标准,HTTP继承了它的特性,规定了消息文本内容的协议
  • HTTP/1.1以及之前,它是具有无状态、短连接的特性,每一次请求对于服务端而言都是新的请求,上一次会话和下一次会话没有联系。
  • HTTP下的post/get…等规定了语义

… 未完待续