Java_177_网络编程_基础知识_通信协议_通信接口_网络分层_OSI参考模型_数据封装_数据拆封_IP地址分类_特殊IP地址_InetAddress对象

package Ntework;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 网络编程(非网页编程)
 * 
 * 通讯协议
 * 计算机网络中实现通信必须有一些约定即通信协议,对速率,传输代码,代码结构,传输控制步骤,出错控制等制定标准.
 * 
 * 通信接口
 * 为了使两个节点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换.
 * 接口包括两部分:
 * 硬件装置:实现节点之间的信息传送;
 * 软件装置:规定双方进行通信的约定协议;
 * 
 * 网络分层
 * 由于节点之间联系很复杂,在指定协议时,把复杂成份分解成一些简单的成份,在将他们复合起来.最常用的复合方式就是层次方式,即同层间可以通信,上一层可以调用下一层,而与在下一层不发生关系.
 * 
 * OSI参考模型:开放系统互连参考模型(Open System Interconnect)
 * 7层协议     TCP/IP协议集
 * 应用层---
 * 表示层      |->应用层Telnet/FTP/SMTP/DNS/HTTP以及其他应用协议
 * 会话层---
 * 传输层--->传输层TCP/UDP
 * 网络层--->网络层IP/ARP/RARP/ICMP
 * 数据链路层|
 * 物理层---->网络接口 各种通信网络接口(以太网等)(物理网络)
 * 
 * 数据封装
 * Data Encapsulation是指将协议数据单元(PDU)封装在一组协议头和协议尾中的过程.
 * 在OSI七层参考模型中,每层主要负责与其它机器上的对等层进行通信.该过程是在协议数据单元(PDU)中实现的,其中每层的PDU一般由本层的协议头,协议尾和数据封装构成.
 * 由于用户传输的数据一般都比较大,有的可以达到MB字节,一次性发送出去十分困难,于是就需要把数据分成许多片段,在按照一定的次序发送出去.这个过程就是需要对数据进行封装
 * 
 * 发送方数据处理的方式是从高层到底层,逐层进行数据封装
 * 
 * 数据拆封
 * Data dismantling是指将收到的数据进行拆包,每一层只把对该层有意义的数据拿走,或者说每一层只能处理发送方同等层的数据,然后把其余的部分传递给上一层,这就是对等层通信的概念.
 * 
 * 接收方数据处理的方式是从底层到高层,逐层进行数据解封装
 * 
 * IP地址
 * 用来标识网络中的一个通信实体的地址.通信实体可以是计算机/路由器等.比如互联网的每个服务器都要有自己的IP地址,而每个局域网的计算机要通信也要配置IP地址.路由器是连接两个或多个网络的网络设备.
 * 
 * IP地址分类
 * IPV4:32位地址,以点分十进制表示,192.168.0.1
 * IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制表示,数之间用冒号(:)分开,如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
 * 
 * 特殊的IP
 * 127.0.0.1 本机地址
 * 192.168.0.0-192.168.255.255 私有地址,属于非注册地址,专门为组织机构内部使用.
 * 
 * InetAddress
 * 封装计算机IP地址,没有端口
 * 使用getLocalHost方法创建InetAddress对象
 * 两个成员方法:
 * 1.getHostAddress:返回地址
 * 2.getHostName:返回计算机名
 * @author pmc
 *
 */
public class txtTest {
	public static void main(String[] args) throws UnknownHostException {
		//使用getLocalHost方法创建InetAddress对象
		InetAddress addr=InetAddress.getLocalHost();
		//获取IP地址
		System.out.print(addr.getHostAddress()+"\t");
		//获取计算机名
		System.out.println(addr.getHostName());
		
		//根据域名得到InetAddress对象
		addr=InetAddress.getByName("www.baidu.com");
		System.out.print(addr.getHostAddress()+"\t");
		System.out.println(addr.getHostName());
		
		//根据IP得到InetAddress对象
		addr=InetAddress.getByName("222.222.222.46");
		System.out.print(addr.getHostAddress()+"\t");
		System.out.println(addr.getHostName());
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_Pmc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值