什么是计算机网络?
把分布在不同地理区域的计算机设备,通过物理线路(网线、光纤,交换机)连接起来,最终实现数据的传输,资源的共享。
最早的网络:美国的五角大楼
网络编程
在网络的基础上,开发的程序能够进行数据传输
Java语言是支持网络的。
Java语言将网络连接的一些细节都封装起来了,对外提供一套网络库(类),就可以进行统一环境的网络编程
网络编程的核心问题
如何找到网络世界中的主机和程序(IP、端口)?
找到主机后如和高效安全的进行数据传输(协议)。
网络模型
应用层
QQ、微信
传输层 加入协议的控制
网络层 加入IP以及协议控制
IP (Internet Protocol Adress) 是指互联网协议地址,计算机的地址
本机回环地址:127.0.0.1 访问自己的电脑
端口:是计算机中运行的每一个程序都对应分配一个整数编号,不能重复。
范围0~65535;一般0~1024已经被系统使用或保留,一般我们使用1025~65535之间,已被使用的不能在使用
网络通信协议:(规则、规范、约定)
规定传输的速率,代码结构,出错后如何应对等等
物理层 网线、光纤
TCP
传输控制协议TCP:客户端向服务器端发送数据前,首先要建立链接(测试网络是否通畅),断开时还要相互确认
建立连接:三次握手
第一次:客户端向服务器发送一个连接请求
第二次:当服务端收到连接请求后,给客户端做出的一个回应
第三次:客户端为服务器的回应做出确认回应
完成之后开始传输数据
断开连接:四次挥手
第一次:客户端向服务器端发送一个断开的请求
第二次:服务器向客户端作出一个回应
第三次:服务端把没有传输完的数据传输完毕,在向客户端作出回应
第四次:客户端向服务器端的回应做出回应
UDP
用户数据报协议UDP:把要发送的数据封装成为一个数据报;数据报里面包含数据、对方的ip对方的端口,只管发送即可,是否发送成功不知道。
是不可靠的