基础学习之计算机网络篇

网络的相关概念

网络通信:两台设备之间通过网络实现数据传输
java.net包下提供了一系列的类和接口,供程序猿使用,完成网络通信


局域网:覆盖范围最小,仅仅覆盖一个教室或者一个机房
城域网:覆盖范围较大,可以覆盖一个城市
广域网:覆盖范围最大,可以覆盖全国或全球,万维网是广域网的代表

ip

用于标识网络中的每台计算机/主机
常用命令(windows):ipconfig 查看ip地址;ping ip地址 确认是否连接成功

-> ipv4:使用4个字节(32位表示),一个字节的范围是0-255
ipv4地址的标识形式:点分十进制 xxx.xxx.xxx.xxx
ipv4地址的组成 = 网络地址+主机地址,比如:192.168.0.1


-> ipv6:使用16个字节(128位表示),是ipv的4倍

ipv4地址分类图
在这里插入图片描述

域名

方便记忆,解决记ip的困难
可以通过http协议,将ip地址映射成域名
在这里插入图片描述

端口

用于标识计算机上某个特定的网络程序
范围:0-65535,0-1024已经被占用,比如ssh 22,ftp 21,smtp 25,http 80
常见的端口号:tomcat 8080、oracle 1521、mysql 3306、sqlserver 1433

协议

tcp/ip协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议):

在这里插入图片描述>
TCP/IP协议模型,将原始的OSI七层模型简化为四层
在这里插入图片描述

TCP如何保证数据传输安全

1、三次握手:在不可靠的信道保证可靠的连接
三次握手是建立连接的过程,当客户端向服务端发起连接时,会先发一包连接请求数据(SYN),询问能否建立连接;
如果服务端同意连接返回一包数据(SYN+ACK);
客户端收到数据,在回复一包数据(ACK),三次握手结束;
在这里插入图片描述

2、传输确认
3、四次挥手:处于连接状态的客户端和服务端,都可以发起关闭连接的请求,需要四次挥手进行关闭连接
⑴、客户端发起关闭连接请求(FIN包),进入终止等待-1状态(FIN-WAIT-1);
⑵、服务端收到FIN包后,发送ACK包,表示自己进入关闭等待状态(CLOSE-WAIT),客户端进入终止等待-2状态(FIN-WAIT-2),服务端此时可以发送未发送完的数据,客户端还可以接收数据
⑶、等待服务端发送完数据以后,发送FIN包,进入最后确认状态(LAST-ACK);
⑷、客户端收到后发送ACK包,进入超时等待状态,经过超时连接后关闭连接,服务端收到ACK包后立即关闭连接
在这里插入图片描述

传输层TCP和UDP的区别:

UDP协议:用户数据协议
将数据、源、目的封装成数据包,不需要建立连接
每个数据报的大小限制在64k内,不适合传输大量数据
因无需连接,所以是不可靠的
发送数据结束时无需释放资源(因为不是面向连接的),速度快


TCP协议:传输控制协议
使用TCP协议前,须先建立TCP连接,形成传输数据通道
传输前,采用“三次握手”方式,是可靠的
TCP协议进行通信的两个应用进程:客户端、服务端
在连接中可进行大数据量的传输
传输完毕后,须释放已建立的连接,效率低

InetAddress类的使用

/**
 * 演示InetAddress类的使用
 */
public class API_ {
   
    public static void main(String[] args) throws UnknownHostException {
   
        //1、获取本机的InetAddress对象
        InetAddress localhost = InetAddress.getLocalHost();
        System.out.println(localhost);// 本机名/ip地址:Wa-study-java/192.168.31.178

        //2、根据指定主机名,获取 InetAddress 对象
        InetAddress host1 = InetAddress.getByName("Wa-study-java");
        System.out.println(host1);// Wa-study-java/192.168.31.178

        //3、根据域名返回 InetAddress对象
        InetAddress host2 = InetAddress.getByName("www.baidu.com");
        System.out.println(host2);//www.baidu.com/110.242.68.3

        //4、通过 Inetaddress 对象,获取对应的ip地址
        String hostAddress = host2.getHostAddress();
        System.out.println(hostAddress);//110.242.68.3

        //5、通过 Inetaddress 对象࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值