zoukankan      html  css  js  c++  java
  • 套接字和域名系统DNS

    套接字产生的原因:

         当应用进程通过传输层进行通信时 ,TCP和 UDP将面临同时为多个应用进程提供并行通信的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。 为了区别每个应用进程和连接,许多计算机的操作系统为应用进程和TCP/IP协议簇提供了称为套接字的接口

    应用进程通过套接字接入到网络:

         

    套接字的定义:

         套接字是同一台主机应用进程和传输层的接口。因为它是建立在网络应用程序之上的可编程接口,所以它也被称为API﹙应用程序接口﹚,Socket可以看成两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中

       

    域名系统DNS:

    优点:容易记忆。所以,当我们访问主机(主要是服务器)的时候经常使用域名。 

    缺点:域名为网络中的主机或路由器提供的信息很少,而且,域名是由可变长度的字符构成的,所以他们很难被路由器处理。

    IP地址:

    优点:它为网络中的主机提供较多的位置信息, 同时IP地址也适合路由器处理。

    缺点:抽象和难于记忆。 当我们在网络层访问主机的时候使用IP地址。 

       

    既然域名和IP地址可以不同层次上标志主机 或路由器,那么如何实现域名和IP地址之间 的映射? 

    通过域名解析协议(DNS)协议来实现域名和IP地址之间的映射。 

    DNS既代表域名系统又代表域名解析协议。 

    许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。

    因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。

    名字到IP地址的解析是由若干个域名服务器程序完成的。

    域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。 

    因特网采用了层次树状结构的命名方法。 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。

    域名的结构由标号序列组成,各标号之间用点隔开: … . 三级域名 . 二级域名 . 顶级域名;各标号分别代表不同级别的域名。

    域名只是个逻辑概念,并不代表计算机所在的物理地点。 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而IP地址是定长的32位二进制数字则非常便于机器进行处理,却不适合人们记忆。

     一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。 DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。 

  • 相关阅读:
    Flink SQL Client初探
    ansible快速部署cassandra3集群
    利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)
    spark读取HDFS目录时报错Failed on local exception: com.google.protobuf.InvalidProtocolBufferException
    Spark学习进度-Spark环境搭建&Spark shell
    jquery获取select选中的值
    java零基础到架构师学习线路(附视频教程)
    plsql连接远程oracle数据库
    如何在通用异常处理时获取到方法名称(获取注解参数JoinPoint)
    java:找不到符号(使用lombok)
  • 原文地址:https://www.cnblogs.com/luoquan/p/4887512.html
Copyright © 2011-2022 走看看