端口划分-广播多播
本文最后更新于1328天前,其中的信息可能已经有所发展或是发生改变。

端口划分

端口号的作用,主要是区分服务类别和在同一时间进行多个会话。

举例来说,有主机A需要对外提供FTP和WWW两种服务,如果没有端口号存在的 话,这两种服务是无法区分的。实际上,当网络上某主机B需要访问A的FTP服务时,就要指定目的端口号为21;当需要访问A的WWW服务时,则需要将目的 端口号设为80,这时A根据B访问的端口号,就可以区分B的两种不同请求。这就是端口号区分服务类别的作用。

再举个例子:主机A需要同时下载网络上某FTP服务器B上的两个文件,那么A需要 与B同时建立两个会话,而这两个传输会话就是靠源端口号来区分的。在这种情况下如果没有源端口号的概念,那么A就无法区分B传回的数据究竟是属于哪个会话,属于哪个文件。而实际上的通信过程是,A使用本机的1025号端口请求B的21号端口上的文件1,同时又使用1026号端口请求文件2。对于返回的数 据,发现是传回给1025号端口的,就认为是属于文件1;传回给1026号端口的,则认为是属于文件2。这就是端口号区分多个会话的作用。

端口号的范围是从1~65535。总共分为两大类:

(1)服务器端使用的端口号

其中1~1024是被RFC 3232规定好了的,被称作“熟知端口号”(Well Known Ports)或系统端口号;数值为1024~49151的叫做登记端口号。这类端口号是为没有熟知端口号的应用程序试用的。

一些常见的端口号及其用途如下:

TCP 21端口:FTP 文件传输服务

TCP 23端口:TELNET 终端仿真服务

TCP 25端口:SMTP 简单邮件传输服务

UDP 53端口:DNS 域名解析服务

TCP 80端口:HTTP 超文本传输服务

TCP 110端口:POP3 “邮局协议版本3”使用的端口

TCP 443端口:HTTPS 加密的超文本传输服务

TCP 1521端口:Oracle数据库服务

TCP 1863端口:MSN Messenger的文件传输功能所使用的端口

TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口

TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口

UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口

TCP 5000端口:MS SQL Server使用的端口

UDP 8000端口:腾讯QQ

(2)客户端使用的端口号

数值为49152~65535.这类端口号仅在客户进程运行时才动态选择,又叫短暂端口号。当客户端与服务器使用这类端口号通信结束后,其端口号就不复存在,可以供其他客户进程以后使用。

广播单播组播

第一部分 基本概念

在网络中设备与设备通信也就是我们说的报文的传递。他们传递的方式分为以下几种:广播、单播和组播。我们以下提到的二层和三层指的是OSI模型,它总共工作分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

广播(Broadcast)的特性是由1对多的概念

在同一个以太网环境下,一台主机如果需要同时向所有主机进行通信,这里其实主机不必要知道所有各点的地址。他只要向发送目的地址为广播地址,那么所有主机都会收到这台主机所发送的报文。广播二层以太网帧地址为ffff-ffff-ffff,这是由12个十六进制组成的mac,48bit长度。当二层通信中需要发送广播的时候目的mac地址为全ffff-ffff-ffff。

广播报文是不可以穿越三层设备的,也就是说他只能在同一个广播域范围内生效的。广播三层以太网数据包时候可以是全网发送,这时候目的IP地址255.255.255.255,全网所有设备将收到来着这台主机的广播包。也可以是本网段的广播地址也就是说我们通常使用的IP地址192.168.1.0 255.255.255.0 这个子网,它其实的广播地址是192.168.1.255 。本网段的三层广播地址通常是本网络的最后一个IP地址。

图中主机A 需要发送报文给B和C那么这种方式通常就是以广播形式发送的。
例如我们主机之间建立通信连接。

单播(Unicast)的特性是一对一的建立连接。

单播就好像你购买的快递,卖家给你发送的东西邮寄地址是你正常情况下只有你是可以收这个快递的所以卖家针对的是你自己,这个虽然卖家也会发给另外的买家,但是你们发送的东西邮寄地址(目的IP地址)是不一样的,接收数据的只有你自己。

组播(多播)的特性是一对同组所有。

组播顾名思义就是在同组成员才能收到此数据报文,也就是说当我发送一个数据目的地址是这个组的组播地址的时候,所有在这个组的成员都会收到这个发送的内容。组播地址不能是源地址。

组播的IP地址为特有的D类地址其中224.0.0.0-224.0.0.255已经分配给IANA了,我们在某种特定的互联网协议中占用了此类地址,例如我们网络中用到的动态路由协议RIP它的更新报文利用的就是组播地址224.0.0.9,此类很多不一 一举例。这类地址的TTL(生命周期值)=1,也就是说他们不能被三层设备转发。组播的IP地址239.0.0.0—239.255.255.255为本地管理范围地址也就是我们常说的私有地址。组播IP地址224.0.1.0-238.255.255.255为全网组播地址,全网范围内有效。

组播的mac地址也是按照48bit规范的,二层组播地址和三层组播地址后23bit是一 一对应的mac地址开头位0100.5e开头对应的组播IP地址的映射为224-239。

第二部分 三种形式在设备中是如何工作的

. 广播:

首先,广播报文它的工作范围一定是在同一个以太网结构下,它的报文是会被三层设备终结掉的。

这里我们要知道交换机这种设备从广义角度来想它是个二层设备(这里暂不考虑三层交换机)它工作在数据链路层上,这种设备是可以来处理广播帧的,它的工作原理也是利用了广播帧的特性,当终端接入交换机的时候,这个终端要向目的地址发送报文的时候首先会把报文发给交换机,交换机会查看接收端口的模式是access或者trunk,trunk则会查看本接口是否有通过这个vlan tag,如果没有则丢弃如果有,则查找交换机mac地址表是否有mac,mac地址表没有,则添加数据帧的源mac,这时候交换机就向属于这个vlan的所有接口(不包含源端口)发送广播,广播帧发送后所有设备都会回应,这时候交换机收到目的主机回应的数据帧,把数据帧的源mac和端口加到mac地址表,至此正常转发了。

这里写图片描述

三层的广播包其实只能在直连路由上应用直连路由也是基于二层网络,试想下:假设我们的网络中IP地址是192.168.1.0/24,那么其中一台主机向192.168.1.255发送数据包会是什么情况呢,所有主机都会受到这个数据包,这就是广播地址,这个广播包的源IP是发包的主机,目的地址是广播地址即192.168.1.255。

因此总结广播是工作在二层环境里,接收到广播报文的时候会向所有主机泛洪广播,也就是所有主机都有受到这个广播报文。由于广播的不针对性和不可靠性导致它无法使用TCP来发送,TCP是可靠传输它拥有三次握手四次挥手的工作原理,对数据的丢失有重传机制和窗口机制。UDP是面向无连接的不可靠传输,是可以使用广播来传输的。

优点:发送一次所有设备都能收到,带宽节省了。
缺点:不能使用TCP,没有可靠性,不能针对性的提供服务,因为不能跨三层所有需要的物理层布线会很多。

2.单播:

单播是互联网上运用最广泛的模式了,它具有针对性,它可以传输所有协议。通常单播也用于可靠传输的载体即TCP,当我们有需要保证传输内容无误那么只能选用单播。单播报文发送后只有数据的目的地址才能收到此数据。
单播是可以通过路由等方式进行传递的,它可以通过路由器的路由表转发数据。

那么问题出现了,当数据的源地址向广域网用户提供服务的时候,需要一 一对他们的Request进行回复,这样对于可靠性要求高的服务是必然的,对于一些在我们看来是必须不允许错误的。但对于可以有一定的Error报文的数据 也是可以接受,这样的不停的回复其实也没有太多的必要性。对于看电影这样一点卡顿和一点马赛克估计大家也不会太在意。

我们说过单播是可以跨三层设备的,这里我们用路由器表示三层网络结构,这里R3、R4、R5是通过R2查询路由表来觉得把相应数据转发给哪个路由器节点。

路由器R1可以单独的分别向R3、R4、R5发送数据包。当我与其中某个节点发生会话的时候不会同时被其他节点收到数据报文。其实我们现实中互联网提供的服务大多数都是利用单播来实现的,互联网行业一直想打破这种单播为主要流的局面,这对于电信运营商的传输也是一个非常大的挑战,电信运营商全国多运营商互联的链路实际也就是核心节点的40%增幅。物理层链路如果有故障还会导致大量的重传报文的出现链路负荷原来越大,拥塞。

这里R1发给用户R3、R4、R5的流量可能很多都是重复的甚至是完全一样的。R1分别与三台客户建立连接的同时,也就占用了三次带宽所以导致R1到R2的带宽是到三个客户的总和。

单播的优点:能够实现点到点的通信,可以基本支持任何一种报文协议的传输,对于目前Internet网中应用的也很广泛。

单播的缺点:对于传输中,不必要可靠性很高的内容,也同样按照可靠性传输结构来传递,重复的数据报文较多,对于带宽的消耗很高,对于路由学习路由表项也会增大,无疑是对资源的浪费。

3.组播:

组播出现,也正是结合广播和单播的部分特性。
首先224.0.0.0-224.0.0.255此段IP地址已经留给了我们互联网设备之间的通信协议的维护报文或者更新报文来使用了,而且在规定中他们不允许跨三层,原因已经在上文提到了不在多阐述。

除去上述谈到的地址段外,其他是可以通过三层的一些协议来传输的。
那么在一个组播的网络结构里,首先没跳路由器都要支持组播协议,其中终端与路由器之间要遵循某种能够让组播发现成员的协议,所以我们路由器通过此协议来检测组播组,那么这个协议就是IGMP/MLD协议,MLD为IPv6的应用。

那么路由器与路由器之间构成我们组播网络的树,即组播树。运行的协议按照我们正常的路由协议的方法去说明那么就可以分为域内协议和域间协议,我们通常支持的协议有DVMRP、PIM、MOSPF。我们常用为PIM,对于MOSPF必须域中全部部署OSPF才能运行。组播路由协议作用是用来形成一个无环和维护传输路径,通常叫做组播分发树。其中域间传输协议PIM有几种模式分别为PIM-DM、PIM-SM、PIM-SSM。那么对于我们域间的不同AS之间发现组播域内有组播源也需要利用MSDP、PIM-SSM,我们从一个域把组播传到另外一个域内,需要使用RPF检测路由信息。 如何在自治系统之间传递,这里我们可以 用MP-BGP来做组播数据包传递的RPF检查,MP-BGP多利用在MPLS-VPN里,对路由固有的特性进行装载和传递,装载多协议地址族,IPv4、IPv6、VPNv4等。

那么普通的BGP协议既可以用于单播数据包转发,也可以利用单播BGP产生的路由做PRF的检查。

第三部分 三种形式的实际应用

对于广播型网络特性基本锁定在二层基本用法当然不排除有L2 MPLS-VPN,这里我们之谈论广义上的。这里我们简述几个广播型网络的应用范围。

当我们上网的时候需要IP地址需要与网卡地址出现对应关系,这样才能转发,那我们可以通过ARP报文来对同一以太网环境下的主机进行查询。当主机想到达某台主机的时候,知道了IP地址,像自己的本地ARP列表查询,发现没有就会向与自己IP地址同一段的目的地址接口以广播形式发送ARP请求。收到回复后刷新自己ARP列表。

广播型网络对于电信服务提供商也有很好的广泛应用,用户端使用的ONU(光猫),通过光介质接入局端OLT,每用户拥有独立的VLAN,这里使用的PON技术,局端通过冗余技术接入运营商汇聚层网络,最后接入核心层,这里使用的全程是二层网络。

运营商使用的通用公有协议PPPOE拨号接入方式,用户提出PPPOE的请求报文,运营商的拨入网关收到这个广播型网络的请求去询问RADIUS计费系统下发用户的带宽套餐属性,然后以单播的形式回复给用户建立point to point的隧道,此时PPPOE回话连接完成。

对于单播网络日常应用非常的广泛基本上我们开个网页,浏览个网站,大部分的使用internet都使用的是单播。这里不对单播型网络简述太多,相信大家已经很了解。

组播型网络的应用主要应用在收看电视例如IPTV业务等业务比较多,我们现在用Android机顶盒上用APP上看的电视节目实际上是单播的应用并不是组播,组播必须由路由器支持才能完成。例如个地方的广播电视他们采用的就是组播技术,由组播源发送组播地址标识。

组播源发送的不同的组播实际上我们看的频道可以理解为组播,当你换台的时候就是在切换允许接收的组播地址。IGMPv3具备的特性也能满足运营商对我们频道的控制,例如你没有缴费则不提供服务,各别特色频道需要另收费则会在路由器上层加主机软件来控制路由器不给向下复制组播从而达到了控制效果。

点击数:97

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇