一、什么是IP地址
1.IP地址是主机在网路中的唯一标识,,当主机从一个网络切换到另一个网络时,会更改IP地址,同样的IP地址也是路由器进行路由选择的标识
2.IP地址的分类
IPV4:采用4字节无符号整数存储
IPV6:采用16字节无符号整数存储
3.IP地址的划分
IP=网络号+主机号
网络号:确定计算机从属的网络,在同一个网络下的多个主机IP地址网络号都是一样的
主机号:标识设备在该网络重的主机编号
二、IP地址和MAC地址的区别
1.IP地址的设计是出于拓扑设计出来的,只要在不重复IP地址的情况下,它是可以随意更改的;而MAC地址是根据生产厂商烧录好的,它一般不能改动的
2.它们最明显的区别就是长度不同,IP地址的长度为32位,而MAC地址为48位
3.寻址协议层不同。IP地址应用于OSI模型的网络层,而MAC地址应用在OSI模型的数据链路层
三、什么是端口号
1.为了区分同一主机上的多个进程,使用端口号来进行处理
2.端口号是以一个2字节的无符号整数,取值范围[0,65535]
3.端口号分类:
指定端口号:常用的为
TCP 21:FTP文件传输服务
TCP 110:POP3邮局协议版本
TCP 80:HTTP超文本传输协议
UDP 53:DNS域名解析服务
UDP 69:TFTP文件传输服务
用户可用端口号:1024-49151
临时端口号(自动分配端口号):49152-65535
四、TCP通信过程中的服务器端实现流程
通信模型:
1.创建套接字
2.绑定端口号、IP
3.开启监听
4.接收客户端的连接
5.与客户端进行数据传输
6.关闭套接字
五、TCP通信和UDP通信的区别
TCP:稳定
1.提供面向连接,可靠的数据传输传输服务
2.传输过程中,数据无误、数据无丢失、数据无失序、数据无重复
3.TCP会给每个数据包编上编号,称为序列号
4.数据传输效率低,消耗资源多
5.数据收发不同步
为了提高效率,TCP会将多个较小,并且发送间隔短的数据包,粘成一个包发送,成为粘包现象
6.TCP适用场景:对传输质量比较高以及传输量大量数据的通信,在需要可靠通信的传输场合
UDP:快速
1.面向无连接的,不保证数据可靠,尽最大努力传输的协议
2.数据传输过程中,可能出现数据丢失、重复、失序现象
3.数据传输效率高、实时性高
4.限制每次传输的大小,多出部分直接删除
5.收发同步,不会出现粘包
6.UDP适用场景:发送小尺寸,在接收数据给出应答比较困难的情况下
六、TCP通信中的3次握手
1.客户端像服务器端发送连接请求
2.服务器端应答客户端的连接请求
3.客户端与服务器建立连接
七、TCP通信中的4次挥手
挥手请求可以是客户端发起,可以是服务器端发起
假设是客户端发起:
1.客户端发起断开请求
2.服务器端应答断开请求
3.服务器端请求关闭连接
4.客户端发送确认应答
八、UDP通信中是否可用connect函数
1.UDP通信可以使用connect函数,他将服务器与某个客户端建立一个唯一的通道
2.优点:传输效率高,稳定性高,数据干扰较小
3.当服务器端用connect与某个客户端连接后,服务器端就不能再接收其他客户端的消息
4.如果要断开,就再使用一个connect函数,但是需要将地址信息结构体中的sin_addr改成AF_UNSPEC
5.在UDP中可以多次使用connect与其他客户端建立连接,但是在TCP中只能进行一次连接
6.当UDP用connect与某一客户端建立连接后,使用read/write、send/recv函数完成通信