2018-08-14

网络是由节点和连线构成,表示诸多对象及其相互联系

 为了能在众多计算机中找到特定的计算机,Vint cerf 在实验室模拟阶段使用了 32 位标记的网络地址协议[internet protocal],用于标识网络上唯一台计算机,也就是后来的 ip 地址;

# ip: internet protocal 网络互联协议(因特网地址寻址协议),中文缩写:网协

    IP 地址根据使用的用户性质的不同,主要区分为 5 类 IP 地址
    a类地址 由 0 网络地址7位 主机地址24位 构成
    b类地址由 10 网络地址14位  主机地址16位 构成
    c类地址由 110 网络地址21位  主机地址8位 构成
    d类地址由 1110 多目的广播地址28位
    e类地址由11110  保留用于实验和将来使用
 A 类 IP 地址 一个 A 类 IP 地址由 1 字节的网络地址和 3 字节主机地址组成,网络地址的最

高位必须是“0”, 地址范围从 1.0.0.0 到 126.0.0.0。可用的 A 类网络有 126 个,每个网络能
容纳 1 亿多个主机。

B 类 IP 地址 一个 B 类 IP 地址由 2 个字节的网络地址和 2 个字节的主机地址组成,网络地
址的最高位必须是“10”,地址范围从 128.0.0.0 到 191.255.255.255。可用的 B 类网络有 16382
个,每个网络能容纳 6 万多个主机 。

C 类 IP 地址 一个 C 类 IP 地址由 3 字节的网络地址和 1 字节的主机地址组成,网络地址的
最高位必须是“110”。范围从 192.0.0.0 到 223.255.255.255。C 类网络可达 209 万余个,每
个网络能容纳 254 个主机

D 类地址用于多点广播

E 类 IP 地址 以“llll0”开始,为将来使用保留。240.0.0.0 到 255.255.255.254
255.255.255.255 用于广播地址

全零(“0.0.0.0”)地址对应于当前主机。全“1”的 IP 地址(“255.255.255.255”)是
当前子网的广播地址。

私有地址:适用于局域网络的地址

在 IP 地址 3 种主要类型里,各保留了 3 个区域作为私有地址,其地址范围如下:A 类地址:
10.0.0.0~10.255.255.255 B 类地址:172.16.0.0~172.31.255.255 C 类地址:192.168.0.0~
192.168.255.255

本机地址:适用于当前主机进行网络回路测试:127.0.0.1 localhost
IP 地址为 127.0.0.1~127.255.255.255

子网掩码和 IP 地址一样都是 32 位,左边为 1 用于表示网络地址,右边为 0 表示主机地址
某台主机 ip 地址:192.168.1.100
子网掩码:255.255.255.0

什么是端口?可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口

计算机中的端口号的范围是 0~65535 之间
端口号根据其使用场景,一般区分为公用端口、动态端口、保留端口
公用端口:0~1023
动态端口:1024~65535
建议使用8千以上的端口,8千以下有可能应用程序在用
remark:查看当前主机正在使用端口号:netstat –ano
remark:查看当前主机中某个端口号是否被使用:netstat –ano | findstr port
nslookup www.baidu.com 域名解析命令

什么是协议

     协议:英文名称 protocal,是多方协商计议之后得出的约定、规则、规范
Internet上的计算机使用的是TCP/IP协议

计算机网络数据传输协议目前最主流的就是欧洲计算机制造协会联盟,也称为国际标准化组
织 ISO 指定的 OSI/RM 七层网络传输模型!也有五层模型、四层模型的概念,
都是从七层模型的基础上再次抽象出来的
协议通常指代单独的一个协议,协议族通常指代互相关联的一组协议,协议栈指代某一组互
相关联的协议和他们所属的 OSI 模型的层级结构。

七层网络传输模型: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
Unix 系统中的套接字就是第一种家族套接字,称为 AF_UNIX,或者 AF_LOCAL,这是 POSIX1
标准中规范的

在网络套接字交互过程中,出现了两种类型的套接字模型
面向连接的套接字模型
面向无连接的套接字模型

面向连接的套接字模型,在进行网络数据传输过程中,首先要创建一个连接模型,通过指定
的连接模型进行数据的交互,类似我们生活中拨打电话
面向无连接的套接字模型,在进行网络数据传输过程中,不需要有效的网络连接模型,在数
据传输过程中只负责发送/接受,不保证数据的完整性和实效性;类似我们生活中的广播电

基本语法结构

socket.socket(socket_family, socket_type, protocal=0)
socket_family:socket 地址家族,AF_UNIX/AF_LOCAL 或者 AF_INET
socket_type:socket 连接类型
面向连接的(SOCK_STREAM),面向无连接的(SOCK_DGRAME)
protocal:传输协议,一般不用设置,使用默认值进行自动匹配就好

创建 TCP 协议的套接字 socket 对象
tcp_socket=socket.socket(socket.AF_NIET,socket.SOCK_STREAM)

创建 UDP 协议的套接字 socket 对象
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

TCP:Transmission Control Protocal 传输控制协议
是一种面向连接的,可靠的、基于字节流的传输层通信协议

你可能感兴趣的:(2018-08-14)