套接字产生的原因:
当应用进程通过传输层进行通信时 ,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服务器的管辖范围不是以“域”为单位,而是以“区”为单位。