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、资源关闭

  当断开连接时,需要释放资源,而资源关闭的顺序,遵循:先开后关,后开先关的规则,类似于栈的压栈和弹栈

原文地址:https://www.cnblogs.com/hand-blog/p/13156680.html