网络编程:网络通信三要素|学习笔记

本文涉及的产品
数据传输服务DTS,同步至DuckDB 3个月
简介: 快速学习网络编程:网络通信三要素

开发者学堂课程【大数据 ZooKeeper 快速入门网络编程:网络通信三要素】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7577


网络编程:网络通信三要素


 目录:

一、IP 地址

二、端口号

三、传输的协议

 

一、IP 地址

1. IP 是网络当中计算机的唯一标识当前的IP有两个大的版本,一个叫做 IPV4版本,一个叫做 IPV6使用接触最多的是 IPV4,针对 IP4版本,它一般是一个32位,或者四字节来表示的,但是为了人类更好的去阅读,一般用点分十进制来表示,就是常见的这种地址,比如说192.168....如果用32倍来表示,都是0011,看起来不太方便

2. IP 地址是由网络地址加上主机地址来组成,针对一个位数不同呢?可以分为以下这几种情况

A 类 IP第一个八位表示网络地址,剩下的三个八位表示主机地址,网络地址,一般来说它不可改变,那么剩下的三个八位表示主机地址是不是意味着它可以组成这个网络当中的机器特别多,理论上应该是255×25×25,可以组成这么多台机器

B 类网站两个八位是网络地址,是固定不变的,后面两个八位是主机地址,组建的 网络的局域网机器的数量相对a类要少

C 类是前三个八位表示网络地址,剩下一个八位表示主机地这是接触最多的。通过路由器去搭建一个局域网,一般来说都是一个C类网站,就是说前面的192.168.1,前面这三个表示网络地址一般不变,后面这一个为表示主机地址,理论上是从0到255,可以组建255台机器,那就是所谓的C类网站,

D 类地址一般用于在 IP 网络中的主播

E 类地址呢,一般在科研当中会使用

3.  在 Java 语言当中,要想去操作 IP 或者使用 IP 呢,需要使用叫做 Inetaddress 这个类,这个类当中就分装出了操作 IP 的一些方法。比如通过 InetAddressgetlocalhost 就可以获取到本机的一些相关信息,可以 get 一个主机里包括一个 dress 地址。在编程这个角度来看,要使用这个类来操纵 IP,这是第一个要素 IP 地址

public static void main(String[J] args)throws UnknownHostException {

InetAddress localHost = InetAddress.getLocalHost();

System. out.println(localHost.getHostAddress());

System. out.println(localHost.getHostName));

 

二、端口号

第二个要素叫做端口号,端口号是一个数字,是一个逻辑标识,用来表示不同的竞争因为在一台机上呢可能会运行不同的程序,那么要怎么样区分这些程序呢?给它起一个标识,这个端口号一般来说是从0到65535,其中要注意在0到1024当中,尽量不要自己去设置,因为系统会使用或者一些保留端口比如常见的80端口,一般外包服务使用80端口,一个H远程协议的端口。要想自己去开发一个网络通信建议把它端口起的不要再过于小,3万或者4万左右的这样基本上不会重复

 

三、传输的协议

1.第三个要素叫做传输的协议,协议就是大家彼此协商,达成一致决定,双方都按照这个遵守

2.通信当中常见的协议有两个,一个叫做 udp,用户数据报协议还有一个叫做 TCP,传输控制协议。

3.这两个协议特点都比较明显

(1)第一个叫做 udp 叫做用户的数据报协议

udp 协议再进行传输的过程中呢,不需要建立连接,但是不需要接连接就意味着他是一个不可靠的协议。发送数据的时候,如果对方没有准备好的话,势必会造成一个数据的丢失,这是它的第一个特点,不需要建立连接。

第二个特点 udp 协议需要把的数据打包,叫做用户数据包协议,就是要发送数据,首先把数据分装在一个数据包当中,而且这个包它有大小限制,一般在64KB 以内因为不需要建立连接的,因此它的传输的速度会比较快只要把数据打包发送即可间接导致了它是一个不可靠的协议。数据传输要打包,不需要建立连接,大小有限制,不可靠,速度快。

(2)TCP 的一个特点

TCP 它全称叫做传输控制协议,它的特点有很多,跟 UDP 正好相反。TCP 协议要想进行使用传输协议进行通信要建立连接,彼此双方都准备好,如果一方没有准备好,连接建立不就不能够进行通信。因此它第一个特点叫建立连接

建立连接之后就会在通信的双方形成一个传数据的通道通信先铺通管道,当管道打通之后就可以在这个通道当中进行大量的数据传输,而且也不需要打包,也没有大小的限制,因此它是一个可靠的信息

要想建立通信,首先得去建立连接,而且这个建立连接是通过一个所谓的三次握手来完成连接的。这样就更加去保证了进行数据传输的一个可靠性,但是缺点也比较明显。因为需要建立原件,会导致它的效益相对于 udp 来说比较低一点这两个协议一般在通信当中,在网络当中会最常见,不管使用使用什么都要牢牢的把握住它的一个特点来做一个具体场合的使用即可

因此通过 IP 在计算机中找到唯一要通信那台机器,然后通过端口号找到想要通信的那个程序,然后再达到彼此都遵守的常规协议,这样就可以满足在计算机中进行一个跨网络的通信,跨网络的数据传输。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
4614 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
9月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
352 12
|
移动开发 网络协议 NoSQL
不为人知的网络编程(十七):冰山之下,一次网络请求背后的技术秘密
本文将抛弃千篇一律的计网知识理论,从现实的互联网技术实践角度,一步步为你分享一次网络请求背后的技术秘密。
167 0
|
10月前
|
安全 网络安全 UED
为何长效代理静态IP是网络管理的关键要素
在信息化时代,静态长效IP代理对网络管理至关重要。它能提升网络服务质量,确保远程办公、视频会议等应用的稳定性和连续性;减少延迟和网络拥堵,加快数据传输;提高网络安全,便于设置访问权限,防止未授权访问。91HTTP高质量代理IP服务商助力高效信息获取。
217 23
|
9月前
|
虚拟化 网络虚拟化 Windows
导入虚拟机到Hyper-V环境时,理解并配置网络适配器设置是确保网络通信的关键
在Hyper-V环境中,正确配置虚拟机的网络适配器是确保其网络通信的关键。需先启用Hyper-V功能并创建虚拟交换机。接着,在Hyper-V管理器中选择目标虚拟机,添加或配置网络适配器,选择合适的虚拟交换机(外部、内部或私有),并根据需求配置VLAN、MAC地址等选项。最后,启动虚拟机并验证网络连接,确保其能正常访问外部网络、与主机及其他虚拟机通信。常见问题包括无法访问外部网络或获取IP地址,需检查虚拟交换机和适配器设置。
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
4078 2
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
356 2
|
缓存 监控 网络协议
计算机网络的常用的网络通信命令(Windows)
本文介绍了网络技术中常用的命令,如ping用于检测网络连通性,ipconfig查看TCP/IP配置,netstat监控网络状态,arp显示和修改ARP缓存,at安排任务执行,tracert追踪路由,以及nbtstat获取NetBIOS信息。
288 1
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
345 0
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解

热门文章

最新文章