这学期开始学习计算机网络,接触了一些底层相关的知识,比如一台机器上的应用程序是如何发送到另外一台机器上的同一个应用程序上的。

   首先先讲一下网络体系结构的五层结构划分:自底向上依次是:物理层,数据链路层,网络层,传输层,应用层。这里只提到下面三层结构。

   物理层:与硬件相关,传输0 1 比特流,就是数据一放上去只管传输就可以了。在这个层次中一般没有协议只有规程。也就是只与硬件相关了。以上几层重点都是协议,因为功能都是靠协议实现的。(协议其实就是代码 ~~)

  数据链路层:这个五层体系结构实际上是以TCP/IP模型和OSI模型结合起来的。咱们现在用的大多是因特网,因特网采用的就是TCP/IP模型。在这个实际模型中,数据链路层和物理层 被划分成了一个层次,叫做链路层。划分一个数据链路层,就是为了将各个层次的功能区分开。因为在层次结构中,下层是为了上一层提供服务的,两个层次实现的功能完全分开,实现低耦合。这样当当今这个协议不怎么需要变化,而硬件确实高速发展的时候,只要修改物理层就可以了,以上的几层就不用进行修改了。而这里的数据链路层就是把实际网络分层中最下面的链路层中考协议实现的部分划分出来的。

 网络层向数据链路层传输的数据叫做 IP数据报,这个IP数据报向先传输给数据链路层,由数据链路层加上目的地址,源地址,使用协议的类型等冗余信息形成一个数据帧,然后向下传输给网络层。网络中的主机根据上面的目的地址判断自己是否该接收此数据包。如果目的地址不匹配,则选择丢弃。(这也就是公共wifi不安全的地方,在一个局域网内,一般采用的都是以太网,传递消息时使用的协议一般都是广播式的,所有主机都能收到数据包,但是当目的地址不匹配时,主机就特别正人君子的丢弃该包。也就是网络中有的人可以利用这个伪装成你的电脑然后获取你的信息)

  而在数据链路层中添加的目的地址,其实是和网络层的ARP协议配合,数据链路层这才知道目的地址的。所以当一个主机接收一个数据包的时候要经过网络层的ARP协议才知道自己是否要接收此数据包。

  这里在数据链路层添加的目的地址,在因特网中一般就是IP地址了,IP地址 = 网络地址 + 主机地址。

  在任何一个实际的网络中,发送数据包都是通过MAC地址(物理地址 硬件地址)来识别的。每个主机都设有一个ARP高速缓存,存放IP地址对应的MAC地址。当发送方在在知道了IP地址然后发送数据包的时候,首先要寻找IP地址对应的MAC地址,才能正确发送。

  然而 MAC 地址是运用在局域网的,也就是同一个网络。




--------------------------------------------------------------分割线-------------------------------------------------------------------------- 

我是新手。今天因为网络问题特意 上网搜了这些东西的概念以及联系,心里觉得豁然开朗。所以记录下来。有什么错误的地方也请前辈指出来。下面记录的都是以我自己的理解写出来的。有点小忐忑,毕竟只是单纯的表面了解。

IP

域名(Domain Name)就像是baidu.cn,nowcoder.com等是便于记忆的一组服务器的地址,就像是IP地址是机器方便理解,域名是方便我们来理解记忆的,就是把IP包装了一下便于人们记忆。在百度词条里面用了门牌号码的比喻,域名就像是一个门牌号码,便于别人查找。

      

      子网掩码 

子网

      未做子网划分的ip地址:网络号+主机号
      做子网划分后的ip地址:网络号+子网号+子网主机号
      也就是说ip地址在化分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。 可以节省IP地址。

       关于子网子网掩码详细的关系可以参考http://bbs.51cto.com/thread-68584-1-1.html。我就是看了这个才觉得能够理清这几个东西的关系。是我理解能力太差。觉得都好抽象,不放在一起没办法理清头绪啊。

       

DNS(Domain Name System)DNS就是通过域名解析得到相应的IP地址,而不用去记住能够被机器直接识别的IP。