TCP/IP与HTTP

来源:互联网 发布:网络信息视听许可证 编辑:程序博客网 时间:2024/05/06 05:56

      TCP/IP是一组通信协议的代名词,是由一系列协议组成的协议簇。它本身指两个协议集:TCP(传输控制协议)和IP(互联网络协议)的结合而成的。

一、OSI与TCP/IP

     七层协议OSI参考模型与四层协议TCP/IP参考模型的对应关系:

二、协议

      应用层:

http, hyper text transfer protocol, 超文本传输协议,http协议是建立在tcp基础之上的。

ftp, file transfer protocol,文件传输协议

smtp, simple message transfer protocol,简单邮件传输协议

pop3, post office protocol,邮局协议

dns, domain name system, 域名系统

      传输层:

tcp, transfer control protocol,传输控制协议

udp, user data protocol, 用户数据协议

      tcp是一个开销高的协议,支持对丢失或破坏的数据进行重传,以及按照发送时的顺序进行传送。

      udp允许接收方检测被破坏的包,但不保证这些包以正确的顺序传送(或者,包根据不发送)。

      udp通常比tcp传送快,tcp称为可靠协议,udp称为不可靠协议。

      网际层:

ip: internet protocol  网际协议

三、TCP协议

tcp提供可靠的连接服务,采用三次握手确认建立一个连接,四次挥手关闭连接。

连接用位码即tcp标志位,有6种标示:

SYN(synchronous建立联机)

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

Sequence number(顺序号码)

Acknowledge number(确认号码)

1、三次握手连接

第一次握手:客户端发送syn包(syn=1, seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=1 seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开)


2、四次挥手关闭

(1) TCP客户端发送一个FIN,关闭客户端到服务器端的数据传送。(客户端不再发送报文给服务器端,但可接受服务器端报文)
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端。(服务器端关闭到客户端的数据传送)
(4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1。

四、HTTP协议

HTTP是建立在TCP协议之上的应用层协议,在发送HTTP请求前,必须TCP先建立连接,则须经过三次握手的过程。HTTP的请求关闭则也则也需要TCP的四次挥手关闭。

HTTP的详情,查看点击打开链接

参考:

TCP/IP三次握手和HTTP过程:http://www.cnblogs.com/tiwlin/archive/2011/12/25/2301305.html

TCP建立连接与释放连接:http://www.2cto.com/net/201307/231072.html

0 0