TCP/IP协议,HTTP协议

1、TCP

TCP协议是一种面向连接的、 可靠的、基于字节流的运输层通信协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。

三次握手

       在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过 三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认并交换TCP窗口大小信息。

     (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 

     (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack (number )=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。 

     (3)第三次握手:Client收到确认后,检查ACK是否为Client发送的seq+1,即x+1;如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给Server。Server检查ack是否为Server发送的seq+1,即y+1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手。 

三次握手的原因:

为了防止已失效的连接请求报文段突然又传送到了服务端,因而 产生 错误。

四次分手

当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次分手”。 
  (1)第一次分手:客户端设置seq=x,向服务端发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示客户端没有数据要发送给服务端了; 
  (2)第二次分手:服务端收到了客户端发送的FIN=1,向客户端回复ACK=1,ack=收到的seq+1=x+1,然后客户端进入FIN_WAIT_2状态;服务端告诉客户端,在等待自己去关闭连接; 
  (3)第三次分手:服务端向客户端发送FIN=1,设置seq=y,请求关闭连接,同时服务端进入LAST_ACK状态; 
  (4)第四次分手:客户端收到服务端发送的FIN,向服务端发送ACK=1,ack=收到的seq+1=y+1,然后主机1进入TIME_WAIT状态;服务端收到客户端的ACK报文段以后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明Server端已正常关闭,客户端也关闭连接。

四次分手的原因:

TCP是全双工模式,当客户端发出FIN报文段时,表示客户端没有数据要发送了,告诉服务端它的数据已经全部发送完毕了,这时客户端还可以接受来自服务端的数据。当服务端返回ACK报文段时,表示它已经知道客户端没有数据发送了,但是服务端还是可以发送数据到客户端的。当服务端也发送了FIN报文段时,这时表示服务端也没有数据要发送了,就告诉客户端它也没有数据要发送了,就会中断这次TCP连接。

2、UDP

UDP是一种 无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

应用:当对网络通讯质量要求不高的时候,要求网络通讯速度可以尽可能的快,这时就可以使用UDP。比如,QQ语音,QQ视频

UDP比TCP快的的原因:

1、TCP需要三次握手

2、TCP有拥塞控制,控制流量等机制

3、对数据内容正确性的校验会占用计算机的处理时间和网络的带宽,因此传输效率不高

TCP比UDP可靠的原因:

1、TCP是面向有连接的,建立连接之后才发送数据,而UDP是不管对方存不存在都发送数据

2、TCP有确认机制,接收端每接收到 一个正确包都会回应给发送端,超时或者数据包不完整的话 发送端会重传。UDP没有,因此可能丢包,没有TCP可靠。

3、HTTP

HTTP协议即超文本传送协议,是一个应用层协议,由请求和响应构成,是一个标准的客户端 服务器模型,是web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。HTTP连接最显著的特点是:客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。



模型

TCP/IP协议与Http协议的区别

TCP/IP协议是传输层协议,主要解决数据如何在网络中 传输,而HTTP是应用层协议,主要解决如何包装数据。

猜你喜欢

转载自blog.csdn.net/Burningwlf/article/details/84451408