美文网首页
TCP、UDP、HTTP及Socket的简单讲解

TCP、UDP、HTTP及Socket的简单讲解

作者: virusbo | 来源:发表于2017-03-10 17:21 被阅读204次

难得闲下来,看看自己未掌握的开发知识,所以抓紧时间在网络上搜了一些相关的文章,随笔记录一下。

1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。

在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层中有TCP协议与UDP协议。

在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。

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

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

3、结论:虽然HTTP本身是一个协议,但其最终还是基于TCP的。

TCP三次、四次握手 

相对于SOCKET开发者,TCP创建过程和连接拆除过程是由TCP/IP协议栈自动创建的。因此开发者并不需要控制这个过程。但是对于理解TCP底层运作机制,相当有帮助。

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。具体流程网上有,在次我不再赘述。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作

TCP与UDP的区别 

附上一张图片,简单明了👇

TCP与UDP的区别

Socket是什么呢?

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

相对于SOCKET开发者,TCP创建过程和连接拆除过程是由TCP/IP协议栈自动创建的。因此开发者并不需要控制这个过程。但是对于理解TCP底层运作机制,相当有帮助。

最后,本文大多参考网络上各博主所写的,加上个人归纳,如有侵犯还往谅解。本人提倡资源共享和相互学习交流。也希望自己今后不再是一个资源消耗者。

相关文章

  • TCP、UDP、HTTP及Socket简单讲解

    一、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议...

  • SOCKET,TCP/UDP,HTTP,FTP

    转。。。。。。。。 SOCKET,TCP/UDP,HTTP,FTP (一)TCP/UDP,SOCKET,HTTP,...

  • TCP、UDP、HTTP及Socket的简单讲解

    难得闲下来,看看自己未掌握的开发知识,所以抓紧时间在网络上搜了一些相关的文章,随笔记录一下。 1、TCP/IP是个...

  • TCP、UDP、HTTP及Socket的简单讲解

    1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议...

  • iOS面试题:socket 连接和 Http 连接的区别

    http 是基于 socket 之上的。socket 是一套完整的 tcp,udp协议的接口。 HTTP协议:简单...

  • HTTPS从入门到放弃

    使用socket进行tcp数据传输的简单过程 Socket是TCP/UDP传输层的API, HTTP是在tcp上的...

  • tcp udp

    TCP、UDP以及HTTP的简单讲解 先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分为...

  • 网络协议学习

    Http、TCP、UDP 、Socket 简述 HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于...

  • TCP与UDP

    TCP详解 - 逆疯~ - 博客园 UDP TCP、UDP以及HTTP的简单讲解 - @ 小浩 - 博客园 SYN...

  • HTTP、TCP、UDP,Socket,HTTPS讲解

    TCP HTTP UDP三者的关系 TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应...

网友评论

      本文标题:TCP、UDP、HTTP及Socket的简单讲解

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