网络是由节点和连线构成,表示诸多对象及其相互联系。linux
一我的玩:编程
两我的玩:服务器
多我的玩:网络
说明socket
单机
的世界是多么的孤单使用网络的目的tcp
1. 什么是协议函数
有的说英语,有的说中文,有的说德语,说同一种语言的人能够交流,不一样的语言之间就不行了工具
为了解决不一样种族人之间的语言沟通障碍,现规定国际通用语言是英语,这就是一个规定,这就是协议学习
2. 计算机网络沟通用什么测试
如今的生活中,不一样的计算机只须要可以联网(有线无线均可以)那么就能够相互进行传递数据,那么不一样种类之间的计算机究竟是怎么进行数据传递的呢?就像说不一样语言的人沟通同样,只要有一种你们都承认都遵照的协议便可,那么这个计算机都遵照的网络通讯协议叫作TCP/IP协议
3. TCP/IP协议(族)
早期的计算机网络,都是由各厂商本身规定一套协议,IBM、Apple和Microsoft都有各自的网络协议,互不兼容
为了把全世界的全部不一样类型的计算机都链接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是通用协议标准。
由于互联网协议包含了上百种协议标准,可是最重要的两个协议是TCP和IP协议,因此,你们把互联网的协议简称TCP/IP协议
经常使用的网络协议以下图所示:
说明:
网际层也称为:网络层
网络接口层也称为:链路层
那么TCP/IP协议中的端口指的是什么呢?端口就好一个房子的门,是出入这间房子的必经之路。
若是一个进程须要收发网络数据,那么就须要有这样的端口
在linux系统中,端口能够有65536(2的16次方)个之多!
既然有这么多,操做系统为了统一管理,因此进行了编号,这就是端口号
2. 端口号
端口是经过端口号来标记的,端口号只有整数,范围是从0到65535
3. 端口是怎样分配的
4.知名端口(Well Known Ports)
知名端口是众所周知的端口号,范围从0到1023
80端口分配给HTTP服务
21端口分配给FTP服务
能够理解为,一些经常使用的功能使用的号码比如:电话号码1十、1008六、10010同样
通常状况下,若是一个程序须要使用知名端口的须要有root权限
5.动态端口(Dynamic Ports)
六、端口总结
端口有什么用呢 ? 咱们知道,一台拥有IP地址的主机能够提供许多服务,好比HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)等,这些服务彻底能够经过1个IP地址来实现。那么,主机是怎样区分不一样的网络服务呢?显然不能只靠IP地址,由于IP地址与网络服务的关系是一对多的关系。其实是经过“IP地址+端口号”来区分不一样的服务的。 须要注意的是,端口并非一一对应的。好比你的电脑做为客户机访问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通讯,但你的电脑则可能使用“3457”这样的端口。
IP地址就像是咱们的家庭住址同样,若是你要写信给一我的,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就比如是邮递员,它必须知道惟一的“家庭地址”才能不至于把信送错人家。只不过咱们的地址使用文字来表示的,计算机的地址用二进制数字表示。
IP地址是一个32位的二进制数,一般被分割为4个“8位二进制数”(也就是4个字节)。IP地址一般用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),其实是32位二进制数(01100100.00000100.00000101.00000110)。
ip地址的分类
A类IP地址
B类IP地址
C类IP地址
D类地址用于多点广播
E类IP地址
私有ip
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
http://127.0.0.1
就能够测试本机中配置的Web服务器。
要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每一个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特色,将每一个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操做。
IP地址的网络号和主机号各是多少位呢?
若是不指定,就不知道哪些位是网络号、哪些是主机号,这就须要经过子网掩码来实现。
子网掩码不能单独存在,它必须结合IP地址一块儿使用。
子网掩码只有一个做用,就是将某个IP地址划分红网络地址和主机地址两部分子网掩码的设定必须遵循必定的规则。
与IP地址相同,子网掩码的长度也是32位,
假设IP地址为“192.168.1.1”子网掩码为“255.255.255.0”,子网掩码装换二进制位:11111111 11111111 11111111 00000000
其中,“1”有24个,表明与此相对应的IP地址左边24位是网络号;
“0”有8个,表明与此相对应的IP地址右边8位是主机号。
这样,子网掩码就肯定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。
这对于采用TCP/IP协议的网络来讲很是重要,只有经过子网掩码,才能代表一台主机所在的子网与其余子网的关系,使网络正常工做。
最经常使用的子网掩码是“255.255.255.0”的网络:
可是实际可用的IP地址数量是256-2,即254个,由于主机号不能全是“0”或全是“1”。
1.本地的进程间通讯(IPC)有不少种方式,例如
以上通讯方式都是在一台机器上不一样进程之间的通讯方式,那么问题来了,网络中进程之间如何通讯?
2. 网络中进程之间如何通讯
ip地址,协议,端口
就能够标识网络的进程了,网络中的进程通讯就能够利用这个标志与其它进程进行交互3. 什么是socket
套接字
) 是进程间通讯的一种方式,它与其余进程间通讯的一个主要不一样是:4. 建立socket
在 Python 中 使用socket 模块的函数 socket 就能够完成:
socket.socket(AddressFamily, Type)
说明:
函数 socket.socket 建立一个 socket,返回该 socket 的描述符,该函数带有两个参数:
建立一个tcp socket(tcp套接字)
import socket
s = socket.socket(socket.AF_INET, SOCK_STREAM) print 'Socket Created'
建立一个udp socket(udp套接字)
import socket
s = socket.socket(socket.AF_INET, SOCK_DGRAM) print 'Socket Created'