zoukankan      html  css  js  c++  java
  • 14.1 网络编程的基础知识

    一、网络基础知识

    1.1 概念和功能

    所谓计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。
    计算机网络是现代通信技术与计算机技术相结合的产物,计算机网络可以提供以下一些主要功能.
    (1)资源共享。
    (2)信息传输与集中处理。
    (3)均衡负荷与分布处理。
    (4)综合信息服务。

    1.2 计算机网络的分类

    按照规模大小和延伸范围分类:

    (1)局域网(LAN):指在一个较小地理范围内的各种计算机网络设备互连在一起的通信网络,可以包含一个或多个子网,通常局限在几千米的范围之内。
    (2)城域网(MAN):主要是由城域范围内的各局域网之间互连而构成的,现在很少提起这个概念。
    (3)广域网(WAN):是由相距较远的局域网或城域网互连而成,通常是除了计算机设备以外,还要涉及一些电信通讯方式。
    Internet可以视为世界上最大的广域网。

    按照网络的拓扑结构来分:
    分为星型网络、总线型网络、环形网络、树型网络等

    网络传输介质分类:
    双绞线网、同轴电缆、光纤网和卫星网。

    1.3 通信协议

    计算机网络中实现通信必须有一些约定,这些约定被称为通信协议。通信协议负责对传输速率、传输代码、代码结构、传输控制步骤、出错控制等制定了处理标准。让两个节点之间能进行对话,必须在他们之间建立通信工具,是彼此之间能进行信息交换。
    通信协议通常由三部分组成:一是语义部分,用于决定双方对话的类型;二是语法部分,用于决定双方对话的格式;三是交换规则,用于决定双方的应答关系。
    国际标准化组织ISO于1978年提出“开放系统互连参考模型”,即著名的OSI(Open System Interconnection)
    开放系统互连模型把计算机网络分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,收到计算机界和通信业界的极大关注。
    下图显示了OSI参考模型的推荐分层:

    1.4 IP协议和TCP协议

    IP协议(互联网协议Internet Protocol)是一种非常重要的通信协议,是支持网间互联的数据报协议。它提供了网间连接的完善功能,包括IP数据报规定互联网互联网网络范围内的地址格式。
    TCP协议(Transmission Control Protocol)协议,即传输控制协议,它规定一种可靠的数据信息传递服务。虽然IP和TCP协议功能不尽相同,也可以分开使用,但是它们在同一时期作为一个协议来设计的,并且在功能上也是互补的。因此实际使用常常把这两个协议统称为TCP/IP协议。TCP/IP协议是互联网最重要的基础协议。
    按照TCP/IP协议,网络通常被分为4层,这个4层模型与前面的OSI七层模型有大致的对应关系,下图显式了TCP/IP分层模型与OSI分层模型之间的对应关系:

    二、IP地址和端口号

    2.1 IP地址

    IP地址用于标识网络中的一个通信实体,这个通信实体可以是一台主机,也可以是一台打印机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,都必须使用IP地址来进行标识。
    IP地址是数字型的,IP地址是一个32位(32bit)整数,但通常为了更加便于记忆,通常也把它分成4个8位的二进制数组成,每8位之间用圆点隔开,每个8位整数可以转换成一个0~255的十进制整数,因此我们看到的IP地址常常是如下形式:202.9.128.88。
    NIC(Internet Network Information Center)统一负责全球Internet IP地址的规划、管理,而Inter NIC、APNIC、RIPE三大网络中心具体负责美国及其他地区的IP地址分配。其中APNIC负责亚太地区的IP的管理,我国申请的IP地址也要通过APNIC,APNIC的总部设在日本东京大学。
    IP地址被分为了A、B、C、D、E五类,每个类别的网络标识和主机标识各有规则:
    (1)A类:10.0.0.0~10.255.255.255
    (2)B类:172.16.0.0.0~172.31.255.255
    (3)C类:192.168.0.0~192.168.255.255

    2.2 端口号

    IP地址唯一标识网络上的一个通信实体,但一个通信实体可以有多个通信程序同时提供网络服务,此时还需要使用端口。
    端口是一个16为整数,用于表示数据交给哪个通信程序处理。因此,端口就是应用程序与外界交流的入口,它是一种抽象的软件结构,包括一些数据结构和I/O(基本输入/输出)缓冲区。
    不同的应用程序处理端口不同端口的数据,同一台机器上不能有两个程序使用一个端口,端口号从0到655535,通常将它分为如下三类:
    (1)公认端口(Well Known Ports):从0-1023,它们紧密绑定(Blinding)一些特殊的服务。
    (2)注册端口(Registered Ports):从1024-49151,它们松散地绑定一些服务。应用程序通常使用这个范围内的端口。
    (3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535,这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口。
    一些常用端口:

    把IP地址理解为某个人的住所地址(包括街道和门牌号),但仅仅有地址还找不到这个人,还需要直到房间号才可以找到这个人。因此如果把程序当成人,把计算机网络类似于邮递员,当一个程序需要发送数据时,需要指定目的地的IP地址和端口,如果指定了正确的IP地址和端口号,计算机网络才可以把数据送给该IP地址和端口所对应的程序。

    三、域名系统

    将特定 IP 地址映射至字符串
    映射由域名服务器系统维护

  • 相关阅读:
    Mac修改默认的电子邮箱客户端
    记录下生活:ETC卡充值(上海)
    Mac下卸载Mysql数据库
    网络爬虫学习笔记 1
    Clock置换算法
    用random.randint函数时 报错 'str' object cannot be interpreted as an integer问题
    分页式存储管理
    初学C++ vector 容器
    马一个讲devc++调试讲的很好的视频
    一些笔记(xss 跨站脚本攻击)
  • 原文地址:https://www.cnblogs.com/weststar/p/12887749.html
Copyright © 2011-2022 走看看