• java学习笔记 --- 网络编程(网络的基础知识)


    1、网络模型:

      |--OSIopen stystem Interconnection开放式系统互连)

      |--特点:

       是一种异构系统互连的分层结构;提供了控制互连系统交互规则的标准骨架;定义一种抽象结构,而并非具体实现的描述;不同系统中相同层的实体为同等层实体;同等层实体之间通信由该层的协议管理;相信层间的接口定义了原语操作和低层向上层提供的服务;所提供的公共服务是面向连接的或无连接的数据服务;直接的数据传送仅在最低层实现;每层完成所定义的功能,修改本层的功能并不影响其他层。

      |--七层结构:

       物理层: 提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。

           数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。

           网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。      

           传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。TCP(传输控制协议)传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据,UDP(用户数据报协议,于TCP特性恰恰相反)用于传输可靠性要求 不高,数据量小的数据,如QQ聊天数据就是通过这种方式进行传输。

           会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。

           表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。

           应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

      |--TCP/IP:

        |--TCP/IP的分层模型

               Internet采用了TCP/IP协议,如同OSI参考模型,TCP/IP也是一种分层模型。

               它是基于硬件层次上的四个概念性层次构成,即网络接口层、IP层、传输层、应用层。

               网络接口层:也称数据链路层,这是TCP/IP最底层。功能:负责接收IP数据报并发送至选定的网络。

               IP层:IP层处理机器之间的通信。功能:它接收来自传输层的请求,将带有目的地址的分组发送出去。将分组封装到数据报中,填入数据报头,使用路由算法以决定是直接将数据报传送  至目的主机还是传给路由器,然后把数据报送至相应的网络接口来传送。

               传输层:是提供应用层之间的通信,即端到端的通信。功能:管理信息流,提供可靠的传输服务,以确保数据无差错的地按序到达。

             2、TCP/IP模型的分界线

               协议地址分界线:以区分高层和低层的寻址,高层寻址使用IP地址,低层寻址使用物理地址。应用程序IP层之上的协议软件只使用IP地址,而网络接口层处理物理地址。

    2、网络通信要素

      |--IP地址:网络中设备的标示

          127.0.0.1本地回环地址 主机名:localhost

          IP地址不能冲突,但是可以重复,在不同的网络中的是可以重复的。

      |--端口号:用于表示进程的逻辑地址,不同进程的标示,有效端口:0~65535其中0~1024系统使用或者保留端口,

      |--物理端口:即我们看的见的端口,比如网卡端口

      |--逻辑端口:就是些数字标示。

      |--传输协议:

        |--TCP:

          |--特点:

            1、建立连接,形成传输数据的通道

            2、在连接中进行大数据量传输

            3、通过三次握手完成连接,是可靠协议,一旦连接断开数据就不存在了

            4、必须建立连接、效率会稍低

        |--UDP:

          |--特点:

            1、将数据以及源和目的封装成数据包,不需要建立连接

            2、每个数据报的大小在限制的64K内

            3、因无连接,是不可靠的协议

            4、不要建立连接 ,速度快。

    2、IP地址对象:

        InetAddress:互联网协议地址

        getLocalHost();返回本地主机

        getHostName();获取主机名

        getByName();根据主机名或者IP地址的字符串表示得到IP地址对象

        getAllByName();

        地址解析:直接通过IP地址可以访问新浪的主机,同时也可以通过主机名去访问。

        百度校招笔试题:URL有哪几个部分组成?协议、主机、端口、文件

        DNS域名解析:客户端输入主机名去查找DNS服务器,查找对应的IP地址,然后返回它客户端在根据IP地址指向所要去访问的主机。

        扩展:怎么去进制掉上网过程中弹出的小广告

          去配置文件中一下面的格式配置即可

          127.0.0.1  www.XXXX.com

          eg127.0.0.1 www.sina.com表示禁止不能上新浪网.

    /*InetAddress的成员方法:
     * public static InetAddress getByName(String host):根据主机名或者IP地址的字符串表示得到IP地址对象
     */
    public class InetAddressDemo {
        public static void main(String[] args) throws UnknownHostException {
            // public static InetAddress getByName(String host)
            // InetAddress address = InetAddress.getByName("sanxing");
            // InetAddress address = InetAddress.getByName("192.168.12.92");
            InetAddress address = InetAddress.getByName("192.168.12.63");
    
            // 获取两个东西:主机名,IP地址
            // public String getHostName()
            String name = address.getHostName();
            // public String getHostAddress()
            String ip = address.getHostAddress();
            System.out.println(name + "---" + ip);
        }
    }
  • 相关阅读:
    Hibernate学习之缓存机制
    Hibernate学习之hibernate状态
    Ajax学习之小结
    Hibernate学习之hibernate执行顺序
    Svn入门
    Svn服务启动的两种方式
    Eclipse安装Svn插件
    一种给力的带背景的超链接的写法
    转载:IE下div使用margin:0px auto不居中的原因
    github上的Lua in Erlang
  • 原文地址:https://www.cnblogs.com/flei/p/6624206.html
Copyright © 2020-2023  润新知