【杂谈】问题整理

一、计算机网络/操作系统

1、关于端口号

  • 有一些公认的端口号,比如http端口号是80,按照我的理解如果有多个应用程序,都需要http服务,那么如何分配端口?
    答案 :每个进程都有自己的端口号,这个端口号用来和外界网络取得联系。而进程号只是操作系统内的一个唯一性标识。(答案不完整)

  • 外面的机器是怎么知道我这个机器的某个进程在哪个端口号的?
    答案:我们以QQ消息的传递为例,首先我们不知道对方的IP,肯定不能直接自己发送,所以一个可能的办法就是,我们登录QQ,登录的时候QQ服务器会记录我们操作系统上QQ进程的端口号,以及这个QQ号运行在哪个IP地址上,以及哪个mac地址上。当对方给我们发信息的时候,其实是给服务器发信息,目的端口以及目的IP,还有目的mac都是服务器,然后服务器根据你将要发送的那个QQ号的信息,在把消息转发出去。

  • 实验验证上面关于QQ号的说法
    1、 实验目的
    ① 查看QQ发送消息给不同的联系人,每次目的IP以及目的mac地址是否相同。
    ②以及每次接收到不同联系人QQ消息时它的IP以及mac是否相同。
    2 实验设计:
    ① 登录QQ,给两个不同的联系人发消息,捕获数据包,查看目的IP以及目的mac等信息。
    ② 让两个联系人给自己发信息,查看两个人的信息是否相同。

  • 为什么有物理地址,还需要IP地址?
    答案: 首先到不同的局域网中,每个设备有不同的IP地址,这样一来,其它设备就可以通过这个局域网来找到另一个设备。

  • 既然这样,那还要物理mac地址干嘛啊?
    答案: 想象一下,如果你没有mac地址,然后你发出了一个数据包,首先你这个数据包的IP是你朋友的IP。那么作为第一步你先要把这个数据包发给谁呢?就是说两个相邻的主机或者路由器之间是通过mac地址传递数据的,而IP就是一个唯一性标识。数据链路层是根据mac地址来传输数据的。需要注意的是以太网数据帧的目的mac地址并不是要发送信息的目标地址,而是下一跳的物理地址。
    mac相当于在每个十字路口根据你想要去的下一个地点给你指明了你该走那条路。

  • mac是如何对应到物理媒介上去的?
    答案:

  • 为什么有路由器,还需要交换机,把他们两个合成一个不好吗?
    答案:看了网上说的很多答案,总结一下:首先路由器具有在不同网段之间(就是不同的局域网之间)传递数据(根据IP地址转发数据包)的功能,而交换机只能在同一网段下传递数据包(同一个局域网不同主机之间),所以就得有这两个设备。当然路由器也可以在同一网段传递数据包,但是如果把路由器用来传递数据包,它必须有IP才行。

  • 实验验证上面的说法
    1、实验目的:
    ①验证交换机可以在不知道IP地址的情况下传递数据包。
    ②验证路由器可以在不知道IP地址的情况下传递数据包。
    ③验证交换机不能再不同网段之间传递数据包。
    ④验证路由器可以在不同网段之间传递数据包。
    2、实验设计:
    为了达到实验目的①:
    创建如下的拓扑图:
    启动系统,然后监听PC2流量。用PC1给PC2发送UDP包,不配置目的IP,但配置目的mac。如果PC2能够收到UDP包就说明说法①是成立的。为了更加具有说服性,用PC3在做参照。

    • 在不知道IP地址的情况下,他会把数据包传递给所有的设备,然后只有mac地址对应的设备才会真正接收这个数据包。下面的拓扑图,PC1发了一个目的mac是PC3的mac,而没有目的IP的数据包,然后其他的交换机和主机都收到了这个数据包。
      【杂谈】问题整理_第1张图片
  • 问题:那么知道IP和mac的数据包会增么样传递呢?
    在同一个局域网上知道IP和mac的数据包只会发给对应IP的主机(已经经过试验验证)。那么问题又来了,既然这样,老师课堂上讲的载波监听啥的还有什么意义呢?这部分内容是在链路层讲的,可能是因为在链路层是不知道IP地址的,所以在传输的时候,数据包会传递给每一个主机,这样就需要监听,以免发生冲突。

  • 对于上面的这个解释,既然一个数据包能够发送到这个局域网中来,那么它肯定是知道IP地址的所以来了以后肯定不会发送给整个局域网上的所有用户,而是会发给指定用户,所以载波监听的目的只是为了防止同一局域网内的只知道mac的数据包之间的冲突吗?这样的话感觉也很没道理啊,因为不是有RARP吗,知道mac地址,不知道IP地址,完全可以用它来处理啊。用不着载波监听啊。难道载波监听就是为了首次发ARAP这样的信息冲突的吗?

  • 不对,在一个局域网上,不管是有没有IP地址,总有一些线路是公用的,为了防止在这些公用的线路上发生冲突,才而需要载波监听。那么到底怎么样才能监听到这条线路上到底有没有数据在传递呢?不对,通往自己的线路上也有可能发生冲突,这是因为有可能会有数据发送过来,所以要监听,那么这样的话交换机和路由器是不是也需要载波监听啊,因为他们也负责转发数据包?

  • 总结上面的部分内容:还有没解决的问题,在知道IP地址和mac地址对应关系的情况下,数据会发给指定的主机,而不会发给所有主机,那么数据包发给哪个端口,到底是IP决定,还是mac决定?

  • 特别注意:数据据包中目的mac是下一跳的mac地址,而不是目的接收端的mac地址,

    • 检查arp表中任何一个ip对应的mac是不是同一个mac
      • 发现并不是这样的,arp中ip对应的就是IP所在的mac地址。那么这个mac是怎么得到的呢?在发数据包的时候,目的mac到底要写IP对应的真的mac还是下一跳的mac呢?
      • 实验来看下,每一条数据包的源mac地址和目的mac地址有什么变化。或者都是怎么样变化的。
        实验设计:
  • 实验探索:知道IP和mac对应关系的情况下,如果不在数据包中填写目的IP而只填写mac结果会怎么样?

  • 局域网内,在交换机上传递数据时,每次的源mac和目的mac竟然是不变的?

  • 没有IP地址的数据包会不会通过路由器呢?

  • 数据包通过服务器传送和通过路由器传送有什么不同?
    答案:

你可能感兴趣的:(计算机网络)