用TCP(注意不是UDP)能不能实现广播

sword_hero 2001-06-18 12:04:00
比如有三个SERVER在TCP端口监听,我一个client程序同时给三个SERVER发信息
...全文
11002 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
duuyuu 2001-06-26
  • 打赏
  • 举报
回复
昨天浏览的时候不正常,页面怎么刷新都是乱码,可是我贴了这句“怎么坏了”
以后,页面就正常了,哈,CSDN的bug?
game_boy 2001-06-25
  • 打赏
  • 举报
回复
to 冰河:我終於搞明白了,今天查了Stevens的"TCP/IP祥解卷2:实现"。
是的,加入和退出一个群组完全是由进程动态决定。
官方的TCP/IP实现Net/3(伯克利联网代码第三个正式版本),为每个以太网接口维护一个该硬件接收的一台网多播地址范围表。加入和退出某个多播组实际上就是对这个表进行更新。可以认为就是对网卡的配置,这个动作的接口被提供在ip层的实现软件中,但它并不属于tcp/ip协议的规定范围,所以我在"卷1:协议"里没有找到,呵呵,你明白了吧
在socket里面应该有这个api提供。
duuyuu 2001-06-25
  • 打赏
  • 举报
回复
game_boy(gamesboy) :
你的意思是:源组播地址是由进程即时决定的,与网卡的配置无关是吗?
多谢指教,呵呵,不愧是写ip栈的。
game_boy 2001-06-25
  • 打赏
  • 举报
回复
什么坏了?
duuyuu 2001-06-25
  • 打赏
  • 举报
回复
怎么坏了?
game_boy 2001-06-25
  • 打赏
  • 举报
回复
to dcrwy;謝謝,
我一直沒有搞明白的是加入組播在底層是如何實現的,不是問應用層的具體api,
不過現在我搞明白了,如上所述.
dcrwy 2001-06-25
  • 打赏
  • 举报
回复
多播程序我编过,STEVENS的UNIX网络编程里也有相应的内容
dcrwy 2001-06-25
  • 打赏
  • 举报
回复
to game_boy(gamesboy) 
SOCKET(XX,XX,IP_MULTICAST);
这个久可以哦
game_boy 2001-06-24
  • 打赏
  • 举报
回复
請教yax21cn:在局域網內部是如何讓一台主機加入或者退出一個群組?
game_boy 2001-06-24
  • 打赏
  • 举报
回复
to dcrwy:我在西安,給台灣老闆打工~
以太網內部加入一個多播組實際上是對網卡編程使之能接受以該多播地址相對應的以太網地址為目的地址的數據禎的過程,這個動作的接口在ip層,我不知道這個動作到底是怎麼實現的:(
還有,listen表示本地主機上的某個端口在等待連接或者等待數據,它無法指定地址的。
yax21cn 2001-06-24
  • 打赏
  • 举报
回复
TCP是面向连接的,是不能实现组播的,我手上有一个很完整的组播的程序,感兴趣可以和我联系 E_Mail:yax21cn@21cn.com
dcrwy 2001-06-24
  • 打赏
  • 举报
回复
to eagles125(eagles) :
很高兴,我的QQ:1007270
to sword_hero(sword):
可能我说的不准确,不过交换式网络是一种无法进行网络SNIFFER的网络,
因为到其中的每一台主机都只有一条唯一的路径,就象交换电话网
关于TCP广播还想说一句,已经有世界级的高手探讨过了,根本不可能
to game_boy(gamesboy):
一个多播组实际就是一个多播地址,你只要LISTEN此地址,
就等于加入此多播组。
还有,你的字都是繁体的,是HONKER吧,呵呵
yueyue 2001-06-23
  • 打赏
  • 举报
回复
sword_hero 2001-06-23
  • 打赏
  • 举报
回复
在局域网内部(没有路由),任何IP包都可以接收,但一旦发现不是自已的消息,就放弃了,但如果发现是特定的消息,比如是由某一台服务器发出的信息,我就收下并传到更高的协议层,所以TCP广播是可以实现的,只要你写IP层或者是数据链路层(MAC)的驱动,发现是需要收的包(不一定是针对自已的),就进行接收,不管上层是采用TCP还是UDP,底层把数据解释为正常的数据格式就OK了,我这想法对吗?
sword_hero 2001-06-23
  • 打赏
  • 举报
回复
IP_MULTICAST是什么意思,有什么用
game_boy 2001-06-23
  • 打赏
  • 举报
回复
to sword_hero(sword):你的那個問題用TCP建立三條連接最好,顯然可以排除廣播,因為只有三台主機接收;組播吧,老實說許多地方我不熟,不知道怎麼樣,但是它是UDP發送的,可靠性就打了折扣,所以建議你用TCP。
game_boy 2001-06-23
  • 打赏
  • 举报
回复
to classfactory(void);按照TCP/IP的層次結構,應用層不可能不經過傳輸層就封裝ip包,我也認為udp和廣播沒有甚麼必然的聯繫,但是廣播確是udp的一大用點.你所說的那個概念本身是不正確的,不論它是甚麼書上的寫的。ip的封裝在ip層完成,udp把上層來的數據按照自己的格式封裝成udp包後就把它作為一個數據塊傳給ip層,剩下的事情不用它管,接收時也同樣,ip層剝去自己的首部把udp包送給udp層.
呵呵,我寫tcp/ip,啃的就是Stevens 的TCP/IP Illustrated,只是它的關於PPP的東西說得太少,才去啃rfc。還有一本Comer的"用TCP/IP進行網際互連"(Internetworking With TCP/IP),特點是強調基本原理,概念準確,而Stevens的書特點是講解詳細,內容豐富,例子很多,這是關於TCP/IP的論著中最有影響的兩本。Tanenbaum的"計算機網絡"和Comer的這本書是計算機網絡課程最主要的兩本參考書。建議你讀Comer的。
game_boy 2001-06-23
  • 打赏
  • 举报
回复
to 冰河:pc機可以實現組播;
局域網內部的組播,不用igmp就可以實現,因為它不用通過路由器,
其實IP組播地址不是分配給網卡或者某個主機的,它是分配給一個多播組,一台主機上的某個進程決定要加入某個多播組,它就使它自己的網卡能夠接收目的地址為相應IP組播地址的禎,
(現在我還不知道如何實現這點,我查了"TCP/IP祥解"和"用TCP/IP進行網際互連"兩本書,沒有找到關於這個問題的解決,也可能我沒有看懂)
覆蓋了多個網絡的組播就必須要有igmp協議支持,和igmp路由器.igmp報文是用來在參與組播的主機和igmp路由器之間通信以維護一個用於組播的路由表.
主機加入組播時候向全主機組播地址(這個地址是知名的,即224.0.0.1)發送一個igmp報文宣佈自己加入了一個特定的群組,本地的igmp路由器收到後就向internet上其他的igmp路由器傳播這個信息以建立必要的路由.
本地igmp路由器週期性輪詢本地網路上的主機以確定現有的群組中有那些主機,若干個輪詢之後某個群組始終沒有成員就認為本地不存在該群組的成員.
組播通信還是和普通的廣播一樣進行,只是把目的地址寫成組播地址.
組播地址的分配,除了知名的少數以為其他的隨意,因為目前的標準只給出了一些建議方案.可以人工指派,可以隨機產生(如果不能用則重來).
希望這些能回答你,有些東西說起來很麻煩的,最好自己去看看書.我現在倒是對被認為比較簡單的局域網內部組播(多播)的加入和建立很不解,希望有高手能解答.
game_boy 2001-06-23
  • 打赏
  • 举报
回复
to 冰河:pc機可以實現組播;
內部的組播,不用igmp就可以實現,因為它不用通過路由器,
其實IP組播地址不是分配給網卡或者某個主機的,它是分配給一個多播組,一台主機上的某個進程決定要加入某個多播組,它就使它自己的網卡能夠接收目的地址為相應IP組播地址的禎,
(現在我還不知道如何實現這點,我查了"TCP/IP祥解"和"用TCP/IP進行網際互連"兩本書,沒有找到關於這個問題的解決,也可能我沒有看懂)
了多個網絡的組播就必須要有igmp協議支持,和igmp路由器.igmp報文是用來在參與組播的主機和igmp路由器之間通信以維護一個用於組播的路由表.
主機加入組播時候向全主機組播地址(這個地址是知名的,即224.0.0.1)發送一個igmp報文宣佈自己加入了一個特定的群組,本地的igmp路由器收到後就向internet上其他的igmp路由器傳播這個信息以建立必要的路由.
本地igmp路由器週期性輪詢本地網路上的主機以確定現有的群組中有那些主機,若干個輪詢之後某個群組始終沒有成員就認為本地不存在該群組的成員.
組播通信還是和普通的廣播一樣進行,只是把目的地址寫成組播地址.
組播地址的分配,除了知名的少數以為其他的隨意,因為目前的標準只給出了一些建議方案.可以人工指派,可以隨機產生(如果不能用則重來).
希望這些能回答你,有些東西說起來很麻煩的,最好自己去看看書.我現在倒是對被認為比較簡單的局域網內部組播(多播)的加入和建立很不解,希望有高手能解答.
JustTcp 2001-06-23
  • 打赏
  • 举报
回复
有何不可,建立三条连接而已
加载更多回复(62)

4,397

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧