java网络编程--2 IP,端口,通信协议,TCP/UDP对比

1.3、IP

ip地址:InetAddress

  • 唯一定位一台网络上的计算机

  • 127.0.0.1 :本机localhost

  • IP地址的分类

    • ipv4/ipv6

      • IPV4 127.0.0.1,4个字节组成。0-255,总共42亿个;有30亿都在北美,亚洲只有4亿,2011年就用尽了
      • IPV6 2001:0BAC:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA ,共16个字节,128位,8个无符号整数。可以为地球的每一粒沙子都分配一个IP。
    • 公网(互联网)- 私网(局域网)
      • ABCD类地址

        • A类网络的IP地址范围为:1.0.0.1-126.255.255.254; 一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~126。每个A类地址可连接16387064台主机,Internet有126个A类地址。
        • B类网络的IP地址范围为:128.1.0.1-191.255.255.254; 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。每个B类地址可连接64516台主机,Internet有16256个B类地址。
        • C类网络的IP地址范围为:192.0.1.1-223.255.255.254 ; 一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”,即第一段数字范围为192~223。每个C类地址可连接254台主机,Internet有2054512个C类地址。
        • D类为多播地址:IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。
      • 192.168.xx.xx,专门给组织内使用
  • 域名:记忆IP问题

    • IP:记忆IP地址。越短越值钱。
package com.ssl.lesson01;

import java.net.InetAddress;
import java.net.UnknownHostException; //测试IP
public class TestInetAddress{
public static void main(String[] args) {
try {
//查询本机地址
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress); InetAddress inetAddress4 = InetAddress.getByName("localhost");
InetAddress inetAddress3 = InetAddress.getLocalHost();
System.out.println(inetAddress4);
System.out.println(inetAddress3);
//查询网络地址
InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress2); //常用方法
System.out.println(inetAddress2.getAddress()); //一般不用
System.out.println(inetAddress2.getCanonicalHostName()); //获取规范名字 ip
System.out.println(inetAddress2.getHostAddress()); //ip
System.out.println(inetAddress2.getHostName()); //域名,或者电脑名
/**
* [B@4554617c
* 39.156.66.14
* 39.156.66.14
* www.baidu.com
*/ } catch (UnknownHostException e) {
throw new RuntimeException(e);
}
}
}

1.4、端口Port

  • 端口表示计算机上的一个程序的进程。

    • 不同的进程有不同的端口号!用来区分软件

    • 被规定范围:0-65535 ,16位,2byte;

    • 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   #查看所有端口
      netstat -ano |findstr "5900" #查看指定的端口
      tasklist|findstr "8696" #查看指定端口的进程
      Ctrl+shift+ESC #打开任务管理器
    • 访问端口号

    package com.ssl.lesson01;
    
    import java.net.InetSocketAddress;
    
    public class TestInetSocketAddress {
    public static void main(String[] args) {
    InetSocketAddress inetSocketAddress1 = new InetSocketAddress("127.0.0.1",8080);
    InetSocketAddress inetSocketAddress2 = new InetSocketAddress("localhost",8080);
    System.out.println(inetSocketAddress1);
    System.out.println(inetSocketAddress2); //使用方法
    System.out.println(inetSocketAddress1.getAddress()); //获取ip地址
    System.out.println(inetSocketAddress1.getHostName()); //获取本机ip地址
    System.out.println(inetSocketAddress1.getPort()); //获取端口号
    /*
    /127.0.0.1
    127.0.0.1
    8080
    */ }
    }

1.5、通信协议

协议:约定!

网络通信协议:速率,传输码率,代码结构,传输控制......

非常复杂,所以大事化小,分层解决!!

TCP/IP协议簇:实际上是一组协议 用户传输协议/网络互联协议

传输层重要的两个协议:

  • TCP:用户传输协议
  • UDP:用户数据报协议

TCP UDP 对比

TCP:打电话

  • 连接,稳定
  • 三次握手,四次分手
/**
三次握手:
A:你瞅啥 SYN=1,seq=x;
B:瞅你咋地 SYN=1,ACK=1,seq=y,ack=x+1;
A:干一场 ACk=1,seq=x+1,ack=y+1; 四次分手
A:我要走了 FIN=1,seq=u;
B:你真的要走了吗 ACK=1,seq=y,ack=u+1;
B:你真的真的要走了吗 FIN=1,ACK=1,seq=w,ack=u+1;
A:我真的要走了! ACK=1,seq=u+1,ack=w+1;
*/
  • 客户端、服务端
  • 传输完成,释放连接,效率低

UDP:发短信

  • 不连接,不稳定
  • 客户端、服务端:没有明确的界限
  • 不管有没有准备好,都可以发给你
  • DDOS:洪水攻击(饱和攻击)。

java网络编程--2 IP,端口,通信协议,TCP/UDP对比的更多相关文章

  1. Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socke ...

  2. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  3. 网络编程 套接字socket TCP UDP

    网络编程与套接字 网络编程 网络编程是什么: ​ 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 ​ 编写基于网络的应用程序的过程序称之为网络编程. 网络编程最主要的工 ...

  4. ~~网络编程(三):TCP/UDP~~

    进击のpython ***** 网络编程--TCP/UDP协议 其实你也发现了,应用层是交给应用来处理的,我们什么也做不了 相较于网络编程来说,我们更重要的是在做应用层和传输层的对接 因为你也看到了, ...

  5. java 网络编程(三)---TCP的基础级示例

    下面是TCP java网络编程的基础示例: tcp传输:客户端建立过程的思路:1.创建TCP客户端的Socket服务,使用的是socket对象,建议在创建的过程中,就明确了目的地和要连接的主机2.如果 ...

  6. 从零探索Java网络编程01之 TCP/IP 与 Socket

    最近完成了几项比较简单的项目, 终于是在996里偷了点闲暇时光, 想着来研究研究些啥吧?  一个普通的控制台日志映入了我的眼帘(孽缘呀): (图中使用 SpringBoot 的 log4j 来输出日志 ...

  7. 【Java】Java网络编程菜鸟进阶:TCP和套接字入门

    Java网络编程菜鸟进阶:TCP和套接字入门 JDK 提供了对 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protoco ...

  8. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  9. 网络编程的基本概念,TCP/IP协议简介

    8.1.1 网络基础知识 计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议. 网络编程的目的就是指直接或 ...

  10. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

随机推荐

  1. Ubuntu ROOT默认密码设置

    Ubuntu默认密码设置 Ubuntu默认是不设置ROOT密码的,如果需要安装一些包则需要从普通用户调转至ROOT用户,这个时候就需要设置一下密码了. 下面这种情况 chen@chen:~/Deskt ...

  2. css 背景渐变

    1.渐变从左到右 background: linear-gradient(to right,#000,#fff); 2.渐变从上到下 background: linear-gradient(tobot ...

  3. CSS选择符及盒模型

    一.选择符 1.类型选择符(标签选择符) 特点:能选中当前结构里面(全部同名)标签. 应用:统一某一标签样式时或清除某一标签默认样式时. 2.id选择符 特点:(唯一性!)在同一个页面里面,一个id名 ...

  4. ImmutablePair和ImmutableTriple的使用

    场景 当我们调用某个方法,需要有超过一个值的返回时,我们通常会怎么做,比如现在需要调用方法返回姓名和年龄两个属性(假如姓名为张三,年龄为12). 方式一:使用Map,将Map中分别放入name为key ...

  5. Cubemx 生成工程代码失败的原因

    折腾了好久(躺)翻了很多解答试了试终于捣鼓正常了,就在这里汇总一下看到过的问题 1.文件名.工程名或者工程文件路径/库路径上有中文名 2.Cubemx的版本过高 3.java环境的版本不适配 4.可能 ...

  6. Latex Algorithm 语法错误导致无法编译

    遇到了几种情况: 1. for 循环没加{} 2. $\textbf{T_i}$, 想要加粗T,但是把i也扩进去了,latex就不懂了,于是一直recompile不出来说超时什么什么的,把i放到外面就 ...

  7. Linux基础知识2

    目录和文件管理 linux以目录形式挂载(通过目录访问存储设备)文件系统,目录结构分层的树形结构. 链接:在共享文件和访问它的用户的若干目录项之间建立联系的方法,包括硬链接和软链接两种方式 linux ...

  8. ST能维护的性质

    总结: 其实ST表不仅能处理最大值/最小值,凡是符合结合律且可重复贡献的信息查询都可以使用ST表高效进行.什么叫可重复贡献呢?设有一个二元运算  ,满足  ,则是可重复贡献的.显然最大值.最小值.最大 ...

  9. MTS和MTO的差别

    一.概念篇 MTS(Make-to-Stock): 按库存生产 可以独立创建计划.生产订单,可以如非限制使用的库存,并且发货等不受限制. 生产的成品或者半成品在系统中建有BOM,开工单生产后记入库存, ...

  10. python 循环 类型转换