Java基础(36)——网络编程相关知识详解及示例分析三(IP、端口和协议)


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、计算机网络的核心三要素

  计算机网络的核心三要素为:IP、端口、协议

1、MAC地址

  MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。一般说MAC地址是指网卡的MAC地址,除了电脑以外,交换机中或路由器中也有MAC地址。MAC地址是指硬件的物理地址,是全球唯一的,是一台机器的唯一标识(如00-E0-B0-FD-3D-5E )。 MAC地址由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里
  可以使用ipconfig -all 或者ipconfig/all 查看PC的MAC与IP地址

2、IP地址
(1)基础知识

  连接到TCP/IP网络中的每个计算机(或其他设备)都有唯一的地址,这就是IP 地址。因特网是基于TCP/IP协议实现的网络,其中所有设备上的IP地址具有全球唯一性。
  IPv4地址实质上是一个32位的整数,通常以“%d.%d.%d.%d”的形式表示,每个d是一个8位整数,范围为0~255。例如159.226.1.1。IPv6是用于替代现行版本IP协议(IPv4)的下一代IP协议,号称可以为全世界的每一粒沙子编上一个网址。由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍

(2)IP地址类别

  IP地址是由网络号和主机号组成的,如下图:
在这里插入图片描述
  注意:有一个特殊的表示本机的IP地址:127.0.0.1(localhost),它表示本机回环地址

(3)IP地址的获得方式

  IP地址是一个逻辑地址,它有两种获得方式:
  1、使用DHCP服务器动态分配IP地址
  2、在本地使用静态IP地址设置

(4)IP命令

  ipconfig :可以查看本机IP
  ping :测试IP地址的链接

(5)MAC地址与IP地址的区别

  IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。MAC地址在一定程度上与硬件一致,基于物理,能够标识具体。这两种地址各有好处,使用时也因条件而采取不同的地址
  这是由组网方式决定的,如今比较流行的接入Internet 的方式( 也是未来发展的方向)是把主机通过局域网组织在一起,然后再通过交换机和Internet 相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于IP只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;而MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盜来硬件(网卡),否则是没有办法冒名顶替的。对于普通的Java应用程序开发者而言,关注的重点是ip
  通俗来讲:IP地址就像家里的I门门牌号,MAC地址就像你的身份证号

3、端口

  一台机器只通过一条链路连接到网络.上,但一台机器中往往有很多应用程序需要进行网络通信,如何区分呢?这就要靠网络端口号(port) 了

(1) 什么是端口?

  1、端口号是一个表示逻辑通信信道的16位的整数。由操作系统中网络协议程序实现
  2、端口是一个抽象的数据结构,它包括一些数据结构和I/0缓冲区
  3、端口号和具体协议相关。例如,在TCP和UDP协议中相同的端口号,实际上表示的是不同的通信端口。例如: TCP中的80表示HTTP协议的通信端口,而UDP中的80端口和TCP中的80端口是不同的,它并不是用于HTTP协议的通信端口

(2) 端口类型

  端口号只有整数,范围是从0到65535 (2^16-1)。 编写通信程序时,应选择一个大于1023的数作为端口号,以免和系统端口发生冲突,端口主要类型及其范围如下所示:
在这里插入图片描述

4、Socket

  Socket是网络程序之间双向通信的最后终结点,TCP和UDP在通信时使用的Socket类是不同的,并且不能混合使用
  Socket由地址(IP) 和端口号(Port) 组成,其图解如下:
在这里插入图片描述
  对于socket编程我们有两种通信协议可以选择:
  UDP(User Data Protocol用户数据报协议)
  TCP(Transfer Control Protocol传输控制协议)

5、TCP和UDP

  传输层通常以TCP和UDP协议来控制端点到端点的通信
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值