3-网络编程知识回顾整理_01
1、网络编程
TCP 就好比打电话 -- 连接 -- 接了 -- 通话
UDP 就好比发短信 -- 发送了就完事了 -- 接收
2、计算机网络
将不同地方的多台计算机及外部设备,通过线路连接,在OS、软件及网络协议下,实现资源共享;
3、网络编程的目的
传播交流信息、数据交换、通信
4、网络编程的主要因素(想要达到这个效果需要什么)
1)如何准确的定位网络上的一台主机?
①通过IP 如:192.168.0.14
②通过端口号 如3306 定位到这个计算机上的资源
2)找到了这个主机后,如何进行传输数据呢?
javaweb:网页编程,通过浏览器 B/S
网络编程:TCP/IP 通过客户端 C/S
5、网络通信的要素
如何实现网络的通信?
需要通信双方的地址:IP:端口号 如:192.168.0.14:8080
IP是唯一的,但是公网IPV4地址已经用完了,在2011年用完的,现在大部分都使用IPV6
规则:网络通信的协议(常见的有:http、ftp、smtp、tcp、udp)
6、TCP/IP参考模型
网络通信主要针对的是:传输层 TCP/UDP
7、小结:
1)网络编程中有两个主要问题:
如何准确的定位到网络上的一台或多台主机
找到了主机之后如何进行通信
2)网络编程中的要素
IP和端口号
网络通信协议:udp、tcp
3)万物皆对象
8、IP
java API下有一个inetAddress,它表示的就是Internet协议 (IP)地址
ip指的是唯一定位一台网络上的计算机 127.0.0.1:本机 通常IP可以用localhost代替
IP地址分类:IPV4和IPV6
IPV4:127.0.0.1 由4个字节组成 0-255,共有42亿多个地址,其中30亿在北京,亚洲只有4亿个,在2011年的时候用尽
IPV6:128位,由8个无符号整数数组成,(可以说,地球上每一粒沙子都有一个地址)
公网(互联网) -- 私网(局域网) 其中192.168.xx.xx 就是专门给组织内部使用的局域网
ABCD四类地址
A:8位 B:16位 C:24位 D:多播地址
9、域名
如ip:www.baidu.com www.vip.com,域名很贵。。。
查询本机地址 InetAddress.getByName("127.0.0.1");
InetAddress.getLocalHost();
常用方法:
getAddress() 获得一组地址,但查询较慢
getCanonicalHostName() 获取规范的主机名
getHostAddress() 获取主机地址,IP
getHostName() 获取主机名称、域名、或自己的电脑名字
10、端口
表示计算机上的一个程序的进程
1)不同的进程有不同的端口号,主要用来区分软件;
2)端口被规定在0 - 65535 之间,也就是说可以65535个程序
3)网络协议又分为TCP、UDP,大门可以使用相同的端口,故可以使用的端口数量为65535 * 2,但是需要注意的是,单个协议下的端口号不能冲突;
4)端口分类:
①公有端口:0 - 1023 建议不要使用
http:80
https:443
ftp:21
telent:23
②程序注册端口:1024 - 49151 分配给用户或者程序
tomcat:8080
mysql:3306
oracle:1521
③动态、私有端口:49152 - 65535
idea:63342
10、常见的DOS命令
netstat -ano 查看所有端口
netstat -ano | findstr "5900" 查看制定的端口 | 是管道流,起过滤的作用
tasklist | findstr "8689" 查看制定端口的进程
11、常见的快捷键
ctrl + shift + esc 打开任务管理器
12、socket
socket是套接字、插入的意思
InetSocketAddress 传入IP 或 端口,获取主机地址/名字;
13、通信协议
它是一个约定,好比我们说的普通话,是官方语言,说方言别人就听不懂了
网络通信协议:速率、传输码率、代码结构、传输空值。。。
问题比较复杂,故而为了解决这个问题,进行了分层
TCP/IP协议:它实际上是一组协议
TCP:用户传输协议 (比如打电话)
UDP:用户数据报协议 (好比发短信、发邮件)
这两个都是在传输层面的协议
以后大多数的应用主要是在应用层:
比较出名的协议:
TCP:用户传输协议
IP:网络连接协议
14、TCP、UDP对比
TCP:就好比打电话
1)连接稳定
2)三次握手,四次挥手(建立连接需要三次、断开连接需要四次)
3)通过客户端和服务器来进行连接
4)传输完成后,释放连接,效率比较低
UDP:就好比发短信、发邮件
1)不连接、所以不稳定
2)客户端与服务端没有明确的界限
3)不管你有没有准备好,都可以进行发送给你(好比导弹打击,哪会还让你准备好)
4)DDOS:洪水攻击,在一个时间段内,不间断的向你发送数据(饱和攻击)
15、三次握手
当客户端与服务端建立连接的时候,需要三次通信,
通俗的讲,可以理解为:1)客:你瞅啥? 2)服:瞅你咋地? 3)客:干一架?
也就是说,最少需要三次通信,才能保证稳定的连接
16、四次挥手
当客户端与服务端断开连接的时候,需要四次通信,
通俗的讲,可以理解为:1)客:我要走了 2)服:你真的要走了吗? 3)服:你真的真的要走了吗? 4)客:我真的要走了
17、资源关闭
当断开连接时,需要释放资源,而资源关闭的顺序,遵循:先开后关,后开先关的规则,类似于栈的压栈和弹栈