网络编程
1.1 概述
-
计算机网络:将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
-
网络编程的目的:传播交流信息,数据交换,通信
-
想要达到这个效果需要做什么:
- 如何准确地定位网络上的一台主机 IP:port;
- 找到了这个主机,如何传输数据呢?
1.2 网络通信的要素
- 如何实现网络的通信?网络通信的要素?
- 通信双方地址:IP,端口号
- 规则:网络通信的协议
- 网络编程的主要问题
- 如何准确的定位到网络上的一台或多台主机
- 找到主机后如何进行通信
1.3 IP
-
IP地址:
-
唯一定位一台网络上计算机
-
127.0.0.1 本机localhost
-
IP地址的分类:
-
ipv4/ipv6
-
ipv4(四个字节,已用尽):
192.168.1.xxx
-
ipv6:
fe80::ec8f:a251:44xx:5c2a%20
-
-
公网-私网
- 公网:互联网
- 私网:局域网,
192.168.---.---
-
域名:记忆IP
-
-
1.4 端口
表示计算机上的一个程序的进程;
-
不同的进程有不同的端口号!用来区分软件!
-
被规定为0-65535
-
TCP/UDP:65536*2,单个协议下,端口号不能冲突
-
端口分类
-
公用端口 0-1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
-
程序注册端口:1024-49151,分配给用户或者程序
- Tomcat:8080
- MySQL:3306
- Oracle:1521
-
动态、私有:49152-65535
netstat -ano #cmd查看所有端口
-
1.5 通信协议
网络通信协议:速率、传输码率、代码结构、传输控制。。。
TCP/IP协议簇:实际是一组协议
- TCP:
- IP:网络互连协议
TCP/UDP
-
TCP:类似打电话
-
连接、稳定
-
三次握手
四次挥手
最少需要三次才能保证稳定连接 A:你瞅啥 B:瞅你咋的 A:干一场 A:我要断开了 B:我知道了你要断开了 B:你真的断开了吗 A:我真的要断开了
-
客户端、服务端
-
传输完成,释放连接、效率低
-
-
UDP:类似发短信
- 不连接、不稳定
- 客户端、服务端:没有明确的界限
- 不管有没有准备好,都可以发给你
- 导弹
- DDOS:洪水攻击,饱和攻击
1.6 TCP
客户端
1.连接服务器socket
2.发送消息
服务器
- 建立服务的端口ServerSocket
- 等待用户的链接accept
- 接收用的消息