python 的网络编程模块主要支持两种Internet协议: TCP 和 UDP.
通信协议
通信协议也叫网络传输协议或简称为传送协议(Communications Protocol),是指计算机通信或网络设备的共同语言。
现在最普及的计算机通信为网络通信,所以“传送协议”一般都指计算机通信的传送协议,如:TCP/IP、NetBEUI、HTTP、FTP等。
然而,传送协议也存在于计算机的其他形式通信,例如:面向对象编程里面对象之间的通信;操作系统内不同程序之间的消息,都需要有一个传送协议,以确保传信双方能够沟通无间。
TCP/IP
协议
在Internet中TCP/IP
协议是使用最为广泛的通讯协议(互联网上的一种事实的标准)。TCP/IP是英文Transmission Control Protocol/Internet Protocol
的缩写,意思是“传输控制协议/网际协议”
TCP/IP 协议是一个工业标准协议套件,专为跨广域网(WAN)的大型互联网络而设计。
TCP/IP 网络体系结构模型就是遵循TCP/IP 协议进行通信的一种分层体系,现今,Internet和Intranet所使用的协议一般都为TCP/IP 协议。
在了解该协议之前,我们必须掌握基于该协议的体系结构层次,而TCP/IP体系结构分为四层。
第 1 层 网络接口层 包括用于协作IP数据在已有网络介质上传输的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。比如地址解析协议(Address Resolution Protocol, ARP )等。
第 2 层 网络层 对应于OSI模型的网络层,主要包含了IP、RIP等相关协议,负责数据的打包、寻址及路由。还包括网间控制报文协议(ICMP)来提供网络诊断信息。
第 3 层 传输层 对应于OSI的传输层,提供了两种端到端的通信服务,分别是TCP和UDP协议。
第 4 层 应用层 对应于OSI的应用层、表达层和会话层,提供了网络与应用之间的对话接口。包含了各种网络应用层协议,比如Http、FTP等应用协议。
附录:OSI 七层参考模型
IP 地址和端口号
IP 地址
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address)
IP 地址是分配给网络上使用网际协议(英语:Internet Protocol, IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。
IPV4地址
IP地址由32位二进制数组成,为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。例如维基媒体的一个IP地址是208.80.152.2。
地址可分为A、B、C、D、E五大类,其中E类属于特殊保留地址。 IP地址是唯一的。目前IP技术可能使用的IP地址最多可有4,294,967,296个(即232)。骤看可能觉得很难会用尽,但由于早期编码和分配上的问题,使很多区域的编码实际上被空出或不能使用。加上互联网的普及,使大部分家庭都至少有一部电脑,连同公司的电脑,以及连接网络的各种设备都消耗了大量IPv4地址资源。
随着互联网的快速成长,IPv4的42亿个地址的分配最终于2011年2月3日用尽[1][2]。相应的科研组织已研究出128位的IPv6,其IP地址数量最高可达3.402823669 × 1038个,届时每个人家居中的每件电器,每件对象,甚至地球上每一粒沙子都可以拥有自己的IP地址。
在A类、B类、C类IP地址中,如果主机号是全1,那么这个地址为直接广播地址,它是用来使路由器将一个分组以广播形式发送给特定网络上的所有主机。32位全为1的IP地址“255.255.255.255”为受限广播地址("limited broadcast" destination address),用来将一个分组以广播方式发送给本网络中的所有主机,路由器则阻挡该分组通过,将其广播功能限制在本网内部。
IPV6地址
IPv6地址为128位长但通常写作8组每组四个十六进制数的形式。例如: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 是一个合法的IPv6地址。
IPv4地址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::135.75.43.52。
端口
在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。
物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号。
我们主要研究的是逻辑端口号.我们平时所说的端口号也是指的逻辑端口号
端口是一个软件结构,被客户程序或服务程序用来发送和接收数据,一台服务器有 256*256个端口。 端口号范围: 0 - 65535
0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的
1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。
端口与协议有关:TCP和UDP的端口互不相干