网络通信知识点
python高级一学习笔记,网络编程的基础知识,不是很完善,若有错误的,多多指出
1、网络通信概述
什么是网络编程?
所谓的网络编程就是让在网络中不同的电脑上的软件能够进行数据传递,在网络中不同主机进程中不断地通
2、IP地址
1.ip地址的作用:
概念:互联网协议地址(internet protocol address) 是一个逻辑地址(意思是随着网络环境的变化其地址也会相应改变)
作用:用来标记网络中某一台电脑(主机)在同一网络中是唯一的
2.ip地址的组成:
ip地址包括两部分:
ip地址 = 网络号 + 主机号
目前国际通用的有两种:
1、IPV4地址: 目前主流的是ipv4,由32位的二进制组成,分为4段,每一段的范围在0-255 2的32次方
2.IPV6地址: ipv6是未来的一个趋势,由128位组成,2的128次方
ens33(网卡名称) LInk encap:以太网
硬件地址(物理地址,mac地址) 00:0c:29:63:95:db
3、IP地址的分类:
分为三类:
A类网络:大型网络
B类网络: 中型网络
C类网络: 小型网络(局域网)
4、两种特殊的ip地址:
1.私有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
2.回路地址
用作回路测试的地址,也叫本地主机的IP地址
127.0.0.1
localhost: ip地址 127.0.0.1: 代表本地主机,即本机
3、端口
1.什么是端口:
端口是操作系统用来区分不同网络程序(进程)是网络程序对外传输数据的出入口
2.端口号
对端口的编号,由16位二进制构成,范围0-65535
3.端口如何分配
通过主机(操作系统分配给程序(进程))
a> 知名端口
知名端口是众所周知的端口号,范围从0到1023
http服务: 80端口
ssh服务: 22端口
ftp服务: 21端口
telnet服务: 23端口
b> 动态分配端口 : 1024-65535
动态分配是指当一个程序需要网络通信时,它向主机(操作系统)申请一个端口,主机(操作系统)从可用的端口号中分配一个供它使用
4.查看端口
netstat -na
a> netstat : 查看网络状态(net status)
-n : 以数字的形式显示
-a : 显示所有的信息
4、绑定端口问题
upd_socket.bind(addr)
addr: ('',6070) 元组类型,第一个的ip,是字符串,且一般写'',注意不要有空格' '
第二个是端口号,是整数
提示: 绑定要在发送或接受之前设置
python@ubuntu:~$ sudo lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1387 root 3u IPv4 2544239 0t0 TCP *:ssh (LISTEN)
sshd 1387 root 4u IPv6 2544241 0t0 TCP *:ssh (LISTEN)