TCP、IP、HTTP协议的简单介绍

TCP(Transmisson Controller Protocol,传输控制协议):传输层协议,该协议可以提供面向连接的,可靠的数据传输服务。TCP协议能够可靠的数据传输,该协议主要通过流量控制,拥塞控制和超时重传实现可靠数据传输。

在双方进行通信的时候,如果发送方和接收方的速率是不相等的,接收方处理不过来的数据会放到接收缓冲区,如果接收缓冲区满了,就会将收到的数据包丢掉,这个时候就需要进行流量控制。TCP协议的流量控制是通过使用滑动窗口实现的,TCP的发送窗口由四个部分组成,已经发送并且确认的TCP段(已经发送并确认),已经发送但是还没有确认的TCP段(已经发送未确认),未发送但是接收方准备接收的TCP段(可以发送),未发送并且接收方也不准备接收的TCP段(不可发送)。图示如下所示:

 TCP接收窗口可以划分成三个部分,已经接收并且已经确认的TCP字段(已经接收并确认),等待接收且允许发送方发送TCP(可以接受未确认),不可接受且不允许发送方发送TCP(不可接受)。图示如下所示:

 如果发送方的发送速率较大,接收方的确认报文中可以控制发送方窗口大小,控制发送方的发送速率。接收方的滑动窗口也是根据接收端的读取速率调整的,如果接收端的读取速率快,接收方的窗口可能会扩大。

TCP建立连接需要三次挥手。

第一次挥手客户端会对服务端发送一个数据包,此时客户端对于自己是否正常发送和接收数据是不清楚的,服务器能够确定的是客户端的发送正常,自己的接收是正常的。

第二次挥手服务器给客户端发送一个数据包,并告诉客户端已经收到了客户端发送的第一个数据包。此时客户端就能确定自己的发送和接收是正常的,而且可以确定服务器的发送和接收也是正常的,服务器此时没有得到客户端的反馈,因此还不知道自己的发送是不是正常的,也不知道客户端的接收是不是正常的。

第三次挥手客户端告诉服务器自己接收到数据了,并发送了数据包。此时客户端和服务器都确定了自己和对方的发送和接收都是正常的。

TCP断开连接需要四次挥手。

第一次挥手,客户端告诉服务器端,自己要断开连接了,没什么要说的了。此时进入将要断开连接的状态。

第二次挥手,服务器告诉客户端收到了断开连接的请求。此时服务器端仍然可以传输数据给客户端。

第三次挥手,服务器告诉客户端,自己要断开连接了,随后断开连接。

第四次挥手,客户端告诉服务器,已经知道了服务器断开连接,等待后没得到回复即断开客户端到服务器的连接。

UDP(User Datagram Protocol,用户数据协议):传输层协议,该协议提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性),简单高效。UDP相比较于TCP,不需要建立连接,可以将数据包直接传输到对应的IP地址的服务器上,程序结构较为简单,但是UDP不能保证数据顺序,并且可能会发生丢包。

IP(Internet Protocol,网际协议):网络层协议,该协议的主要作用是定义数据包的格式、对数据包进行路由和寻址,以便他们可以跨网络传播并到达正确的目的地。

HTTP协议(Hypertext Transfer Protocol,超文本传输协议):应用层协议。该协议基于TCP协议,是一种用于传输超文本和多媒体内容的协议,主要是为Web浏览器和Web服务器之间的通信而设计的,即HTTP协议并不会传输数据包的传输功能,HTTP只是一种通信格式,规定了服务器、浏览器交流的格式。当我们使用浏览器浏览网页时,我们的网页就是通过HTTP请求加载的。

HTTP协议的通信过程主要分为5步:

1.服务器在80端口等待客户的请求

2.浏览器发起到服务器的TCP连接(创建套接字Socket)

3.服务器接收来自浏览器的TCP连接。

4.浏览器(HTTP客户端)也Web服务器(HTTP服务器)交换HTTP消息。

5.关闭TCP连接。

HTTP协议的状态码主要分为5类:

1XX 代表接收的请求正在处理

2XX 请求正常处理完毕

3XX 重定向状态码,需要进行附加操作以完成请求,代表请求的资源的地址发生改变,需要重定向才能访问。

4XX 客户端错误状态码,服务器无法处理请求。

5XX 服务器错误状态码,服务器处理请求出错。

同样做服务器之间交流的功能的还有RPC(Remote Procedure Call)远程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议,该协议跨越了传输层和应用层。RPC和HTTP是两个维度的东西,HTTP是一种应用层通用的通信协议,对于互联网上所有的主机都可以通过HTTP协议进行通信。但是如果不同的服务之间都通过HTTP协议进行通信,会比较麻烦。因此,RPC就应运而生了,RPC可以使用各种定制化的协议使得通信更加高效,而且使用起来和本地调用一样方便。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值