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会用在客户端向服务器申请一个比特的信息,如果没有收到答复会继续申请。

Z_~CDAXL.jpg)
python 网络编程(一)---基础的更多相关文章
- python网络编程——socket基础篇
python的网络编程比c语言简单许多, 封装许多底层的实现细节, 方便程序员使用的同时, 也使程序员比较难了解一些底层的东西. 1 TCP/IP 要想理解socket,首先得熟悉一下TCP/IP协议 ...
- Python网络编程(基础总结、 入门经典)
Linux下文件类型: bcd -lsp b(块.设备文件) c(字符设备文件) d(目录) -(普通文件) ...
- Python网络编程之基础
计算机网络基础 网络到底是什么?计算机之间如何通信的? 早期:联机 以太网:局域网与交换机 ******广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发, 所 ...
- 图解Python网络编程
返回目录 本篇索引 (1)基本原理 (2)socket模块 (3)select模块 (4)asyncore模块 (5)asynchat模块 (6)socketserver模块 (1)基本原理 本篇指的 ...
- Python网络编程基础pdf
Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...
- 好书推荐---Python网络编程基础
Python网络编程基础详细的介绍了网络编程的相关知识,结合python,看起来觉得很顺畅!!!
- Python网络编程基础|百度网盘免费下载|零基础入门学习资料
百度网盘免费下载:Python网络编程基础|零基础学习资料 提取码:k7a1 目录: 第1部分 底层网络 第1章 客户/服务器网络介绍 第2章 网络客户端 第3章 网络服务器 第4章 域名系统 第5章 ...
- Python网络编程之网络基础
Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...
随机推荐
- C#中Thread.sleep()
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1.假设现在是 2008-4-7 12:00:00.000,如果我调 ...
- [Jquery] js验证手机号
function checkIdPhone(id,idErr){ var reg0=/^(13[0-9]|15[012356789]|18[01235,idErr6789]|14[57]|17[0]) ...
- Javascript字典操作
<script type="text/javascript"> var dic = new Array(); //注意它的类型是Array ...
- The 5th Zhejiang Provincial Collegiate Programming Contest---ProblemF:Faster, Higher, Stronger
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2970 唔...第二水题.除了Faster是输出最小外,另外两个都是输出最大 ...
- Eclipse console文本换行
Eclipse换行主要有3个方面 格式化时编辑器文本换行 源代码注释文本换行 Eclipse控制台console显示文本换行 1和2参考 http://hi.baidu.com/ae6623/item ...
- (转)基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案
一.前言.提出问题 公司最近举行2011年度创新设计大赛,快年底了正打算写写2010年以来Android开发的心得与经验,正好同事出了个点子:假如A和B两个人分别在不同的地点,能不能实现这样的功能,让 ...
- Unique Binary Search Trees II
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- hibernate annotation注解 主键ID自增长
@Id @SequenceGenerator(name="increment") @GeneratedValue(strategy=GenerationType.AUTO, gen ...
- iOS开发--绘图教程
本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,翻译版本中加入了一些书中未涉及到的内容.希望本文能够对你有所帮助. 本文由海水的味道翻译整理,转载请 ...
- Protected Functions 是理解OO的难点和关键
Protected Functions 是理解OO的难点和关键 private和public函数都好理解,这里就不多说了,夹在中间的prortected却有许多精妙之处,说说我的几个疑问和看法:1. ...