一.前言
ip地址:网络设备中的一个地址。
ipv4:目前使用的地址。由点号的十进制组成。
ipv6:未来使用的地址。由冒号的十六进制组成。
Windows的IP地址查看命令:
ipconfig
端口:可以理解为设备与外界通讯的出口。
端口号:它会用数字代表。例如端口号默认是8080。
进程:正在运行的程序。
套接字(socket):两个程序进行通信时的一个端点。(网络协议通信的接口)
二.TCP协议
1.传输控制协议
① 创建连接。
② 传输数据。
③ 关闭连接。
总结:tcp类似于生活中的打电话,先接通,再说话,再挂电话。
特点:可靠性、安全性高。
2.TCP三次握手
① 客户端发送请求,告诉服务端:自己准备好了。
② 服务端发出响应,告诉客户端:我也准备好了。
③ 建立连接,数据就能传输了。
UDP:用户数据报协议。
它是无连接的协议,类似于广播通知,一条数据可以让很多人都知道。
特点:数据不安全。
三.网络程序通信的流程
① 通过IP地址找到网络中的设备。
② 通过端口号找到对应进程的端口。
③ 传输数据需要使用TCP协议,保证数据的可靠性。
socket:进程之间通信的一个工具,好比现实生活中的插线板。
如果家用电器要进行工作,就可以用socket来完成。
1.客户端程序
它运行在用户设备上。
步骤说明:
① 创建客户端socket
② 和服务端socket建立连接。
③ 发送数据。
④ 接受数据。
⑤ 关闭socket。
2.服务端程序
它运行在服务器设备上。
步骤说明:
① 创建服务端socket
② 绑定端口号。
③ 设置监听。
④ 等待客户端的连接请求。
⑤ 接受数据。
⑥ 发送数据。
⑦ 关闭socket。
四.socket中的两种原理
send原理:它不能直接把数据发送给服务端,必须先把数据写入内存中的空间(发送缓存区),再由操作系统控制网卡把内存中的数据发送给服务端网卡。
recv原理:它不能直接从客户端接收数据,必须由操作系统控制网卡接收数据,把数据写入内存中的空间(接收缓存区),再获取客户端发送的数据。
五.其他
https://www.baidu.com/fruit
HTTP协议:超文本传输协议,可以理解成通信格式,例如,在国内访问国外的网站(通过网址去访问),要遵循http协议。
HTTPS协议:加密版的。
DNS:域名解析。(将域名解析成ip地址)
例如,com是域名。
URL:统一资源定位符,可以理解为网络资源,也就是网址。
例如,fruit是网络资源。
FTP:文件传输协议。可以理解为下载或上传。
六.故事
?????有一天,我穿越到了没有电话的时代。这时候,我就想到了tcp协议,它能帮助我与外界取得联系,因为它与打电话的原理差不多。
?????我开始行动了,首先找到端口,将自己的ip地址暴露给自己的同伴。然后,我要想发出请求,让外界知道我的存在,这就用到了http协议,同样能与外界取得联系。http协议基于tcp协议,相当于我的通讯设备升级了。
|