美文网首页
网络协议梳理

网络协议梳理

作者: 尼古拉斯_富貴 | 来源:发表于2017-08-04 12:22 被阅读0次

经常听到一些网络协议相关的名词,像什么TCP、UDP、HTTP、SOCKET,它们到底有什么样的区别呢,今天我们就来好好梳理一遍。

先看一幅图

如图所示:

  • IP协议属于网络层
  • TCP和UDP属于运输层协议
  • HTTP应用层协议
我们来假想一个典型的网络通讯过程

如果现在有客户端A要想服务器B发送一个http网络请求,整个流程是怎样的呢?

首先A与B要建立网络连接,这里就需要用到网络层的IP协议,根据IP地址和端口去发现对方。
成功找到对方后将会建立一条TCP连接(HTTP基于TCP),当TCP的三次握手建立之后,进入HTTP通讯流程——正式发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。
服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。
HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

把以上过程抽象一下:

把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。
TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。


在文章的最后,我们再来简单回顾下三次握手的细节:
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连接的请求,断开过程需要经过“四次握手”

总结:

HTTP协议是基于传输层的TCP协议,而TCP协议又基于网络层的IP协议。
SOCKET是针对网络编程设计的接口,它有很多不同的具体实现,例如以TCP为基础的TCPSOCKET和以UDP为基础的UDPSOCKET,貌似我们常用的基于TCP/IP的SOCKET编程更多一些。

相关文章

  • 网络协议梳理

    经常听到一些网络协议相关的名词,像什么TCP、UDP、HTTP、SOCKET,它们到底有什么样的区别呢,今天我们就...

  • 重头梳理网络协议栈

    从 1989 年 HTTP 0.9 发布开始,互联网的发展已经近三十年,各种网络概念也是层出不穷。如 Https,...

  • python requests库流程简析

    今天重新梳理网络编程的时候,想到对于部分应用,他们的数据流是按照http协议,中间经过其他协议层,最后通过底层的物...

  • 物联网常见通信协议与通讯协议梳理【下】- 通信协议

    物联网常见通信协议与通讯协议梳理【下】-通信协议 1 概述 在上一篇文章《物联网常见通信协议与通讯协议梳理【上】-...

  • 名词解析

    网络层:IP协议 : 网络协议ICMP协议: Internet互联网控制报文协议 ->IP协议的附属协议 IP...

  • Http网络协议包

    1.网络协议包: 2.常见网络协议: 3.Http网络协议包: 4.Http请求协议包与Http响应协议包介绍: ...

  • 网络梳理

    最近一段时间,看了一下极客时间的《趣谈网络协议》,简单整理一下。网络,虽然是计算机行业的基础知识,但是更多的像文科...

  • 网络传输-Socket

    目录 网络基础 Socket 一、网络基础 网络协议 网络协议是互联网进行数据交换的标准,通过实现网络协议达到与互...

  • 基本原理

    什么是协议? 网络协议:规定网络双端如何通信。

  • 网络,IP,端口,协议,OSI/RM模型总结梳理

    网络:网络是由节点和连线构成,表示诸多对象及其相互联系,在计算机领域中,网络是信息传输、接收、共享的虚拟平台,通过...

网友评论

      本文标题:网络协议梳理

      本文链接:https://www.haomeiwen.com/subject/qakvlxtx.html