Python实现网络通信的几种协议
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现网络通信的几种协议相关的知识,希望对你有一定的参考价值。
随着互联网的日益进步,很多人开始学习编程语言,今天我们来看一下网络通信的几种协议:
1)TCP/IP参考模型
主机到网络层:给网络互联层提供一个访问接口,以便在其上传递IP分组。
网络互联层:TCP/IP协议栈的核心,功能使把分组发送目标网络或主机。
传输层:使源端主机和目标端主机上的对等实体可以进行会话。传输层包括 TCP协议和UDP用户数据报协议。
应用层:应用层面向不同的网络应用不同的应用层协议,其中有基于TCP协议的,如FTP、Telnet、HTTP协议。
2)TCP连接
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。
位码:SYN(建立联机),ACK(确认),PSH(传送),FIN(结束),RST(重置),URG(紧急),SN(顺序号码),AN(确认号码)
3)HTTP连接
HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道 客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
4)SOCKET原理
定义:套接字(SOCKET)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。是网络通信中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
连接过程:建立套接字Socket连接至少需要一对套接字,其中一个运行客户端,一个运行服务器。
5)IP被封
无论使用哪种爬虫手段爬取数据,同一个IP频繁操作,必然会导致IP受限,不过现在这也不算问题,因为市面上的IP软件都可以解决这个问题。兔子动态换IP软件可以实现一键IP自动切换,千万IP库存,自动去重,支持电脑、手机多端使用,智能加速技术多IP池自动分配。
以上是关于Python实现网络通信的几种协议的主要内容,如果未能解决你的问题,请参考以下文章