断开过程需要经过四次握手(也就是服务器和客户端交互
网络由下往上分为物理层、数据链路层、网络层( IP协议)、传输层( TCP协议)、会话层、暗示层和应用层(HTTP协议)
接下来我来说说小我私家理解此中的TCP/IP、Http、Socket的区别
TCP/IP连接:
手机能够使用联网成果是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络成立TCP连接,TCP协议可以对上层网络供给接口,使上层网络数据的传输成立在“无分歧”的网络之上。
成立起一个TCP连接需要颠末“三次握手”:
第一次握手:客户端发送syn包(syn=j)随处事器,并进入SYN_SEND状态,期待处事器确认。
第二次握手:处事器收到syn包,必需确认客户的SYN(ack=j+1),同时本身也发送一个SYN包(syn=k),即SYN+ACK包,此时处事器进入SYN_RECV状态。
第三次握手:客户端收随处事器的SYN+ACK包,向处事器发送确认包ACK(ack=k+1),此包发送完毕,客户端和处事器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包罗数据,三次握手完毕后,客户端与处事器才正式开始传送数据。抱负状态下,TCP连接一旦成立,在通信双方中的任何一方主动封锁连接之前,TCP 连接都将被一直连结下去。断开连接时处事器和客户端均可以主动倡议断开TCP连接的请求,断开过程需要颠末“四次握手”(也就是处事器和客户端交互,最终确定断开)。
HTTP连接:
HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的根本,也是手机联网常用的协议之一,HTTP协议是成立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要处事器回送响应,在请求结束后,会主动释放连接。从成立连接到封锁连接的过程称为“一次连接”。
1)在HTTP 1.0中,客户真个每次请求都要求成立一次单独的连接,在措置惩罚惩罚完本次请求后,就自动释放连接。
2)在HTTP 1.1中则可以在一次连接中措置惩罚惩罚多个请求,并且多个请求可以重叠进行,不需要期待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后城市主动释放连接,因此HTTP连接是一种“短连接”,要连结客户端措施的在线状态,需要不停地向处事器倡议连接请求。凡是的做法是即时不需要获得任何数据,客户端也连结每隔一段固定的时间向处事器发送一次“连结连接”的请求,处事器在收到该请求后对客户端进行答复,表白知道客户端“在线”。若处事器永劫间无法收到客户真个请求,则认为客户端“下线”,若客户端永劫间无法收随处事器的答复,则认为网络已经断开。
HTTPS:是以安适为方针的HTTP通道,简单讲是HTTP的安适版,即HTTP下插手SSL层,HTTPS的安适根本是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要感化可以分为两种:一种是成立一个信息安适通道,来保证数据传输的安适;另一种就是确认网站的真实性。
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安适,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安适。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要必然用度。
2、http是超文本传输协议,信息是明文传输,https则是具有安适性的ssl加密传输协议。
3、http和https使用的是完全差此外连接方法,,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安适。
SOCKET道理
一、套接字(socket)观点
套接字(socket)是通信的基石,是撑持TCP/IP协议的网络通信的根基操纵单元。它是网络通信过程中端点的抽象暗示,包罗进行网络通信必需的五种信息:连接使用的协议,本田主机的IP地点,本地进程的协议端口,远田主机的IP地点,远地进程的协议端口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用措施进程供给并发处事的问题。多个TCP连接或多个应用措施进程可能需要通过同一个 TCP协议端口传输数据。为了区别差此外应用措施进程和连接,许多计算机操纵系统为应用措施与TCP/IP协议交互供给了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自差别应用措施进程或网络连接的通信,实现数据传输的并发处事。
二、成立socket连接
成立Socket连接至少需要一对套接字,此中一个运行于客户端,称为ClientSocket ,另一个运行于处事器端,称为ServerSocket 。
套接字之间的连接过程分为三个法式:处事器监听,客户端请求,连接确认。
处事器监听:处事器端套接字并不定位具体的客户端套接字,而是处于期待连接的状态,实时监控网络状态,期待客户真个连接请求。
客户端请求:指客户真个套接字提出连接请求,要连接的方针是处事器真个套接字。为此,客户真个套接字必需首先描述它要连接的处事器的套接字,指出处事器端套接字的地点和端标语,然后就向处事器端套接字提出连接请求。
连接确认:当处事器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,成立一个新的线程,把处事器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式成立连接。而处事器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30009.html