A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Duang__ 中级黑马   /  2015-11-29 22:01  /  444 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

网络模型

  OSI(Open System Interconnection开放系统互连)参考模型

  TCP/IP参考模型

网络通讯要素

  IP地址

  端口号

  传输协议



OSI七层协议的作用简单描述成以下形式:

        应用层      与用户应用进程的接口

        表示层      数据格式的转换

        会话层      会话管理与数据传输的同步

        传输层      端到端经网络透明地传送报文

        网络层      分组传送,路由选择

        数据链路层  在链路上无差错地传送帧

        物理层      经物理媒体透明传送比特流


网络通讯要素

   IP地址:InetAddress

         不易记忆,可用主机名

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

         在日常应用中的计算机地址是用"192.168.0.1","www.it315.org"等字符串格式来表示的。

   端口号:用于标识进程的逻辑地址,不同进程的标识

         有效端口:0~65535,其中0~1024是系统使用或者保留端口。

   传输协议:通讯的规则

          常见协议:TCP,UDP

[html] view plaincopy
<span style="font-family:Microsoft YaHei;">public static void main(String[] args) throws UnknownHostException{  
        //ip地址对象:InetAddress  
        //获取本地主机地址对象  
    //  InetAddress ip = InetAddress.getLocalHost();  
        //获取其他主机的地址对象  
        InetAddress ip = InetAddress.getByName("198.168.0.1");  
         
        System.out.println(ip.getHostAddress() + ":" + ip.getHostName());  
    }</span>  

域名:网站的网址

域名解析:将域名转换成服务器的IP地址的过程。



域名解析图:


端口:其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口

网络中常用的端口号:

         服务                                 端口号

   Mysql 数据库服务          3306

       SMTP                                   25

       HTTP                                   80

     SQL server                          1433

       Oracle                               1521

       DNS                                     53



TCP协议和UDP协议:

TCP协议:传输控制协议

UDP协议:用户数据报协议


TCP将数据分成数据报,用能够到达目的地的路径信息连行包装,接收端则将这些数据进行重组。它提供可靠的、面向连接的数据报传递服务。

    TCP协议位于IP协议的上层,为数据提供错误校验,流量控制及序列信息用以补充IP协议的不足。

     UDP是无连接的服务,优点是灵活方便和比较迅速,但不能防止报文的丢失、重复或失序,特别适合于传送少量零星的报文。比如DNS就是基于UDP。



TCP与UDP的区别:

   TCP 提供面向连接的、可靠的数据流传输,而 UDP 提供的是非面向连接的、不可靠的数据流传输。

TCP 传输单位称为报文段, UDP 传输单位称为用户数据报。

TCP 注重数据安全性, UDP 数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。





TCP客户端程序与TCP服务器端程序的交互过程:

(1)服务器程序创建一个ServerSocket,然后调用accept方法等待客户来连接。

(2)客户端程序创建一个Socket并请求与服务器建立连接。

(3)服务器接收客户的连接请求,并创建一个新的Socket与该客户建立专线连接。

(4)建立了连接的两个Socket在一个单独的线程(由服务器程序创建)上对话。

(5)服务器开始等待新的连接请求,当新的连接请求到达时,重复步骤(2)到步骤(5)发的过程。





Socket

  Socket:就是为网络服务提供的一种机制。通信的两端都有Socket。

  网络通信其实就是Socket间的通信。数据在两个Socket间通过IO传输。



服务器端接收到客户端Scoket的连接请求时会通过accept()方法返回一个与客户端Socket建立专线连接的服务器端的Socket对象,不能使用Socket构造方法创服务器端的Socket对象。当服务器端的Socket对象与客户端Socket对象建立专线连接后,它们以网络字节流的形式进行数据交换,Socket的getInputStream与getOutputStream分别用于返回Socket的输入流对象和输出流对象。



下面一个图解很容易明白:




URL

  URL代表一个统一资源定位符,它是指向互联网“资源”的指针。其中统一资源代表所有资源。能直接定位到网络的某一个资源上。



其中URL类有一个方法是getConnection()表示打开URL资源的连接,这时就可以方便的取资源。内部封装了Socket。getConnection抽象类代表应用程序和URL之间的通信连接。

这个类的实例可以用在读取和写入此URL引用的资源。


其中这些都要基于协议才能顺利的传输完成。比如我们平时用的最多的HTTP协议,它是

用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由URL指定的IP地址。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。



HTTP协议分为HTTP1.1和HTTP1.0,其中的主要区别如下:

1.HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,;
2.HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。

在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象!

2 个回复

正序浏览
不懂啊 还是菜鸟 还没学到这
回复 使用道具 举报
重點不錯,感謝分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马