您的位置:首页 > 编程语言 > Python开发

Python 14.1 TCP/IP协议简介

2016-02-03 09:33 260 查看
TCP/IP协议简介
虽然大家对现在的互联网很熟悉,但是计算机网络比互联网出现的早得多。

为了把全世界不同的计算机都连起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是通用协议标准。

因为互联网协议包含了上百种协议标准,但是最重要的是TCP和IP协议。所以,大家把互联网的协议简称为TCP/IP协议。
通信的时候双方必须知道对方的标识。互联网上每个计算机的唯一标识就是IP地址。如果一台计算机同时接入两个或多个网络,它就会有多个IP地址。时间上,IP地址实际对应的是计算机的网络接口,通常是网卡。
IP协议负责把数据从一台计算机发送到另外一台计算机。数据被分割为一个个小块,然后通过IP发送出去。由于互联网链路复杂,两台计算机中有多条路径可以选择。因此,路由器就决定如何把IP包转发出去。IP包的特点是按块发送,途径多个路由,但不能保证到达,也不能保证顺序到达。

IPV4地址实际上是一个32位整数,以字符串表示的IP地址如192.168.0.1实际上是把32位整数按8位分组后的数字表示。目的是便于阅读。
IPv6是一个128位整数。以字符串表示类似于 2001:0db8:85a3:0042:1000:8a2e:0370:7334。
TCP协议则是建立在IP协议之上的。TCP协议负责两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果丢包就自动重发。

许多常用的更高级的协议都是建立在TCP协议基础之上,比如HTTP协议,发送邮件的SMTP协议等等。

一个IP包除了包含要发送的数据之外,还包含源地址和目的地址,源端口可目的端口。
端口有什么用?在两台计算机之间通信,只有IP地址是不够的,因为同一台机器上跑着很多程序。一个IP包来了之后到底给哪个程序还是需要端口来区分。每个网络程序都向操作系统申请唯一端口号,这样,两个进程在两台计算机之间建立网络连接就需要知道各自的IP地址和各自的端口号。

一个进程也可能与多台计算机建立链接,因此它会申请很多端口号。
了解了TCP/IP的基本概念,IP地址和端口号,我们就可以进行网络编程了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TCP/IP Python