网络编程概述
1、基本的通信架构
基本的通信架构有两种形式:CS架构和BS架构
-
CS架构:分为客户端(Client)和服务端(Server),两者都需要程序员自行开发
-
BS架构:分为浏览器(Browser)和服务端(Server),只需要开发服务端(网站,在浏览器里开发)
2、网络通信三要素
-
IP地址:设备在网络中的地址,是唯一的标识,全称“互联网协议地址”
-
端口:应用程序在设备中的唯一标识
-
协议:连接和数据在网络中传输的规则
1、IP地址
IP地址有两种形式:IPv4,IPv6
IPv4
每8位换算为一个十进制字节
IPv6:共128位
IP域名
如:https://www.baidu.com/
公网ip,内网IP
- 公网IP:是可以连接互联网的IP地址;内网IP:也叫局域网IP,只能组织机构内部使用。
- 192.168.开头的就是常见的局域网地址,范围为192.168.0.0–192.168.255.255,专门位组织机构内部使用。(这次我们的项目主体为局域网IP)
特殊的IP地址
127.0.0.1、localhost:代表本机IP,只会寻找当前所在的主机。
IP常用命令
- ipconfig:查看本机IP地址
- ping IP地址:检查网络是否联通
2、端口号
端口:是一个整型数,unsigned short,标记正在计算机设备上运行的应用程序,被规定为一个16位的二进制,范围是0~ 65535(0~
2
16
2^{16}
216-1)
每个IP可以找到一个主机,而每个进程对应不同的端口号。
分类
- 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
- 注册端口:1024~49151,分配给用户进程或者某些应用程序。
- 动态端口:49151~65535,不固定分配某种进程,而是动态分配。
注意:我们自己开发的程序一般选择注册端口,且不可以出现重名现象。
3、协议
定义:网络上通信的设备,事先规定的连接规则,以及传输数据的规则被称为网络通信协议。
开放式网络互连标准:OSI网络参考模型
TCP/IP网络模型:事实上的国际标准
UDP:用户数据报协议
- 特点:无连接、不可靠通信,但是通信效率高,应用于语音通话、视频直播
- 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口,目的地IP,程序端口和数据(限制在64KB内)
- 发送方不管对方是否在线,数据在中间丢失也不管,如果接受方收到数据也不返回,故是不可靠的
TCP:传输控制协议
- 特点:面向连接,可靠通信。
- TCP的最终目的:要保证在不可靠的信道上实现可靠传输
- TCP的三个主要步骤:三次握手建立连接、传输数据进行确认、四次挥手断开连接。
1、三次握手建立可靠连接
可靠连接:确定通信双方,收发消息都是正常无问题的。
三次握手:
为什么是三次握手建立连接?
分别确认客户端和服务端是否可以正常的发送消息和接收消息
第一次客户端向服务器发出连接请求,如果服务端收到了消息----证明客户端发送消息正常
第二次如果服务器返回了一个响应给客户端----证明了服务端发送消息和接收消息正常
第三次客户端再次发出确认信息----证明了客户端接收消息正常
传输数据会进行确认,以保证数据传输的可靠性。
2、四次握手断开连接
目的:确保双方数据的收发都已经完成。