网络编程

网络编程

信件

  1. 打电话 --连接--通了 TCP
  2. 发短信 --发送即可-- UDP

计算机网络

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统网络管理软件网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

如何准确定位网络上一台主机?

IP地址:端口号

OSI七层模型

OSI七层模型 功能 对应的网络协议 TCP/IP四层概念模型
应用层 文件传输,文件管理,电子邮件的信息处理——apdu HTTP、TFTP, FTP, NFS, WAIS、SMTP 应用层
表示层 确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,最小单位——ppdu Telnet, Rlogin, SNMP, Gopher
会话层 负责在网络中的两节点建立,维持和终止通信,在一层协议中,可以解决节点连接的协调和管理问题。包括通信连接的建立,保持会话过程通信连接的畅通,两节点之间的对话,决定通信是否被终端一斤通信终端是决定从何处重新发送,最小单位——spdu SMTP, DNS
传输层 定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题——tpdu TCP, UDP 传输层
网络层 控制子网的运行,如逻辑编址,分组传输,路由选择最小单位——分组(包)报文 IP, ICMP, ARP, RARP, AKP, UUCP 网络层
数据链路层 主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC(媒体访问控制)地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层,最小的传输单位——帧 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继 数据链路层
物理层 定义物理设备的标准,主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流,因此最小的传输单位——位(比特流) IEEE 802.1A, IEEE 802.2到IEEE 802.

小结

  1. 两个主要问题
    • 如何定位到一台主机
    • 找到主机后,如何进行通信
  2. 要素
    • ip 、端口号
    • 网络通信协议 udp、tcp
  3. 万物皆对象

IP

  • 127.0.0.1 : localhost
  • IP地址分类
    • ipv4、ipv6
      • ipv4 127.0.0.1 ,4个字节组成,0 ~ 255
      • ipv6 ,128位,8个无符号整数
    • 公网(物联网)、私网(局域网)

ip类:InetAddress

public static void main(String[] args) {
        try {
            //查询本机地址
            InetAddress inetAddress1 = InetAddress.getByName("localhost");
//            查询百度地址
            InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress1);
            System.out.println(inetAddress2);
//            常用方法
//            System.out.println(inetAddress2.getAddress());
//            System.out.println(inetAddress2.getCanonicalHostName());
            System.out.println(inetAddress2.getHostAddress()); //ip
            System.out.println(inetAddress2.getHostName()); //主机名,域名
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

端口

  • 不同进程有不同的端口号,区分软件

  • 范围 0 ~ 65535

  • 端口分类

    • 公有端口 0 ~ 1023

      • http : 80
      • https : 443
      • ftp : 21
      • telent : 23
    • 程序注册端口:2014 ~ 49151

      • tomcat : 8080
      • mysql:3306
      • oracle :1521
    • 公有、私有:49152 ~ 65535

      • netstat -ano #查看所有端口
        netstat -ano | findstr "5900" #查看指定端口
        

通信协议

协议:约定,就像我们沟通需要普通话

  • TCP :用户传输协议
    • 打电话
    • 链接、稳定
    • 三次握手、四次挥手
    • 客户端、服务端
    • 传输完成,释放链接、效率低
  • UDP:用户数据包协议
    • 发短信
    • 不连接、不稳定
原文地址:https://www.cnblogs.com/gbhh/p/13768057.html