关于TCP、HTTP、Socket的自我理解

来源:互联网 发布:如何编写python程序 编辑:程序博客网 时间:2024/05/01 05:36

大学时候虽说学过一些关于网络方面的知识,好像是开设一门计算网络的课程。那时候记着还想去考个思科的认证(我们学院我思科的授权的证书什么的),想不到没过几年那点知识都忘光光了!!!呵呵

一.

  TCP:是提供一种面向连接的、可靠的字节流服务。在一个TCP连接中仅有两方进行彼此的通信。它的层级有应用层、传输层、网络层、物理层、链路层

  传输:首先由client端发送请求ACK报文,等server端接受ACK报文并为这次连接分配资源。再者,client接受到报文后向server端发送ACK报文,这样就建立了连接。

二.

  HTTP属于应用层的面向对象的协议,HTTP构建于TCP/IP协议上,默认的端口为80,http是无连接无状态的,其特点是简洁、快速。适用于分布式超媒体信息系统。

特点:1.支持C/S模式;

          2.简单快速,是指客户端向服务器发送请求时,只需传送请求方法和路径,请求常用的方法时get、post。http协议简单,通信速度快;

          3.灵活:http可传输任意类型对象,传输的类型由content-type加以标记;

          4.无连接:只限制每次连接只处理一个请求,服务器处理完客户端请求并收到客户端的应答后,即断开连接,采用这种方式可以节省传输时间。

  http属于TCP协议,其通信过程分为三次握手与四次挥手中间是通信过程,三次握手:是建立一个TCP连接时需要客户端和服务器总共发送三个包,三次握手的目的是连接服务器制定端口,建立TCP连接,并同步连接双方的序列号和确认号交换TCP窗口的大小信息

三.

   socket是对TCP/IP协议的封装是应用层与TCP/IP协议通信的中间抽象层,socket可认为是一种网络间不同计算机上的进程通信的一种方法,利用三元值(IP地址、协议、端口)就可以唯一标识网络中的进程通信。socket是长连接。

   socket的通信过程:

   1.服务器端先初始化socket,然后与端口绑定(bind),对端口进行监听list(),调用accept阻塞,等待客户端连接。

    2.客户端初始化socket,然后连接服务器(connect),如果连接成功,这是客户端与服务端建立连接。

    3.客户端发送数据请求,服务端接受请求并处理请求然后把回应数据发送给客户端,客户端读取数据。最后关闭连接,一次交互结束。

0 0