学习网络原理遇到的几个疑惑

NoneSec 2010-06-30 10:37:32
最近刚学习完网络原理,遇到几个一直有疑惑的问题,希望大伙都来传道授业解惑阿……

1.就是一个数据包的长度上限到底是多少阿?按照IP数据包格式的“数据包总长”部分的定义,一个数据包的长度可以达到65535字节,而根据数据祯的数据域部分可以达到1500字节,IP数据包本来就是要包装在祯的数据域部分,还要减去20字节的固定IP头长度。
2.第二个问题就是在发送端一个TCP数据段有时候会分为几个IP数据包,那么在接收端怎么来将数据包组装起来一个TCP数据段,IP包虽然有标识部分MF来判断是否属于一个数据段和最后一个IP包。这个应该跟“粘包”和“封包” “拆包”没有什么关系把?
...全文
220 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Damn_boy 2010-07-16
  • 打赏
  • 举报
回复
包和帧是不同的概念
一个是网络层的
一个是链路层的

链路层有一个MTU的概念(你打开设备管理器的网卡,在高级里可以看到这个东西)
就是网络设备允许通过的最大数据包长度

所有数据包的大小都不能超过这个长度
而IP包的大小(65535)有可能超过这个长度所以就涉及到IP分片的问题

数据包的大小是65535吧 那个协议里规定长度的16个宽度~
回答完毕=。=
不知道有没有错
xmzzy 2010-07-02
  • 打赏
  • 举报
回复
楼主的头象很好
luoyanfen19881025 2010-07-01
  • 打赏
  • 举报
回复
asdf
NoneSec 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]

包的协议都有数据字段以及对应的格式,接收到后,协议底层会根据格式拼接数据,同时包中还有标志位来表示是否最后一个包等
[/Quote]
用来标示最后一个包的MF位这个应该是用来IP分片组装的把。
昨晚看了一篇文章,它算是解决我的问题:http://blogger.org.cn/blog/more.asp?name=binaryluo&id=13599
oyljerry 2010-06-30
  • 打赏
  • 举报
回复
包的协议都有数据字段以及对应的格式,接收到后,协议底层会根据格式拼接数据,同时包中还有标志位来表示是否最后一个包等
lijianli9 2010-06-30
  • 打赏
  • 举报
回复
自己封装包头和包体,包头里面放些包的类型信息,包长度,其中包长度表示你的包体中的真实的数据长度,在接收端进行反向的拆包。

汪宁宇 2010-06-30
  • 打赏
  • 举报
回复
RFC791

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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