美文网首页程序员
HTTP和TCP的区别

HTTP和TCP的区别

作者: rxdxxxx | 来源:发表于2016-06-10 12:37 被阅读1121次

    RedRain的简书:http://www.jianshu.com/users/29e03e6ff407/latest_articles

    HTTP和TCP的区别

    OSI参考模型 和 TCP/IP协议群

    1.TCP/IP 协议群的具体含义

    从字面意义上讲, 有人可能会认为TCP/IP是指TCP和IP两种协议. 实际生活中有时也确实就是指这两种协议. 然而在很多情况下, 它只是利用IP进行通信时所必须用到的协议群的统称.

    具体来说, IP或ICMP, TCP或UDP, TELENT或FTP, 以及HTTP等都属于TCP/IP的协议

    TCP/IP 一词泛指这些协议, 因此, 有时也成 TCP/IP网际协议族

    2.什么是Http

    Http中文叫做超文本传输协议, 它完成客户端到服务端等一系列运作流程

    2.1 与Http关系密切的协议: IP, TCP和NDS

    你可以稍微看一下 Http和Https的区别

    3.什么TCP

    TCP是 TCP/IP协议族中, 传输层中的一种实现.

    3.1 TCP的特点以及其目的

    为了通过IP数据报实现可靠性传输, 需要考虑很多事情, 例如数据的破坏, 丢包, 重复以及分片顺序混乱等问题, 如果不能解决这些问题, 也就无法谈起可靠传输

    TCP通过 校验和, 序列号, 确认应当, 重发控制, 连接管理, 以及窗口控制等机制实现可靠性传输

    3.2 TCP确保数据能到达目标

    为了确保无误地将数据送达目标处, TCP协议采用了三次握手策略.用TCP协议把数据包送出去后, TCP不会对传送后的情况置之不理, 它一定会向对方确认是否成功送达. 握手过程中使用了TCP的标志(flag) --- SYN (synchronize) 和 ACK (acknowledgement)

    发送端首先发送一个带SYN标志的数据包给对方. 接受端收到后, 回传一个带有SYN/ACK标志的数据包以示传达确认信息. 最后, 发送端再回传给一个带ACK标示的数据包, 代表握手结束

    若在握手过程中, 某个阶段莫名中断, TCP协议会再次以相同的顺序发送相同的数据包.

    三次握手的过程, 可以理解为 确认 发送端接收端两端的接收和发送能力,
    形如打电话通话双方:

    发送端: A
    接收端: B
    
    第一次握手:  发送端发出SYN标示消息.
    A: 喂, 你好,能听到吗? 
    (站在B的角度:收到了A的的消息, 证明A的发送能力是OK的, B自己的接收能力是OK的)
    
    第二次握手: 接收端回传SYN/ACK标示
    B: 我收到了, 你能听到我说话吗? 
    (站在A的角度: 收到B的回传, A了解了自己的发送和接收能力都OK,
    B的发送和接受能力也是OK的)
    
    第三次: 发送端回传ACK标示
    A: 我可以听到你说话. 那咱们开始通话吧.
    (站在B的角度:收到了A的的消息, 证明A的发送和接收能力是OK的,
     B自己的发送和接收能力也是OK的, 可以开始通信了.)
    
    

    相关文章

      网友评论

        本文标题:HTTP和TCP的区别

        本文链接:https://www.haomeiwen.com/subject/tljsdttx.html