Tcp-http-socket的总结

在没有讲到正题之前我们还是先来熟悉下网络的7层协议都是哪些,主要是干啥的吧。

7层协议分别是:

具体每一层都做些什么,在这里就不做详细解释了,下面进入正题,关于标题中的三种协议分别处于7层的那一层,起到什么样的作用。下面一一详细解释。

1. TCP(传输控制协议)。

官方话来说是一种面向连接,可靠的基于字节流的传输层协议。一目了然此协议处于网络的传输层。有关TCP的报文传输就不走详细解释,在这里我们主要看一下TCP是如何建立链接的。

毫无疑问任何网络连接都需要有信息请求和响应的。所以这就构建了TCP的三次握手原则。分别是

(1)客户端发送SYN(SEQ=x)报文给服务器。进入报文发送状态

(2)服务器收到报文SYN后回应一个SEQ = yACK = x+1的报文进入receive状态

(3)客户端收到服务器发送的报文SYN,回应一个ACK=y+1的报文进入建立状态。

以上三次握手完成,便意味着成功建立链接了,可以传输数据了。

2. HTTP(超文本传输协议)。

是一个基于请求与相应模式。无状态的应用层协议。最显著的特点是每次请求都需要服务器回送响应,在请求结束后会主动释放链接。从建立链接到关闭连接的过程称为”一次连接“。是基于TCP的链接。

3. Socket(套接字)简单的来说就是连接两边的插座。

用于描述IP地址和端口进行客户端和服务器端的链接匹配。是通信的基石是支持TCP/TP协议的网络通信的基本操作单元。包含网络通信的五中必备信息。链接使用的协议。本地主机的ip地址,本地协议端口,远地主机的ip地址,远程协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

Socket的三次握手:连接握手:

(1.客户端发送建立连接请求

(2.服务端确认连接请求

(3.客户端确认已经连接

以上3步完成后即可使用send recv了

断开握手:如果要正确断开必须经过4次握手。

(1.客户端发送请求停止TCP连接请求

(2.服务端收到请求后将这一个socket关闭

(3.服务端发送反向请求客户端关闭socket连接

(4.客户端确认服务端请求,关闭socket连接。

4. 总结三者之间的关联:

TCP协议要基于健全的socket,而http协议又要基于TCP协议,所以简单的来说三者是辅助与被辅助的关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容