connect、send、recv 等函数为什么只要IP和端口,而不要子网掩码

谁学逆向工程 其他  2013-01-24 12:00:31
connect、send、recv 等函数为什么只要IP和端口,而不要子网掩码?我看了一下IP的结构,各字段也没有子网掩码成分。如果对方在子网中,那数据包如何找到对方电脑?

send函数需要一个缓冲区,从最上层的协议封装到最下层的过程中,似乎都看不见子网掩码在何时封装。难道不在send函数封装?是在其他函数(socket、bind、listen、accept...)封装吗?我看了一些网络方面理论的书,也没见到何时封装子网掩码
...全文
476 20 点赞 打赏 收藏 举报
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Joseph-Growth 2013-01-28
引用 17 楼 xiaoyuanyuan2009 的回复:
引用 16 楼 meiyuli 的回复:想想每次把电脑搬一个地方用时,总是要自己配置下网络信息。才能入网使用。 家用电脑不用配啊
你说的不用配,只是你自己没有填写,实际是你的交换机可能开了DHCP,自动给你配置好了。其实还是配置了的。
  • 打赏
  • 举报
回复
漫步者、 2013-01-25
没什么研究,只是会用
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
jimette 2013-01-24
  • 打赏
  • 举报
回复
引用 16 楼 meiyuli 的回复:
想想每次把电脑搬一个地方用时,总是要自己配置下网络信息。才能入网使用。
家用电脑不用配啊
  • 打赏
  • 举报
回复
Joseph-Growth 2013-01-24
引用 3 楼 jwybobo2007 的回复:
路由和交换机干的事情
我觉的他说的对,平时都真没注意这个问题。想一想应该是在计算机入网前,配置网络信息时,已经指定了对应的路由。所以这个子网掩码是在数据包出路由装备时封装的。 想想每次把电脑搬一个地方用时,总是要自己配置下网络信息。才能入网使用。
  • 打赏
  • 举报
回复
引用 13 楼 w_xei 的回复:
子网掩码是路由器过滤数据包时需要用到的,对我们编程不需要这么底层,除非你要写网关程序
怎么用
引用 14 楼 lostying 的回复:
子网掩码在你的发送端是没用的,在中专端和接收端使用.…
这时候要对方的把子网掩码一起发出去?我知道对方的子网掩码吗? 子网掩码是保存在网关吗,网关对每一个连接到他的PC都分配一个子网掩码吗
  • 打赏
  • 举报
回复
无言猪 2013-01-24
子网掩码在你的发送端是没用的,在中专端和接收端使用.比如你是192.168.1.1/24,子网掩码改成255.255.0.0,一样用. 这时如果你收到一个来自192.168.2.1的数据,网卡是会接受进来的,因为判断本法IP&掩码与对方IP&掩码是相同的,就判定你们是一个网段的了.如果掩码是255.255.255.0,你的网卡就会把这些数据丢掉不继续传到上层.
  • 打赏
  • 举报
回复
w_xei 2013-01-24
子网掩码是路由器过滤数据包时需要用到的,对我们编程不需要这么底层,除非你要写网关程序
  • 打赏
  • 举报
回复
引用 11 楼 zhoujielunzhimi 的回复:
我觉得是路由器,因为路由器保存了大量的网与网之间的映射关系。
言之有理
  • 打赏
  • 举报
回复
sumos 2013-01-24
我觉得是路由器,因为路由器保存了大量的网与网之间的映射关系。
引用 10 楼 xiaoyuanyuan2009 的回复:
引用 8 楼 zhoujielunzhimi 的回复:…… 子网掩码由哪个设备使用
  • 打赏
  • 举报
回复
引用 8 楼 zhoujielunzhimi 的回复:
……
子网掩码由哪个设备使用
  • 打赏
  • 举报
回复
引用 8 楼 zhoujielunzhimi 的回复:
这个还是挺复杂的,还有待于研究
  • 打赏
  • 举报
回复
sumos 2013-01-24
我也不知道底层是怎么回事。 简单说下: 如果是外网,比如 A 和 B send之后,数据会发到底层网卡,接着是路由器(保存了各个网络之间的路由路径),数据沿着这个路径走到B的路由器,经过网卡,最后被receive。 如果是内网,比如A里面有C、D C,D连网时,会有一个ip(这个ip动态分配的),C发送数据到B,会经过A,A对数据包的源ip(就是C的内网ip)改为A的ip,接着如上外网一样发出去。收到时,再把目标ip改为C的ip,发到C的电脑上。
  • 打赏
  • 举报
回复
引用 6 楼 zhoujielunzhimi 的回复:
其实就是 内网ip的概念
我就是想知道整个过程是什么样的,我看到的书讲的都很零碎,谁也没整体的说一下这个流程。 比如我的TCP包发出以后到了哪?网关路由器?这个路由器保留什么什么映射,映射了什么。之后向哪转发,修改了什么。若干路由器都做是什么,到达你的网关路由器又发生了什么,最后怎么才找到你的电脑
  • 打赏
  • 举报
回复
sumos 2013-01-24
其实就是 内网ip的概念 http://baike.baidu.com/view/1233066.htm
  • 打赏
  • 举报
回复
引用 4 楼 zhoujielunzhimi 的回复:
子网掩码不需要我们操心。 比如校园网,大家的外部ip都是一样的,只是内部ip不一样,怎么区分内部ip,你需要看计算机网络技术这本书中的分址这一章
哪个出版社,哪个作者,哪个ISBN
  • 打赏
  • 举报
回复
sumos 2013-01-24
子网掩码不需要我们操心。 比如校园网,大家的外部ip都是一样的,只是内部ip不一样,怎么区分内部ip,你需要看计算机网络技术这本书中的分址这一章
  • 打赏
  • 举报
回复
jwybobo2007 2013-01-24
路由和交换机干的事情
  • 打赏
  • 举报
回复
stjay 2013-01-24
应该是在 链路层和物理层
  • 打赏
  • 举报
回复
相关推荐
发帖
网络编程
加入

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2013-01-24 12:00
社区公告
暂无公告