前言

在学习TCP分段与IP分片时、心有所感想把之前学习过的知识串联起来。

数据分段发生在传输层、分片发生在网络层。

相关术语:

MTU(Maximum Transmission Unit,MTU),最大传输单元

以太网和802.3对数据帧的长度都有一个限制,其最大 值分别是1500和1492个字节。链路层的这个特性称作MTU。

MSS(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念

MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值。

1.分段的前提(TCP)

传输屋接收到上层传过来的数据如果 大于 > 1500-20-20(字节)

2.分片的前提(IP)

如果IP层有一个数据要发送,且数据的长度比链路层的 MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若

干片,这样每一个分片都小于MTU。

我们知道通常:

TCP/IP 报头 通常情况下为20字节.而ICMP 报头为8字节.

请参考如下截图:

IP报头

TCP报头

ICMP 报头

实例演示:

实现环境:windows 7

我们尝试验证一下 ICMP报文最大=1472字节=1500-20字节(IP报头)-8字节(ICMP报头),是否正确.

命令:ping

图-1

图-2

从上面2张图的结果,可以得出一个结果:

ICMP报文最大=1472字节=1500-20字节(IP报头)-8字节(ICMP报头),是否正确的!

而从另一个角度来看如果我们设定的 -l # 时,当中#>1472是没有意义的,因为数据

到达网络层后将被进行自动分片、如图-3所示,此处不再使用-f参数。

图-3

转载于:https://blog.51cto.com/204324/1917412

TCP/IP/ICMP 学习实践相关推荐

  1. TCP/IP协议学习( 三 ) ---- ping原理 和 ICMP

    TCP/IP协议学习( 三 ) ---- ping原理 和 ICMP 1. 命令ping的用法和解析 1.1 ping 的用法 1.2 TTL 是什么? 1.3 SEQ是什么? 2.ICMP协议 2. ...

  2. TCP/IP协议学习(五) 基于C# Socket的C/S模型

    TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...

  3. tcp ip 协议 学习

    tcp ip 协议学习. linux 内核版本 : 3.18.48 主题: 由于只关心 传输层和网络层这2层 ,所以TCP/IP是重点. 从哪里开始? 从下往上还是从上往下 ?  思考良久 还是从 T ...

  4. TCP/IP协议学习笔记

    TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...

  5. Wireshark配置安装以及抓包教程详解(win10版)(包含TCP IP ICMP 三次握手 半扫描等相关知识 )

    了解过网络安全技术的人都知道一个名词"抓包".那对于局外人,一定会问什么是抓包?考虑到,大家的技术水平不一,我尽可能用非专业的口吻简单的说一下. 抓包就是将网络传输发送与接收的数据 ...

  6. TCP/IP协议学习笔记(一)IP协议

    IP相当与OSI模型中的第三层,网路层. 网络层的主要作用是"实现终端节点之间的通信". IP大致分为三大作用模块,它们是IP寻址.路由(最终节点为止的转发)以及IP分包与组包. ...

  7. tcp/ip卷一学习-乱记之概述

    一.tcpip协议簇作用:很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们互相进行通信. 二.分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信 ...

  8. TCP/IP协议学习笔记(二)

    工程建立: 先建Project然后添加module和package,如图所示: 代码编写: 首先代码中会出现中文字符,所以要在代码中添加#coding utf-8,避免出现乱码. 然后明确TCP/IP ...

  9. TCP/IP协议学习之计算机中的端口

    端口的概念 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等.二是逻辑意 ...

最新文章

  1. 云计算实训总结_云计算实习报告.doc
  2. 用户退出后还锁表的处理方法
  3. c/c++格式化字符串的标识
  4. 六年之后再次执行[BLQS]战略
  5. 第四代双模5G旗舰:vivo X30系列为啥「超有梗」?
  6. python Iterable
  7. InvocationTargetException异常
  8. 拼多多否认对极兔快递“政策倾斜”;86版西游记“红孩儿”成中科院博士;AirTag遭破解 | 极客头条...
  9. dataframe切片_Kaggle:识别淋巴结病理切片有无癌细胞(logistic+svm+rf+CNN)
  10. 掘金翻译计划 GitHub Star 破3千--终于等到你
  11. android mvp_Android MVP
  12. 02C++namespace命名空间
  13. mysql 查看数据表大小_关于MySQL 查询表数据大小的总结
  14. JS:1.5,日期(Date)对象
  15. python基于udp的网络聊天室再用tkinter显示_Python3:Tkinter gui中的UDP包发送/接收
  16. 华为交换机双上行组网Smart-link配置指南
  17. 用计算机算出你的年龄,身体年龄计算器:一分钟算出你的健康年龄(全文)
  18. HDOJ试水心酸总结
  19. 有妇如此,夫复何求!
  20. 抓包软件charles

热门文章

  1. 计算机网络:大小端存储
  2. Linux查看tomcat 控制台输出命令, WebSphere中间件日志
  3. python三十七:xml模块
  4. JavaScript高级程序设计(第3版)手写第一天。2019年2月23日,星期六
  5. mac命令行用sublime,vscode,atom打开目录或文件的方法
  6. 记录奥林比克/课程录制 洛谷P2255 [USACO14JAN]
  7. js中的arguments
  8. Notepad++免费开源文本编辑器
  9. Redis的Pub/Sub模式
  10. 【转】为什么要写技术博