计算机网络编程

2023-12-16 09:01:57

网络编程

Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机, Java 仍是企业和开发人员的首选开发平台。
??

课程内容的介绍

1. 计算机网络基础
2. Socket ServerSocket
3. TCP Socket 通信模型
4. UDP 编程
??

一、计算机网络基础

1.什么是计算机网络
把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大 、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。

??
2.了解网络通信协议
2.1.网络通信协议
要使计算机连成的网络能够互通信息,需要对数据传输速率、传输代码、代码结构、传输控制步骤、出错控制等制定一组标准,这一组共同遵守的通信标准就是网络通信协议,不同的计算机之间必须使用相同的通讯协议才能进行通信。

??
2.2 常见的网络通信协议
TCP/IP, 使用最为广泛的通讯协议。
TCP/IP 是英文 Transmission Control Protocol/Internet Protocol 的缩写,意思是 传输控制协议 / 网际协议”
??

? ??
2.2.1三次握手
TCP 协议建立连接需要三次会话 ( 握手 )

? ?
1. 第一次握手,客户端连接服务器。
2. 第二次握手,服务器接收了客户端的连接请求,服务器发送给客户端的确认消息。
3. 第三次握手,客户端获取到了服务器的确认信息,知道了服务已经知道我要连接他了,但是服务器还不知道客户端已经知道了,所以客户端发送给服务器消息说我们已经接受到了你的确认信息。
经过这三次握手,那么客户端和服务器都知道了要连接。
??
2.2.2四次挥手
TCP 协议中如果客户端要断开连接那么需要进行四次挥手操作。

??
1. 第一次,客户端发送请求关闭的消息给服务器。
2. 第二次,服务器接受到了客户端的消息,服务器发送消息给客户端确认(我收到了你的关闭请求,但是我数据还没有传完,等我传会告诉你的)。
3. 第三次,服务器给客户端要传输的数据以及传完了,服务器发送消息给客户端数据传完了,客户端你可以断开连接了。
4. 第四次,客户端发送消息给服务器,我要断开了,你也断开吧。
??
3.IP和端口号
3.1 什么是IP
网络中每台计算机的一个标识号,是一个逻辑地址, 127.0.0.1 localhost 代表本机地址。
IP 地址由四段组成,每个字段是一个字节, 8 位,最大值是 255 ,IP地址由两部分组成,即 网络地址 主机地址 。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。IP 地址的四大类型标识的是网络中的某台主机。IPv4的地址长度为 32 位,共 4 个字节,但实际中我们用 点分十进制 记法。 192.168.1.1
? ?
3.2 分类
IP 地址根据网络号和主机号来分,分为 A B C 三类及特殊地址 D E 0 和全 1 的都保留不用。
A (1.0.0.0-126.0.0.0) (默认子网掩码: 255.0.0.0 0xFF000000 )第一个字节为网络号,后三个字节为主机号。该类IP 地址的最前面为 “0” ,所以地址的网络号取值于 1~126 之间。一般用于大型网络。
B (128.0.0.0-191.255.0.0) (默认子网掩码: 255.255.0.0 0xFFFF0000 )前两个字节为网络号,后两个字节为主机号。该类IP 地址的最前面为 “10” ,所以地址的网络号取值于 128~191 之间。一般用于中等规模网络。
C (192.0.0.0-223.255.255.0) (子网掩码: 255.255.255.0 0xFFFFFF00 )前三个字节为网络号,最后一个字节为主机号。该类IP 地址的最前面为 “110” ,所以地址的网络号取值于 192~223 之间。一般用于小型网络。
D :是多播地址。该类 IP 地址的最前面为 “1110” ,所以地址的网络号取值于 224~239 之间。一般用于多路广播用户[1]
E :是保留地址。该类 IP 地址的最前面为 “1111” ,所以地址的网络号取值于 240~255 之间。
??

? ? ?
Java 中对 IP 的操作。
package com.bobo.ip;

import java.net.InetAddress;

public class IpDemo01 {

    /**
     * Java中对IP的封装操作
     * @param args
     */
    public static void main(String[] args) throws Exception {
        System.out.println(InetAddress.getLocalHost());
        System.out.println(InetAddress.getByName("127.0.0.1"));

    }
}
? ??
科普:为什么局域网中的 ip 地址都是 192.168 开头的?
私有地址
A 类地址: 10.0.0.0 - 10.255.255.255
B 类地址: 172.16.0.0 - 172.31.255.255
C 类地址: 192.168.0.0 - 192.168.255.255
? ??

3.3 IPv4IPv6
目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4),发展至今已经使用了30多年。
IPv4的地址位数为32位,也就是最多有2的32次方的电脑可以联到Internet上。
近十年来由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,各项资料显示全球IPv4位址可能在2005至2008年间全部发完。
??
什么是IPv6?
IPv6是下一版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。
为了扩大地址空间,拟通过IPv6重新定义地址空间。IPv6采用128位地址长度,几乎可以不受限地提供地址。按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
??
IPv6与IPv4相比有什么特点和优点?
更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
增强的组播(Multicast)支持以及对流的支持(Flow-control)。这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS)控制提供了良好的网络平台。
加入了对自动配置(Auto-configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
更高的安全性.在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,这极大的增强了网络安全。
??
3.4 端口号
具有网络功能的应用软件的标识号。

文章来源:https://blog.csdn.net/m0_52514893/article/details/134930299
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。