两个局域网间的主机通讯原理(计算机网络)

Zhang_CaCa 2015-01-20 09:53:29


模型(如图所示)
1. RouterA内是局域网AS1,RouterB内是局域网AS2。
2. RouterA、RouterB均具有NAT功能。
3. Server用于部署应用。
问题(本人菜鸟一枚,表述不清还望各路高手耐心理解)
1. HostB如何向HostC发起通讯?最好依据OSI七层模型,对数据包的流向在每一层进行分析。
2. 在IP层,我尚有模糊的地方。假设RouterA、RouterB和Server都是全球IP,当HostB首先想向HostC发送信息,发出的IP数据包源地址应是192.168.0.2,目的地址应是202.92.16.3,当RouterB收到这个数据包时,如何知道这个数据包应该交付给HostA的。
3. 在TCP/IP编程的时候,提供的Socket API只有IP地址和端口号两个参数,如果我在HostB上写上一个Socket程序,想让HostC接收我发送的一句话,应该怎么写?
4. IM(即时通讯),假设Server是部署了IM应用程序的服务器,Server应该记录HostA、HostB、HostC的什么信息才能实现不在同一局域网内的即时通讯。其过程又是如何实现的?
备注
1. 可能描述得有点混乱,望大神们能把握,尽快解决我的疑惑,上网查了很多资料都无法解决,书上也没说清,这些问题纠缠我很久了。事实上本质也就是一个问题,感谢了,我已无力!
...全文
7097 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ismallboy 2016-07-14
  • 打赏
  • 举报
回复
你应该问HostA请求Server上的页面的时候,Server的响应如何回到HostA?
Richardicy 2015-01-27
  • 打赏
  • 举报
回复
没啥算法,也没啥思想,照着写就行了 http://blog.csdn.net/chenlei5662/article/details/2801228
Zhang_CaCa 2015-01-27
  • 打赏
  • 举报
回复
引用 9 楼 Richardicy 的回复:
这种东西用C++写的话应该可以直接用boost或者ACE库来搞定,以前纯c代码实现是很烦的
能不能大概说一下算法思想就可以了。
Richardicy 2015-01-26
  • 打赏
  • 举报
回复
这种东西用C++写的话应该可以直接用boost或者ACE库来搞定,以前纯c代码实现是很烦的
Richardicy 2015-01-26
  • 打赏
  • 举报
回复
对,所以你要写一段socket通信的代码
Zhang_CaCa 2015-01-23
  • 打赏
  • 举报
回复
引用 6 楼 Richardicy 的回复:
额这个... 那个是TCP层的玩意了,说白了就是socket通信,这一层主要两个协议 一个是udp,发了不管 一个是tcp,三次握手
我想学的是写程序实现QQ实时通讯功能时的算法,而不是通讯协议。
Richardicy 2015-01-23
  • 打赏
  • 举报
回复
额这个... 那个是TCP层的玩意了,说白了就是socket通信,这一层主要两个协议 一个是udp,发了不管 一个是tcp,三次握手
Zhang_CaCa 2015-01-22
  • 打赏
  • 举报
回复
引用 1 楼 Richardicy 的回复:
楼主先搞明白网络传输中的三张表,MAC地址表(二层)、ARP缓存表以及路由表(三层)
我看完你说的参考帖子,问题来了,HostB只能把数据包发送到RouterB,RouterB把这个数据包如何交付给HostC。
Zhang_CaCa 2015-01-22
  • 打赏
  • 举报
回复
引用 4 楼 Richardicy 的回复:
通过NAT转换,router B在收到dest IP 202.92.16.3的数据包时,将dest IP改成192.168.0.1,然后通过内网接口丢给host c NAT转换在高性能的三层交换机上本质上是可以通过可编辑dest IP的IP next hop表项来实现的。
我懂了,感谢!你还能跟我解释一下IM(实时通讯)的原理吗?即QQ啊,ICQ啊等软件的实现算法。
Richardicy 2015-01-22
  • 打赏
  • 举报
回复
通过NAT转换,router B在收到dest IP 202.92.16.3的数据包时,将dest IP改成192.168.0.1,然后通过内网接口丢给host c NAT转换在高性能的三层交换机上本质上是可以通过可编辑dest IP的IP next hop表项来实现的。
Richardicy 2015-01-21
  • 打赏
  • 举报
回复
可以看看这个帖子 http://blog.csdn.net/xiongaijing/article/details/18311009
Richardicy 2015-01-21
  • 打赏
  • 举报
回复
楼主先搞明白网络传输中的三张表,MAC地址表(二层)、ARP缓存表以及路由表(三层)

778

社区成员

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

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