码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现网络通信的几种协议

时间:2020-03-21 23:31:58      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:问题   序号   获得   动态   取数据   加速   不同   用户数   互联网   

随着互联网的日益进步,很多人开始学习编程语言,今天我们来看一下网络通信的几种协议:

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实现网络通信的几种协议

标签:问题   序号   获得   动态   取数据   加速   不同   用户数   互联网   

原文地址:https://blog.51cto.com/14603117/2480690

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!