信号,根据传输介质的不同,可以分为光信号(光纤)、磁信号(无线电)、电信号(同轴电缆)等
拓扑结构,网络内计算机的连接(结构)方式。
①、称为总线型:早期,同一网络内的主机都连接到一根同轴电缆上,称为总线型。因为使用同一根电缆通讯(通过电压的变化感受信号),所以在同一时间段内,只允许一台主机给其他主机发送信息,否则会发生信号冲突。采用的是载波侦听多路访问冲突检测(CSMA/CD)的协议,来解决冲突问题:就是每台主机在发送信息的时候先要侦听线路中是否有人在发送信息,没有的话,就自己发送信息,有的话就一直侦听到无人发送信息时发送;当发送的同时侦听到别人也在发送信息就会停止发送,侦听到无人发送信息后暂停一个随机时间继续发送。另外,信号是有一定的传输距离的,超过一定距离就会变弱,所以长距离传输,需要一个能量(电压)放大设备,中继器。
②、环形:所有主机连接成一个圆环,在环上游荡着一个令牌信号,当一个主机要发送信息时,它就会抓住这个令牌,待信息发送完成后再释放该令牌。只有握有令牌的主机才能发送信息,环形网这样解决冲突问题。
③、星型:所有主机连接到一个集线器上,其实这个还是一个总线型(集线器内部也是一根铜线,和同轴电缆一样),它解决的只是方便了将主机连接到总线上的操作。之前直接连到同轴电缆不好施工。网卡,是网络中区分不同主机的标识,也是主机之间互相通讯(收发信号)的设备。每块网卡都有一个全球独一无二的mac(media access control)地址。
-
广播,之前在同一个(局域)网内主机互相通讯时,在物理上是通过广播的形式在传播,但这只是传输信息信号形式上的广播,因为有明确的目标主机,其实是单播,而广播真正的含义,是没有明确的目标主机,就是给局域网里所有的主机群发信息(广播地址用IP地址“255.255来表示---主机地址全为1表示该网段的广播地址,主机地址全为0代表该网段,这个IP地址代表同一子网内所有的IP地址)。所谓广播,就是喊,群发的意思。当连接在同轴电缆上的一台主机给目标主机发信息时,所有连接在该线缆上的主机都能感受到电平信号,即都能接收到信息。所以发送的信息中要包含源主机mac地址和目标mac地址,当目标主机接收到信息时,发现目标是自己就会接收并处理信息。其他主机接收到时,发现不是找自己的,就不予理会。
可是刚一开始,主机要是不知道其他主机的mac地址的呢。其实,这个还要往上说一下,在此简单阐述一下。我们发送信息给对方时,首先要知道对方的ip地址(可以先不知道mac地址,但一定要先知道目标主机的ip地址。mac地址属于物理链路层,ip地址属于网络层,二者之间的转换是arp协议,每台主机或路由器在维护着一个ARP缓存表(ARP table)),当确定对方ip地址但不清楚mac地址时,它会在网络里面广播(我们暂时不考虑路由器和非同一个网段的情况,因为有路由器的时候它会直接发给路由器网关),“谁的ip地址是xxx,麻烦告诉我一下,(我的ip地址是yyy,mac地址是efefef)”,这个是真正的广播。当目标ip的主机接收到广播信息后,就会将自己的mac地址告知对方。、广播是局域网通讯很常见的方式。
广播域和冲突域。因为使用同一个同轴电缆,所有的主机发信息的时候都像是在广播,所有主机都可以收得到,而且同一时间只能有一个主机在发信息。所以连接到同一条总线的主机都在同一个广播域和冲突域内。当网络内的主机越来越多时,会严重影响效率,这样就需要做划分。我们把网络一分为二,中间用网桥连接两个总线网络。当网络中再传输信息时,传播到网桥的时候,如果检测到发送信号的源主机和目标主机在同一侧的总线上,那么网桥就不会将信息发送到另一侧去,这样就分割了冲突域,减少了信号冲突。但是如果一个主机要广播的话(目标ip地址主机位全1,代表整个网络),那么网桥依然会帮着将来自一侧的信号传到另一侧去。所以说网桥只隔离冲突域,不隔离广播域。
交换机。如果我们将集线器内部同轴电缆去掉,而是改成多条电路,那么所有连到集线器上的主机发送信息的时候,如果只传到它的目标主机那去,那将大大减少冲突发生的概率。而具有这种转发功能的设备就是交换机,而交换机为了拥有这种功能,需要维护一张mac表,来记录哪个端口连接的哪台主机,当信息来到这里时,负责转发到对应的接口。当一台主机在同一时间只能接收信号或者发送信号时,那么就是半双工的模式,当同时既可以发送信息又可以接收信息时,那就是全双工,双绞线两条线路工作,一条发送的同时,另一条接收,不会发生冲突。提高了效率。
路由器。交换机虽然减少了冲突,但是当网内有主机广播时,它还是会转发到所有机器,所以交换机并不会隔离广播域,当网络内主机比较多时,还是会影响线路和主机的效率。我们通过对ip地址进行网段划分(将ip地址分为网络位和主机位,子网掩码和ip地址进行与运算可以得出其网段),当主机发送信息时,会先用自己的子网掩码对自己的ip地址和目标主机的ip地址进行与运算,当发现不在一个网络时,那就是跨网访问,它就会找一个“中间人”,整个局域网在同其他网段内的主机通讯时,都会找该“中间人”,这个“中间人”就是网关(网关和nat功能是两个概念,网关是不同网段之间的接口,或者说路由功能)。网关就是路由器(具有nat转发和路由的功能)的一个功能,路由器的每个端口同主机的网卡一样,也会有一个mac地址和分配一个ip。
数据包。数据都是封装好的才进行的传输。网络是分层的,TCP/IP五层网络协议(从上至下):应用层、传输层、网络层、链路层、物理层。每层都有其对应的协议(所谓协议,就是规定好的,大家都遵循的数据格式),ip地址是在网络层的时候被封装进去的,mac地址是在下层的链路层封装进去的。发送方在发送数据之前,是从上至下层层封装;接收方接收到信息后是从下至上层层解封装。就跟套娃一样,装的时候由里而外,拆的时候由外而里。数据包在经过中间的线路的时候,有的设备会拆一层,有的会拆两层。比如交换机,接收到数据包时,拆到链路层,看到mac地址就知道转发到哪个端口,就不会继续拆包了。而路由器是在网段之间转发数据包的,它会拆到网络层的ip地址。当一个主机在发送信息给另一个网段的主机时,它会将数据包的目标ip地址封装为目标主机的ip地址,而目标mac地址封装为自己同一网段的网关(路由器)的mac地址。数据包先传到交换机那(家庭的直接连到家庭路由器的先不讨论,省了一步,反而更简单,这里就不讨论了),交换机拆开一看目标mac地址是网关的mac地址,就又封好转发到网关(路由器)那,网关接收到拆开一看目标mac地址,是找自己的,但是拆开目标ip地址一看是找另外网段一个主机的,它会根据自己维护路由表,看看从哪个端口转发可以到达目标网段,然后就会交给对应网关(端口),该网关负责转发给另一个网段。由此可以看出,在网络内部,是交换机通过维护的mac地址表转发;在跨网段发送时,靠的是路由器维护的路由表进行转发。(注:这里暂无涉及私有、公网ip转换的问题,讨论的前提是假设都是公网ip)
-
数据包经由路由转发时源、目的IP地址及MAC地址变化情况
A—–(B1-B2)—–(C1-C2)——-E
如上拓扑图为例,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据包,那么在主机A形成的数据包的目的IP就是E的IP,源IP就是主机A的IP地址,目标MAC地址就是B1的MAC地址,源MAC地址就是A的MAC地址
由A发给路由器B,B经过重封装后,源IP和目标IP是不变的,源MAC地址变成B2的MAC地址,目标MAC地址变成C1的MAC地址,封装完成发送给路由器C,路由器C接收到数据包后和B做的操作是一样的,源IP和目标IP的不变的,源MAC地址变成C2的MAC地址,目标MAC地址变成主机E的MAC地址,然后发送给主机E,这样E就收到了这个数据包,当恢复数据包的时候就是把收到的数据包的源IP地址(主机A的IP地址)和源MAC地址(接口C2的MAC地址)作为他的目标IP和目标MAC地址
注:这里ip都是假设都是公网ip,不牵扯nat转化问题。私有ip信息发送过程参考文章。
套接字(socket)。主机接收和发送网络信息都依托ip号。tcp/ip协议的处理模块属于内核的一个模块,ip也归内核管理,所以在网络层层面上,网卡只是一个上下传递数据包的出入口而已(往下传递的时候网卡负责将mac地址填进去并且将数据包切片成帧,网卡不管ip层面的东西,只要是往下传,就加进去mac地址,下面传上来的,就拆包检测mac地址,如果是找自己的就往上传交给操作系统处理))。如果一台机器有两个网卡(或者设置了两个ip),那么每个ip都有一套单独的端口,比如ip1,192.169.0.9:80可以给网站A的web服务,ip2,192.169.0.20:80 可以留给网站B的web服务;192.169.0.9:8080可以留给appA的服务,192.169.0.20:8080可以留给appB的服务。socket 的本质是一种资源,它包含了端到端的四元组信息(自己的ip+port,对方的ip+port),用来标识数据包的归属。因此,尽管 tcp 协议的端口号只有 65535 个,但是进程可拥有的 socket 数据却不限于此(受限于进程最大文件描述符数据);可将每个套接字简化理解成一个个文件,应用层进程通过这个文件和tcp/udp进行数据通讯;这样方便理解,进程和socket文件不是一对一的关系,多个用户的请求对于服务端来说会创建多个socket,但是服务可能用一个进程来处理这些请求,那么一个进程就可以访问多个套接字。
socket文件一旦创建,就如同一个数据的水池一样,一方往里面放数据,一方从里面取数据。
具体可参考文章。
计算机网络基础
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...