IP协议和网络传输中的封装与分用。

关于七层模型和四层模型可以参考这个:http://www.cnblogs.com/xcywt/p/5027277.html

因为四层模型用的比较多,这里只拿四层模型来分析。

1、四层模型中的最下层是链路层,传输的是以太网数据帧。主要有三种格式的以太网数据帧。这里暂时不做详细分析

2、IP数据报格式

1)版本:IP协议版本号,IPv4版本这个值为4。IPv6这个值为6

2)头长度:表示头部的长度,单位是4字节。比如这个数为5,表示IP头部长度为20个字节。所以我们也可以知道IP长度最大为4x15 = 60个字节。

3)服务类型(TOS):包含3位优先权(现已忽略)、4位的服务类型子字段、1位保留位(必须位0)。

4)总长度:16位。以字节位单位,包含头部和数据部分总长度。最大可为65535个字节

5)封包标识:用来标识一个IP包,每发送一个此值会加1。

6)标志与片偏移:

标志:3位的标志第一位不使用。第二位DF(Do not Fragment)为1表示不分片。若超过最大传输单元则会被丢弃,并发送一个ICMP差错报文。第三为MF(More Fragment)为1表示后面还有包。最后一片的MF为0.

片偏移:IP分片后每一个分组都有自己的首部。但是片偏移不同.,通过片偏移接收端可以重新组装IP包。

7)存活时间(TTL):Time to live。 表示数据报最多可经过的路由器的数量。数据报每经过一个路由器TTL会减一,直到为0就会被丢弃,并发送ICMP报文通知源主机。这样可以防止数据包一直在网络中传输下去。

8)协议:表示IP层承载的是哪个高级协议。在封装与分用过程中,协议栈知道该交由哪个层的协议处理。下面是对应值:

1-ICMP,2-IIGMP,6-TCP,7-UDP

 9)校验和:保证数据头部的完整性,但是不校验数据部分。校验方法是网际校验和

因为上层的协议都有自己的校验和,这里不需要重复校验 还有就是每经过一个路由器头部都会发生变化,但是数据部分不变。 只校验头部比较省时间。

10)源IP地址:发送数据的主机IP地址 11)目的IP地址:接受数据的IP地址 12)选项与填充(选项为4字节整数倍,不足则用0填充): 内容有: a:安全和处理限制 b:路径记录:记录所经历路由器的IP地址和时间 c:宽松源站路由:指数据报文必须经历的IP地址,可以经过没有指定的IP地址 d:严格的源站路由:指定数据报文必须经过的IP地址,不能经过没有指定的IP地址

 3、封装与分用

假设主机A发送数据给主机B,一般流程是这样:A应用层数据-》A的传输层-》A的网络层-》A的链路层 -》 网络上找到B,并发送给B的链路层 -》 B的网络层 -》 B的传输层 -》 B的应用层。就是下面这幅图:

封装(Encapsulation):从上到下。将数据打上一定的头部。

 应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,直到最后到物理层数据转换成比特流,送入网络。在这个过程中,每一层都会对要发送的数据加一些首部信息。

分用(解封(Demultiplexing)):从下到上,将数据头部进行拆开

从下网上时再逐一将对应层的头部去掉,一层一层剥离。直到应用层。

 分用就是刚好反过来。

 还有一些更好的图可以参考:

https://www.cnblogs.com/starof/p/6367020.html

https://www.cnblogs.com/qishui/p/5437301.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/d...

3708
来自专栏JetpropelledSnake

Python Web学习笔记之图解TCP/IP协议和浅析算法

2014
来自专栏听雨堂

连续打印问题的解决

主要是纸张的高度无法控制! 情况如下:     打印一个窄行的自定义单据,通过设置自定义纸张,可以控制打印机每次严格按照自定义的大小进行打印只打单张的情况下,没...

2169
来自专栏Golang语言社区

TCP/IP通信架构

1 .计算机网络的体系结构 计算机网络是一个非常复杂的系统,将整个网络的传输功能进行分层设计的网络结构层次模型及各层协议的集合称为计算机网络的体系结构。为了解决...

3325
来自专栏海说

15、TCP/IP协议

15、TCP/IP协议       几台孤立计算机系统组在一起形成网络,几个孤立网络连在一起形成一个网络的网络,即互连网。一个互连网就是一组通过相同协议族互连在...

2220
来自专栏开发与安全

集线器,二层交换机,路由器与三层交换机

集线器:以前10M共享式以太网专用,现在用得比较少,只工作在物理层,端口与主机之间使用半双工通信,一般来说无论物理连接是总线型还是星型,它的逻辑连接都是总线型的...

2477
来自专栏土豆专栏

计算机网络基础知识整理--数据链路层

小编最近在复习计算机网络基础,整理出来一些我认为比较重要的知识。希望能帮到大家哈,后续会更新~

80712
来自专栏同步博客

OSI七层模型学习笔记

  OSI模型全名Open System InterConnect 即开放式系统互联,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络...

1105
来自专栏JetpropelledSnake

Python Web学习笔记之TCP/IP协议原理与介绍

HTTP、FTP、SMTP、Telnet等等协议,哦!那个HTTP协议啊就是访问网页用的那个协议啊然后那个······其实······你懂得,我们应该从实际来了...

60710
来自专栏用户画像

第8章 以太网技术

A. CSMA/CD 应用在总线型以太网中,主要解决在多个站点同时发送数据时如何检测冲突、确保数据有序传输的问题。

854

扫码关注云+社区

领取腾讯云代金券