一、网络连接
网络的连接类型:以连接为导向(connection-oriented)和以包为导向(packet-oriented)。
TCP/IP
TCP/IP是以包为导向的网络协议。
TCP/IP的网络层由IP协议提供,IP协议将包在Internet传输,不需要创建end-to-end的连接。
但是由于IP协议不了解包之间的关系,也不提供重传,无法提供可靠传输的,需要TCP或UDP等高阶的协议提供可信赖的服务。
TCP和UDP可以保证IP包头不会被破坏。
TCP
TCP提供可信赖、以会话为基础、以连接为导向的传输包服务。
TCP协议会等所有的包到达后为客户端应用程序有序地整理数据包,传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。
应用:文件传输、web浏览器、电子邮件、文件传输程序
UDP
UDP协议提供不可信赖、快速,以包为导向的数据服务(ping命令使用UDP来检查主机是否可连通)
UDP让客户端应用程序自己决定如何解读数据包,数据包不是按照顺序接受的。
UDP发送效率高(发送前时延小),一对一、一对多、多对一、多对多,面向报文,尽最大努力服务,无拥塞控制
eg:网络语言通信,视频点播、语音广播、聊天软件、TFTP(简单文件传送)、SNMP(简单网络管理协议)、RIP(路由信息协议:报告股票市场、航空信息)、DNS(域名解析)等
二、网络协议
Python有许多模块可以处理下面的网络协议
1.HTTP:浏览网页 80
2.FTP:在不同计算机间传输文件 20
3.Telnet:提供登录其他计算机的服务 23
4.POP3:从POP3服务器读取电子邮件 110
5.SMTP:发送电子邮件到邮件服务器 25
6.IMAP:从IMAP服务器读取电子邮件
7.NNTP:提供存取Usernet新闻 119
这些协议使用socket提供的服务来连接不同的主机,以及在网络上传输包
