1、套接字(socket)
套接字:一种独立于应用层和传输层之间的通用的网络编程接口
套接字可以被看做是一种特殊的文件,可以像操作普通文件那样进行读写。
套接字不局限于TCP/IP协议使用
网络通信,最后将数据包先发送给目标设备,最后再转交给目标设备上的特定的应用程序或者服务。
IP:寻找目标设备
端口号:寻找特定应用程序或者服务
2、IP地址
在网络中唯一标识一台主机,真正标识主机的为MAC地址。
IP地址的构成:网络地址+主机地址,
IPv4下:IP占据4个字节
IP分类:按照网络地址和主机地址占比的不同,分为A,B,C,D,E
A类IP:1个字节网络地址+3字节主机地址 ,规定网络地址最高位为0
B类IP:2个字节网络地址+2字节主机地址 ,规定网络地址最高位为10
C类IP:3个字节网络地址+1字节主机地址 ,规定网络地址最高位为110 (用的最多!)
D类IP:作为组播地址使用,规定最高位为1110 E类IP:被保留下来,将来使用,规定最高位为1111
IP地址范围:
A类:8 bit, 0.0.0.0~127.255.255.255/8
B类:16 bit,128.0.0.0~191.255.255.255/16
C类:24 bit,192.0.0.0~191.223.255.255/24
3、端口号
唯一标识一台主机上的某个进程或者服务。
为了区分一台主机接收到的数据包应该转交给哪个应用程序或者任务来进行处理,使用端口号来区别,此外,端口还可以用于实现安全性和访问控制。防火墙和路由器可以配置为允许或阻止特定端口上的数据流量,从而保护网络免受潜在的威胁。这是网络安全的一个重要方面。
TCP端口号与UDP端口号独立
端口号取值范围:0-65535 (short类型的数据)
端口号的分类:
1、熟知端口(Well-Known Ports):端口号范围从0到1023。这些端口号已被互联网指定为特定的应用程序或服务,因此它们具有广泛的公认含义。例如,端口80用于HTTP服务,端口25用于SMTP服务,等等。
2、注册端口(Registered Ports):端口号范围从1024到49151。这些端口号通常由软件开发者或组织用于特定应用程序或服务。它们没有被广泛接受,但可以在需要时注册。
3、动态和私有端口(Dynamic and Private Ports):端口号范围从49152到65535。这些端口号通常用于动态分配,例如客户端应用程序用于与服务器通信时可以随机选择一个空闲的端口。
4、字节序
Big-endian Small-endian --》大小端
大端存储:高字节处的内容存在低地址处
小端存储:低字节处的内容存在低地址处
由于通信PC 处理器类型可能不同(主机字节序:大小端存存储形式不一样),因此为了解决数据错乱。
规定:在网络通信时,数据默认以网络字节序(本质:大端存储)形式发送。
发送方发送数据时:从主机字节序转化为网络字节序
接收方接收数据时:从网络字节序转化为主机字节序