网络编程-软件结构和网络通信协议
软件结构
1.什么是软件:
软件是程序,文档,数据的一个集合
2.常见的软件:
app和web
3.常见的软件结构:
(1)B/S
基于浏览器的网页:browsor/浏览器 servor/服务 web就是B/S结构
特点:必须有网络才能使用,每次打开网站都是显示的最新版本,不需要安装。
(2)C/S
基于客户端:client/客户端 servor/服务 app就是C/S结构
特点:就算没有网络,部分功能依然可以使用,需要单独的安装,如果存在更新,需要重新安装。
4.软件的组成
(1)客户端/前端
用户端/前台:app、web
管理端/后台:web
(2)服务端/后端
a 程序的运行环境
b 服务器
tomcat java
apache php
nginx 前端
iis asp.net
gunicorn python
c 程序
程序员写的代码
d 数据库
mysql、 redis
5.编程语言的常见用法
(1)做后端
语言:java、python、php、asp.net、golang
(2)做前端
语言:
app:ios object-c、swift
android android、katlin
混合的 html、js/javascript、css
web:html
js/javaScript
css
vue
node.js
ts/typeScript
6.网络知识
(1)域名:DNS,通过DNS解析找对对应的ip地址,DNS就是一个域名和对应的关系表
(2)ip:公网ip
局域网ip ipconfig
本机ip localhost
127.0.0.1
(3)端口:
网站默认访问的端口都是80/443
linux的默认远程端口是22
mysql数据库的默认端口是3306
redis的默认端口是6379
tomcat的默认端口是8080
7.搭建环境
(1)windows
java、tomcat
(2)linux环境搭建
nginx、redis、tomcat、jdk(1、java环境、解压jdk的安装包、配置java环境变量)、mysql数据库
网络通信协议
网络通信协议:通过计算机网络可以使多台计算机实现连接 位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则 这就好比在道路中行驶的汽车一定要遵守交通规则一样
在计算机网络中 这些连接和通信的规则被称为网络通信协议 它对数据的传输格式、传输速率 传输步骤等做了统一规定 通信双方必须同时才能完成数据交换
TCP/IP协议:传输控制协议/因特网相互协议(Transmission ControlProtocol/InternetProttocol)是Internet最基本、最广泛的协议 它定义了计算机如何连接因特网 已经数据如何它们之间传输
的标准 它的内部包含一系列的用于处理数据通信的协议 并采用了4层的分层模型 每一次都呼叫它的下一次所提供的协议来完成自己的需求

链路层:链路层是用于定义物理传输通道 通常是对某些网络连接设备的驱动协议 例如针对光纤 网线提供的驱动
网络层:网络层是整个TCP/IP协议的核心 它主要用于将传输的数据进行分组 将分组数据发送到目标计算机或者网络
运输层:主要使网络程序进行通信 在进行网络通信时 可以采用TCP协议 也可以采用UDP协议
应用层:主要负责应用程序的协议 例如HTTP协议 FTP协议等
协议分类
通信的协议还是比较复杂的 java.net包中包含的类和接口 它提供低层次的通信细节 我们可以直接使用这些类和接口 来专注于网络程序开发 而不用考虑通信的细节
java.net包中提供了两种常见的网络协议的支持:
UDP(效率高 不安全):用户数据报协议(User Datagram protocol)UDP是无连接通信协议 即在数据传输时候 数据的发送端和接受端不建立逻辑连接。
使用UDP协议消耗资源小、通信效率高、延迟小,所以通常都会用于音频、视频和普通数据的传输。使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。
例如:对方号码不存在,一样可以发送,但是,数据就不安全有可能会丢失
特点:数据被限制在64kb以内 超出这个范围就不能发送了
TCP(效率低 安全):传输控制协议(Transmisson Control Protocol) TCP协议是面向连接的通信协议 即传输数据之前 在发送端和接收端建立逻辑连接 然后在传输数据 它提供了两台计算机之间可靠无差错的数据传输
TCP协议传送速度较慢,但传送的数据比较可靠。
由于TCP协议的面向连接特性,它可以保证传输数据的安全性和完整性,所以是一个被广泛采用的协议,例如在下载文件时,如果数据接收不完整,将会导致文件数据丢失而不能被打开,因此,下载文件时必须采用TCP协议

在TCP连接中必须要明确客户端与服务器端,先由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”
- 第一次握手 客户端向服务端发送连接请求 等等服务器确认
- 第二次握手 服务端向客户端回送一个响应 通知客户端到了连接请求
- 第三次握手 客户端再出向服务端发送确认信息 确认连接

浙公网安备 33010602011771号