网络编程
网络编程的基础概念
计算机网络
把分布在不同地区的计算机与专门的外部设备用通信线路连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。
计算机网络的主要功能
- 资源共享
- 信息传输与集中处理
- 均衡负荷与分别处理
- 综合信息服务
网络通信协议及接口
网络通信协议
计算机网络中实现通信必须有一些约定即通信协议,对速率、传世代码、代码结构、传输控制步骤、出错控制等指定标准。
网络通信接口
为了使两个节点之间能进行对话,必须在它们之间建立通信工具(接口),使彼此之间能进行信息交换。
接口包括两部分:
- 硬件:实现节点之间的信息传输
- 软件:规定双方进行通信的约定协议
通信协议分层思想
因节点之间联系复杂,制定协议需要把复杂逻辑按层次分解,即同层可以通信,上层可以调用下一层。各层互不影响,利于系统的开发和扩展。
网络模型
OSI模型:开放式网络互连
TCP/IP模型:简化版OSI
各层之间的数据封装,拆封
数据封装
数据拆封
IP介绍
网络通信三要素
- IP(明确网络具体的计算机)
- 端口(明确计算机的那个程序)
- 协议(设备间的通信规则)
IP地址=网络段号+主机段号
IP分类
分类 |
---|
A类:1.0.0.0~127.255.255.255 前一个是网络段号,后三主机段号 |
B类:128.0.0.0~191.255.255.255 前两个是网络段号,后两主机段号 |
C类:192.0.0.0~223.255.255.255 前三个是网络段号,后一主机段号 |
D类:224.0.0.0~239.255.255.255 |
E类:240.0.0.0~255.255.255.255 |
当前IP地址:127.0.0.1又称回环地址
IP(Internet Protocol)
IP协议是网络层主要协议,支持互连的数据通信。
主要功能:
- 无连接数据包传输
- 数据包路由选择和差错控制
域名解析
域名:主机IP对应的名称,如网址就是域名,也就是IP地址地址的别名,便于记忆。
域名解析:
- 在浏览器中输入需要访问的网址
- 浏览器会到计算机找到本地域名解析的文件,查询是否有域名对应的IP地址
- 当没有时会到宽带指定的运营商进行域名解析器DNS
- 解析后,获取IP地址,找到对应的服务器,进行数据的交互
- 如两种方式都没有解析成功则会给出未找到提示
本地域名文件路径:C:\Windows\System32\drivers\etc
UDP介绍
- 端口:就是电脑中每个应用程序对应识别号称为端口。
- 说明:当和别人用软件进行交互时,通过IP只能找到对应的主机,但是不能确定具体主机中的那个软件,此时就需要使用端口号识别。
- 协议:就是计算机进行交互的准则。
UDP、TCP协议
UDP数据报文协议
UDP(user data protocol)向应用程序提供一种发送封装的原始IP数据报的方法、且发送时无需连接,是一种不可靠的连接。
特点:
- 面向无连接
- 传输数据的速度比较快
- 数据不安全
- 在传输数据时限定大小为64K以下
- 适用于对于通信没有要求的设备,数据传输信息比较小
TCP:传输控制协议
TCP(transmission control protocol)是专门设计用于在不可靠的Internet上提供可靠的、端到端的字节流通信协议。是一种面向连接的协议,TCP连接是字节流而非报文。
特点:
- 面向有连接
- 必须经过三次握手之后
- 保证连接通道建立完之后,才可以进行通信
- 传输数据的速度比较慢,但是数据安全
- 可以传输信息较大的数据
TCP连接的三次握手
- 客户端发送数据给服务端
- 服务端收到数据给客户端反馈
- 客户端和服务端建立连接