网络基本知识
1.协议
协议是使交换信息的两个部分之间相互理解的一组规则、约定和数据结构的集合。
在现在的网络应用中使用最广泛的协议是TCP/IP协议
ISO
OSI七层协议模型
应用层 :为应用程序提供服务并规定应用程序中通信相关的细节,ftp,tftp,smtp,ssh,telnet...
表示层 : 主要负责数据格式的转换(设备固有格式 <==> 网络格式)
会话层 :主要建立和断开通信连接
传输层 :起着可靠传输的作用
网络层 :将数据传输到目标地址,主要负责寻址和路由选择
数据链路层:负责物理层面上的互连的节点之间的通信传输
物理层 :负责0、1比特流与电压的高低、光的闪灭之间的互换
根据七层协议模型,TCP/IP协议可分为四层
应用层
传输层 TCP UDP
网络层 IPv4 IPv6
网络接口层
2.常用协议
1.TCP协议
传输控制协议,是一种面向连接的协议,类似打电话
2.UDP协议
用户数据报协议,是一种无连接的协议,类似发短信
3.IP协议
互联网协议,是上述两种协议的底层协议,当需要开发新的通信协议时,才需要关注
3.IP地址
IP地址 就是通信设备在互联网中的唯一地址标识
IP地址本质上就是一个:由32位二进制组成的整数(IPv4)
:由128位二进制组成的整数(IPv6)
日常生活中采用点分十进制表示法来描述IP地址,也就是将每个字节的二进制转为十进制的整数,不用同的整数之间用小数点分隔
0x01020304 ==>1.2.3.4
2^32个地址,怎么管理?
将IP地址分为两部分:网络地址和主机地址
网络地址:属于哪个网络
主机地址:网络中主机的编号
根据网络地址和主机地址位数的不同分为四类:
A: 0 + 7位的网络号 + 24位主机地址
0.0.0.0 ~ 127.255.255.255
B: 10 + 14位网络号 + 16位主机地址
128.0.0.0 ~ 191.255.255.255
C: 110 + 21位网络号 + 8位主机地址
192.0.0.0 ~ 223.255.255.255
D: 1110 + 28位多(组)播地址
224.0.0.0 ~ 239.255.255.255
E: 备用
查看IP地址的命令
ipconfig
ifconfig
3.子网掩码
子网掩码主要用于划分IP地址中的网络地址和主机地址,也可以用于判断两个IP是否在同一局域网中
具体分法:
IP地址 & 子网掩码 = 网络地址
例:
172.30.100.64 IP
& 255.255.255.0 子网掩码
--------------------------------
172.30.100.0 ---网络地址
64---主机地址
例:
IP:166.111.160.1 和 166.111.161.45
子网掩码:255.255.254.0
解析:
166.111.160.1
255.255.254.0 &
---------------
166.111.160 网络号
166.111.161.45
255.255.254.0 &
---------------
166.111.160 网络号
总结:上面两个IP地址在同一个局域网中
166.111.160.1 /23
166.111.161.45 /23 此处最后的23表示前23位为网络号
4.端口号
IP地址 -- 定位到具体的某一台主机/设备
端口号 -- 定位到主机/设备上的某一个进程
本质上就是一个16位的无符号整数 unsigned short,范围是0~65535
其中0-1024之间的端口号被系统使用,建议从5000开始使用
网络编程中需要提供两个信息:IP地址+端口号
5.字节序(多字节整数)
小端模式:主要指将低位字节数据保存在低位内存地址的系统
大端模式:主要指将低位字节数据保存在高位内存地址的系统
例:
x86 32平台下:
union un
{
int i;
char c;
};
un u;
u.i = 0x12345678;
printf("%x",u.c);//?? => 78