一、 网络参考模型
1、OSI参考模型和TCP/IP 参考模型
七层描述:
(1). 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流。
(2). 数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。这一层工作的设备是交换机,数据通过交换机来传输。
(3). 网络层:主要将下层接收到的数据进行IP地址(例,192.168.0.1)的封装与解封装。这一层工作的设备是路由器。。
(4). 传输层:定义了一些传输数据的协议和端口号(WWW端口号80等),主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。
(5). 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接收会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
(6). 表示层:主要是进行对接收的数据进行解释,加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够识别的东西(如图片、声音等)。
(7). 应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、WEB(IE浏览)、QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西,就是终端应用)。
注:
(1).每个网卡的MAC地址都是全球唯一的。
(2).路由器实现将数据包发送到指定的地点。
(3).应用软件之间通信的过程就是层与层之间封包、解包的过程
(4).OSI参考模型虽然设计精细,但过于麻烦,效率不高,因此才产生了简化版的TCP/IP参考模型。
2、网络通信三要素:IP地址,端口号,传输协议。
(1)、IP地址:InetAdderss类
1.它是网络中的设备标识
2.不易记忆,可用主机名表示,两者存在映射关系
3.IPV4数量已经不够分配,所以产生了IPV6
4.本地回环地址:127.0.0.1 主机名:localhost
5.在没有连接互联网的情况,为了让访问本机方便,所以分配了一个默认的IP地址,也就是本地回环地址
(2)、端口号
1.用于标识进程(应用程序)的逻辑地址,不同进程的标识
2.有效端口:0~65535,其中0~1024系统使用或保留端口。
3.没有程序都有端口号用来定为应用程序
(3)、传输协议
这是通讯的规则。常见协议有:UDP、TCP。
UDP
1.将数据以及源和目的封装成数据包中,不需要建立连接
2.每个数据包的大小限制在64k内
3.因无连接,所以是不可靠的协议
4.不需要建立连接,速度快
应用案例:QQ聊天、视频聊天、对讲机、FeiQ、视频教学等在线视频都是UDP
TCP
1.建立连接,形成传输数据的通道
2.在连接中进行大数据量传输
3.通过三次握手完成连接,是可靠协议。三次握手:第一次本方发送请求,第二次对方确认连接,第三次本方确认对方连接成功。
4.必须建立连接,效率会稍低
应用案例:FTP文件传输、迅雷下载、打电话
3、java.net.InetAdderss常用网络方法
无构造函数,只能用方法返回本类对象
- static InetAddress getLocalHost();
- static String getHostName();
- static String getHostAddress();
- String toString();
- static InetAddress getByName(String host);
- static InetAddress[] getAllByName(String host);
代码演示:
- import java.net.*;
- class InetAddressDemo
- {
- public static void main(String[] args) throws Exception
- {
- InetAddress ia= InetAddress.getLocalHost();
- String name=ia.getHostName();
- String ip=ia.getHostAddress();
- System.out.println("name="+name);
- System.out.println("ip="+ip);
-
- InetAddress i=InetAddress.getByName("192.168.1.1");
- System.out.println(i.getHostAddress());
-
- InetAddress[] ina=InetAddress.getAllByName("www.sina.com.cn");
- for (InetAddress a:ina )
- {
- System.out.println(a.getHostAddress());
- System.out.println(a.getHostName());
- }
- }
- }
如果本文对您有帮助请分享给您的好友,也可按Ctrl+D收藏本页面,谢谢!感谢本文来源方:金逗逗 博客园