• 【网络编程】TCP/IP、UDP、网络概…


    计算机刚刚发明出来的时候,两台计算机之间是无法通信的,为了使计算机之间能够进行数据的交流,制定了OSI(Open SystemInterconnection)开放系统互联模型,而TCP/IP(我们所使用的)是在OSI之后发展而来的。

    给大家画个OSI的参考模型:

    【网络编程】TCP/IP、UDP、网络概念
    我们可以把主机1和主机2看成是2个独立的网络。计算机之间的访问要经过复杂的层级关系,为什么要分成这么多得层级呢?肯定是为了方便开发,分散工作量,提高效率。

    其中,网络层,数据链路层,物理层属于硬件。
    物理层:主要制定物理设备的标准(比如:网线接口类型,各种传输介质的传输速率等),主要作用是传输比特流(由1、0转化为电流强弱来进行传输,到达目的地后再转化成1、0,也就是数模与模数转换)。这一层数据叫比特,主要设备:集线器
    数据链路层:主要将物理层接收的数据进行MAC地址的封装和解封装。这一层数据叫帧,主要设备:网卡,交换机
    网络层:选择合适的网间路由和交换结点,确保数据及时传送,将从下层接到的数据进行IP地址封装和解封装。这一层数据叫数据包,主要设备:路由器。
    传输层:定义了一些传输数据的协议和端口,比如:TCP ,UDP协议,主要将下层接收的数据进行分段和传输,到达目的地址后再进行重组,这一层数据叫段。
    会话层:通过传输层建立数据传输通路。在系统之间发起会话或者接受会话请求(设备间需要互相识别,交朋友)
    表示层:主要进行对接受的数据进行解释、压缩和解压缩等,把计算机能够识别的动向转换成人能够识别的动向(比如图片、音乐、文字)
    应用层:主要是终端的应用,(比如浏览器、QQ等)可以理解成在电脑屏幕看到的东西 ——终端应用。



    理解了OSI参考模型,接下来看看TCP/IP参考模型和OSI有什么不同的地方:

    【网络编程】TCP/IP、UDP、网络概念
    从上面可以看出,TCP/IP参考模型将应用层、表示层和会话层归结为应用层;数据链路层和物理层归结为主机到网络层。为什么这样分呢?
    实际上,我们现实的开发中就包括了应用层、表示层和会话层的工作,因为每个层都需要有“管理者”去管理,这样就加大了沟通成本,而简化后我们就只需要4个“管理者”进行管理,直接减少了沟通成本。

    为了加深各位客官的理解,我们举个例子:我们平常上QQ需要发送消息,那发送消息在TCP/IP中的体现就如下图所示:

    【网络编程】TCP/IP、UDP、网络概念
    从图中可以看出,每到一个层级,会自动拼接层级标识,所以数据是不断增大的,而接受则反之。从物理层接受——直到应用层显示。

    网络通讯要素
    1. IP地址(网络设备唯一标识 )
    * 网络中设备的标识
    * 不易记忆,可用主机名
    * 本地回环地址:127.0.0.1 主机名:localhost

    2. 端口号(定位程序)
    * 用于标识进程的逻辑地址,不同进程的标识
    * 有效端口:0~65535,其中0~1024由系统使用或者保留端口,开发中不要使用1024以下端口

    3. 传输协议(用什么样的方式进行交互)
    * 通讯规则
    * 常见协议:TCP、UDP
    1> TCP(传输控制协议)   比如:QQ
    * 建立连接,形成传输数据的通道
    * 在连接中进行大数据传输(数据大小不受限制)
    * 通过三次握手完成连接,可靠协议,安全送达
    * 必须建立连接,效率稍低


    【网络编程】TCP/IP、UDP、网络概念
    2> UDP(用户数据报协议)   比如:短信
    * 将数据及源和目的封装成数据包中,不需要建立连接
    * 每个数据报的大小限制在64K之内
    * 因为无需连接,因此不可靠协议
    * 不需要建立连接,速度快

    4. URL(统一资源定位)   

    最基本的网络概念就先讲到这边,以后想到哪里再补充到哪里,如果有错误或者有什么问题可以联系我。
    转载请注明出处,谢谢!



  • 相关阅读:
    VBS获取系统路径
    悟透LoadRunner 如何让多个场景顺序执行?
    Python天天美味(7) 连接字符串(join %)
    Python天天美味(5) ljust rjust center
    悟透LoadRunner 调用外部DLL的点点滴滴
    Python天天美味(2) 字符遍历的艺术
    2008到了!我的博客由原来的DeViL→Ivy改名为EverGreen!
    Python天天美味(1) 交换变量
    分享Silverlight/WPF/Windows Phone一周学习导读(10月1日10月15日)
    分享Silverlight/WPF/Windows Phone一周学习导读(08月01日08月06日)
  • 原文地址:https://www.cnblogs.com/miaomiaoshen/p/5188639.html
Copyright © 2020-2023  润新知