MTU:一个网络包的最大长度,以太网中一般是1500字节;(含有头部长度,包括IP头部,TCP头部,不包括MAC头部)

MSS:除去头部后,一个网络包所能容纳的TCP的数据的最大长度

下图为TCP/IP软件的分层结构:

其中,IP中ICMP协议用于告知网络包传送过程中产生的错误及各种控制信息,ARP协议用于根据IP地址查询相应的以太网的MAC地址。

TCP模块在执行连接、收发、断开等各阶段的操作中,都需要委托IP模块将数据封装成包发送给通讯对象。

下面介绍一下网络包的一些基本知识:

包是由头部和数据两部分组成。

头部包含目的地等控制信息,头部后面就是委托方要发给对方的数据。

下面是TCP/IP包的结构:

简单区分一下路由器和集线器的区别:

它们在传输网络包的时候有各自的分工:

1、路由器是根据IP规则传输包的设备,根据目标地址判断下一个路由器的位置

2、集线器是按照以太网规则传输包的,在子网中将网络包传到下一个路由。

下图是包收发操作的整体过程:

包收发操作的起点就是TCP模块委托IP模块发送包的操作,这个委托的过程就是在TCP模块在数据块的前面加上TCP头部,然后整个传递给IP 模块,这部分就是网路包中的内容。

与此同时,TCP模块还需要指定通信对象的IP地址,收到委托后,IP模块会将包的内容当做一个整块数据,在前面加上包含控制信息的头部。

IP模块会添加IP头部和MAC头部这两个,其中,IP头部中包含IP协议规定、根据IP地址将包传送到目的地的控制信息;MAC头部包含通过以太的局域网将包传输至最近路由器所含的控制信息。

IP头部包含很多控制信息,其中重要的是包将发送到哪里的IP地址,这是应用程序提供的;IP头部中还需要填写发送方的IP地址,需要IP模块利用路由表进行判断,即判断发送使用的网卡。

MAC地址是在网卡生产时写在ROM里面的,是全世界唯一的一串地址,是生成网卡时写入的,根据IP地址查询MAC地址。

我们通过ARP协议查询目标路由器的MAC地址,发送广播来查询即可:问:**IP地址是谁的? 答:**IP地址是我的,我的MAC地址是**。为了防止网络中增加很多ARP包,我们会有一个ARP缓存空间中保存查询到的MAC地址。

TCP/IP协议的数据传输过程详解——IP与以太网的包收发操作的更多相关文章

  1. SSL协议之数据加密过程详解

    前言 总括: 原文博客地址:SSL协议之数据加密过程详解 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 生活 ...

  2. IP与以太网的包收发操作

    你好,这是<网络是怎样连接的>的第3篇读书笔记,第二章<用电信号传输TCP/IP>后半部分:IP与以太网的包收发操作. 先看下经典的TCP/IP四层模型: 通常,下层模块支撑上 ...

  3. TCP数据传输过程详解

    在学习三次握手的时候,我们知道其中有seq.ack两个序列号. 如果不仔细了解,那么可能只知道发回去的时候要加一. 下文将着重介绍,关于序列号的传输过程. 最关键的一句话:序列号为当前端成功发送的数据 ...

  4. 理论经典:TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  5. TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  6. 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解

    转载:http://www.cnblogs.com/lifan3a/articles/6649970.html 以太网帧格式.IP数据报格式.TCP段格式+UDP段格式 详解   1.ISO开放系统有 ...

  7. TCP/IP详解 IP路由选择

    TCP/IP详解 IP路由选择 在本篇文章当中, 将通过例子来说明IP路由选择器过程 如图所示, 主机A与主机B分别是处在两个不同的子网当中, 中间通过一个路由连接. 如果主机A请求与主机B进行通行, ...

  8. TCP协议粘包问题详解

    TCP协议粘包问题详解 前言 在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题.本章主要介绍TCP粘包的原理与其三种解决粘包的方案.并且还会介绍为什么UDP协议不会产生粘包. 基 ...

  9. ping命令执行过程详解

    [TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...

随机推荐

  1. DAO层,Service层,Controller层、View层介绍

    来自:http://jonsion.javaeye.com/blog/592335 DAO层 DAO 层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DA ...

  2. DOM介绍

    什么是DOM DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构.目的其实就是为了能让js操作html元素而制定的一个规范. DOM就是由节点组成的. 解析过程 ...

  3. 进程间通信——队列和管道(multiprocess.Queue、multiprocess.Pipe)

    进程: 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运 ...

  4. 二、Asp.Net Core WebAPI——OcelotDemo

    项目源码OcelotDemo 基础知识在教程或者官网文档查看 Ocelot源码 基于.NET平台的Ocelot网关框架教程汇总 这篇文章不错. 这里我只写我想说的 项目结构 API1和API2是测试的 ...

  5. 【转】snmpwalk常用用法

    在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,现总结一些常用的方法如下: 1.snmpwalk -v 2c -c public 10.103.33.1 ...

  6. HTML学习---HTML状态码

    301 Moved Permanently 永久移动.请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI.今后任何新的请求都应使用新的URI代替302 Found ...

  7. Linux 下Discuz论坛的搭建

    Discuz论坛的搭建[基于LNMP环境搭建成功后] ##创建BBS数据库在本地/远程服务器 mysql -uroot -proot create database bbs; show databas ...

  8. 编写VBA宏生成页面

    概述 依据详细设计中表设计,借用excel宏编写VBA生成页面. 特色 高定制.高效率.兼容所有生成要求.不依赖低耦合.任意Sheet适用 缺陷 不支持批量Sheet页生成 VBA源码 Sub lis ...

  9. 性能调优的本质、Spark资源使用原理和调优要点分析

    本课主题 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...

  10. Linux命令--系统管理

    shutdown命令 Linux shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机. 使用权限:系统管理者. 语法 shu ...