一、基本知识
1.什么是计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2.网络编程的目的:传播交流信息,数据交换,通信。
3.想要达到效果需要什么:
(1)如何准确定位网络上的一台主机:IP地址:192.168.16.124+端口,定位计算机上的某个资源
(2)找到了这个主机。如何传输数据?
4.Javaweb:网页编程 B/S架构
5.网络编程:TCP/IP C/S架构
二、网络通信的要素
1.如何实现网络的通信?
(1)通信双方地址:
ip:
端口号:
(2)规则:网络通信协议 主要学tcp,udp
实际上使用的是TCP/IP。OSI过于理想化(open system of internet)
小结:如何定位网络上的一台或多台主机
找到后如何通信
三、IP
ip:inetAddress
唯一定位网络上的计算机
本机:127.0.0.1
ip地址分类:
ipv4/ipv6:4个字节组成,0~255,42亿/ 128位。 8个无符号整数
公网(互联网)私网(局域网)分类:
192.168.XXX.XX 专门给组织内部使用分ABCD类
域名:记忆IP问题
IP:
四、端口
端口表示计算机上的一个程序的进程;
不同进程有不同的端口号,用来区分软件。
端口从0~65535;TCP,UDP:65535*2 ,单个协议下端口号不能重复
端口分类:
1 公有端口 0~1023 一般是占用的
HTTP:80
HTTPS:443
FTP:21
Telent:23
2 程序注册端口:1024~49151,分配给用户或者程序
Tomcat:8080 MySQL:3306 Oracle:1521
3 动态、私有:49152~65535
netstat -ano # 查询所有端口
netstat -ano|findstr "5900" # 查看指定端口
tasklist|findstr "8696" # 查看指定端口的进程
socket 套接字 用于端口通信
五、通信协议
网络通信协议:速率,传输码率,代码接哦古,传输控制…
问题:非常的复杂?可以大事化小:分层 TCP/IP 协议簇 实际上是一组协议
重要:
TCP:用户传输协议
UDP:用户数据报协议
出名的协议:
TCP:
IP:网络互联协议
TCP UDP对比:
TCP 打电话
(1)连接 稳定
(2)一次连接 三次握手 四次挥手
A: 你好
B: 收到
A: 开始发消息
=
A: 我准备断开连接
B: 我知道了
B: 你要断开了吗
A:是的
(3)客户端 服务端
(4)传输完成,释放连接,效率低
UDP:发短信
(1)不连接、不稳定
(2)客户端、服务端没有明确界限
(3)随时发送,不需要准备
(4)DDOS:洪水攻击!饱和式攻击
六、TCP
客户端
1.连接服务器 Socket
2.发送消息
服务端
1.建立服务器端口 ServerSocket
2.等待用户的链接 accept
3.接收用的消息
文件上传
服务端
客户端
Tomcat
- 服务端
- 自定义S
- Tomcat服务器S:Java后台开发!
- 客户端
- 自定义C
- 浏览器B
七、UDP
发短信:不用链接,直接发消息。
客户端和服务端的界限不再清晰。
八、URL 统一资源定位符
DNS (Domain Name System,域名解析): 把www.baidu.com 解析成 IP XXX.XX.XX.XX
协议://ip地址:端口/项目名/资源