python 网络编程(一)---基础

1.理解TCP

1.1 寻址

首先任何基于TCP/IP的网络,每台机器都有唯一的IP地址,只需要知道接受者机器的IP地址,信息就可以传送过去。

其次,TCP通过使用端口号来知道机器究竟是哪个程序应该接收传来过来的数据,每个程序都使用唯一一个端口号,有时候这些端口号是事先知道的,有时候是随机指定的。

再次,让用户记住一串诸如65.215.22.125的数字是非常困难的,于是使用了DNS。当我们想要和一个远程机器建立连接的时候,就可以申请连接该机器IP地址相对应的DNS,例如 www.baidu,.com DNS会给我们提供一个IP地址,接下来就可以建立连接了。

1.2 TCP的可靠性

1) 为了防止数据在传输的过程中被损坏,每个信息包都包含一个校验码。来保证传输过程中信心包没有被更改。

2)为了防止信息包丢失,TCP的重传机制来保证。

3)为了防止信息包重复或者顺序错误,TCP每传送一个信息包都会传送一个序号。接收方会检查这个序号,确保收到该信息包,并吧全部信息包按照顺序重新合并。同时如果接收方看到了一个已经看过的序号,该信息包就会被丢弃。

1.3 路由

为了保证信息包可以从您的机器到达全球任何一个地方,我们采用路由,并使用traceroutr来查询经过的路由。

1.4 安全

不希望被陌生人看到你访问的网站或者传输的数据。

有可能您的链接会被拦截转向另一台机器。

2.使用客户/服务器模式

2.1 服务器端端口

在客户/服务器模式中,服务器通常是侦听一个大家都知道的端口。国际因特网地址分配委员会维护着官方已分配的端口列表。如果您编写了一个服务器,它的服务不在这个列表,那么就应该选择一个比1024大而且在您的机器上没有被占用的端口号,端口号最大为65535。

2.1 客户端端口号

客户端端口号不是很重要,一般情况下是由操作系统随机选择一个没有被使用的端口号,当服务器收到一个连接请求的时候,请求中带有客户端的端口号,数据会被传输到该端口号上。因此服务器可以喝客户端挑选任意的端口号很好的工作。

2.3 理解UDP

它被用来从一个系统向其他系统传送非常短的消息,它只提供一个保证:您收到的数据时完整的。

通常UDP会用在客户端向服务器申请一个比特的信息,如果没有收到答复会继续申请。

python 网络编程(一)---基础

python 网络编程(一)---基础
上一篇:yum安装指定(特定)版本(旧版本)软件包的方法


下一篇:redis 从入门到遗忘