在正式开始学习Python网络编程之前,先来补充一点网络基础知识。
TCP
Internet是在一些共享线路上发送数据的。为了实现共享,TCP通过把你要发送的数据流分解成很多小信息包在Internet传输,而这些信息报到了接受者的地方会再次重新合成在一起。通过分成很小的数据包,Internet链接就会用很少的时间来发送数据的每一个比特,而其他程序的数据包也可以同时传送。(像电话这种类型的设备是独占线路的,如果你想跟朋友聊天的同时发送电话传真,至少需要两根线路。如果每个软件都独占一根网线,那么卖网线一定赚的要死)
为了准确的将数据包发送到指定位置,TCP通过IP确定机器,通过端口号确定哪个软件需要接收你的数据。
TCP是个可靠的协议,为了防止数据在传输的过程中被损坏,每个信息包都包含一个效验码,验证失败信息包就会被省略;为了防止信息报丢失,TCP要求接收方每收到一个信息报都要反馈一下,没收到反馈将重发数据包;为了防止信息包重复或者顺序错误,TCP每传送一个信息包都会传送一个序号,接收方将按顺序合并,如果借到重复序号的数据包则抛弃。
路由
为了使数据包顺利的从机器传送到远程服务器上,数据包常常会经过不同的网络。路由器是互联网络的枢纽,充当"交通警察"的角色。在windows中我们可以通过tracert(linux通过
traceroute、 mt