TCP、UDP以及HTTP的简单讲解


TCP、UDP以及HTTP的简单讲解

文章插图
 
先来一个讲TCP、UDP和HTTP关系的
1、TCP/IP是个协议组 , 可分为三个层次:网络层、传输层和应用层 。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 。
在传输层中有TCP协议与UDP协议 。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议 。
因此 , HTTP本身就是一个协议 , 是从Web服务器传输超文本到本地浏览器的传送协议 。
TCP 是基于 TCP 协议实现的网络文本协议,属于传输层 。
UDP 是和TCP 对等的 , 属于传输层 , UDP 和 TCP 有重要的区别 。
2、HTTP协议是建立在请求/响应模型上的 。首先由客户建立一条与服务器的TCP链接 , 并发送一个请求到服务器 , 请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息 。服务器响应一个状态行 , 包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息 。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接 , 因此一个包含html内容和图片的页面将需要建立多次的短期的TCP链接 。一次TCP链接的建立将需要3次握手 。
另外 , 为了获得适当的传输速度 , 则需要TCP花费额外的回路链接时间(RTT) 。每一次链接的建立需要这种经常性的开销 , 而其并不带有实际有用的数据 , 只是保证链接的可靠性 , 因此HTTP/1.1提出了可持续链接的实现方法 。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息 , 因此减少了链接建立的次数和经常性的链接开销 。
这里有必要再讲一下三次握手的过程:
第一次握手:建立连接时 , 客户端发送syn包(syn=j)到服务器 , 并进入SYN_SENT状态 , 等待服务器确认;SYN:同步序列编号(


    推荐阅读