• 网络编程基本原理


    1、网络模型与协议

    。。。。。。。。。。。。

    2、地址

    为了使网络上的计算机能进行相互通信,必须有一个唯一的标识来区分网络上每台计算机。

    两种标识可以使用:

    (1)物理地址

    对于以太网来说,物理地址就是一个48位的位串,此地址在网卡的生产过程中就已经固定了,是不可更改的,并且是全球唯一的。

    使用指令ifconfig可以查看到本机的物理地址

    有些计算机可能会有多块网卡,每块网卡代表计算机的一个网络接口,我们称这种计算机为多宿主计算机。

    (2)IP地址

    TCP/IP协议能够使计算机之间进行与底层物理网络无关的通信,底层网络可以是以太网也可以是令牌环网或者是其他类型的网,两台

    计算机可以位于不同的局域网内,但通过TCP/IP协议它能够进行通信。前面介绍的物理地址,虽然也能唯一的标识网络上的每台计算机,

    但是物理地址依赖于底层网络(不同的底层网络采用不同的物理地址),因此必须使用一个与底层硬件技术无关的通用地址来标识网络

    上的每台计算机,这就是IP地址。IP地址由32个比特位构成,它分为两部分:计算机所在的网络号和该网络给该计算机分配的主机号,

    分别成为网络ID和主机ID

    32位(4字节)的IP地址为了表示方便也是每个字节隔开,不过不是使用冒号而是使用点号,

    例如IP地址 202.205.3.195 。一个字节可以表示的数的范围是0~255

    因此在理论上IP地址的范围为:

    0.0.0.0   ~ 255.255.255.255

    但实际上有些地址是专用的,不能用来标识计算机。

    IP地址按一定的格式分成5类:

    A类 B类 C类 D类 E类

    A类地址使用8位作为网络地址,其余24位为主机地址,网络地址的第一位固定为0

    B类地址使用16位作为网络地址,其余16位为主机地址,网络地址的第一、第二固定为1 0

    C类地址使用24位作为网络地址,其余8位为主机地址,网络地址的第一、第二、第三固定为1 1 0

    TCP/IP上的每台主机还有一个32位的子网掩码,它用来区分IP地址的网络号和主机号。将IP地址与子网掩码进行

    按位与运算就可以得到ip地址的网络号,网络号是一台主机所处的网络的编号。例如,ip地址为222.197.168.244

    子网掩码为255.255.255.0  两者做与运算得到的结果为222.197.168.0,那么这台主机所处的网络编号为222.197.168.0

    127.0.0.1是一个特殊的地址,它指代本机,用于测试本机上的TCP/IP协议是否正常工作。

    输入 ping  127.0.0.1  如果有回应说明本机上的TCP/IP协议工作正常。

    3、端口

    有了网络地址就可以唯一地标识网络上的每台计算机。通常 一台计算机上会同时运行多个程序,而他们可能要同时访问网络。

    对于一个计算机上的多个应用程序,TCP和UDP协议采用16位的端口号来识别他们。一台主机上的不同进程可以绑定到不同的

    端口上,这些进程都可以访问网路而互不干扰。

    TCP/IP将端口号(16位的无符号整数,0~65535)分为两部分,

    一部分是暴力端口即知名端口,范围0~1023,这些端口由权威机构规定其用途,如编号为21的TCP端口由FTP协议专用。

    80号TCP端口由HTTP协议专用

    其余的为自由端口,用户进程可自由申请和使用。

    4、IP协议

    5、用户数据报协议UDP

    UDP协议位于传输层,在网络层之上而在应用层之下。UDP协议向应用程序提供一种面向无连接的服务,通常UDP协议被

    用于不需要可靠数据传输的网络环境中。UDP不需要建立连接,应用程序采用UDP协议无需建立和维持连接。UDP协议不

    保证数据报按顺序、正确地到达目的地,这项任务由应用程序来完成。

    6、传输控制协议TCP

    (1)TCP数据包的格式

    TCP提供一种面向连接的、可靠的数据传输服务。

    (2)使用TCP进行通信的过程

    -----------建立连接

    -----------关闭

    7、客户机/服务器模型

    网络中的实际应用大多都可以归纳为客户机/服务器模型(client/server模型),其中客户机是指请求服务的一方,服务器是指提供某种服务的一方。

    有些应用程序,请求服务的同时也提供一定的服务,如果拆开来看,这种程序也是基于客户机/服务器模型。

    客户机/服务器模型既可以使用TCP协议也可以使用UDP协议,或者两者混合使用,可根据具体需要而定。在客户机/服务器模型中,通常服务器端

    的IP地址和端口号是固定的,客户端程序连接到服务器IP和端口。通常客户端的程序设计相对要简单一些。而服务器程序由于要考虑多个客户端

    同时请求服务的问题,设计上相对复杂一些。

  • 相关阅读:
    springboot 集成RabbitMQ
    服务接口API限流 Rate Limit 续
    服务接口API限流 Rate Limit
    聊下并发和Tomcat线程数
    java 线程池 异步任务
    Tomcat中更改网站根目录和默认页的配置方法
    QPS从0到4000请求每秒,谈达达后台架构演化之路
    分布式与集群是什么 ? 区别是什么?
    大型网站技术架构演变总结
    提升高并发量服务器性能解决思路
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6760812.html
Copyright © 2020-2023  润新知