【TCP/IP】用户数据的传递过程及协议头部信息

1.网络协议的分层

由底层到上层,分别是:l链路层,网络层,运输层和应用层。

这里以FTP协议为例来看下客户端和服务器端,在协议层面是如何交互的。

在局域网内,链路层基本上是相同的,以太网为例,如下图所示,对应的协议栈需要采用对应的协议来交互数据。

图片发自简书App

在不同的局域网,链路层往往不同,假设一个是以太网,一个是令牌环网,那么在IP层对应的路由协议上面需要同时支持这两种网络,在路由器的支持下,两种网络可以相互适配,以便达到相互通讯的地步。

在IP层往上,就已经屏蔽了这部分差别,所以在运输层和应用层,与局域网内部通讯是一致的。

图片发自简书App

2.网络协议的封装和分用

在研究数据的封装和分用之前,让我们先看下对应的层次都有哪些网络协议,如下图所示:

图片发自简书App

数据要从一端发往另外一端,涉及到的第一个问题,便是如何将数据打包,这种打包的标准时需要事先商量好的,策略是每一层都添加一个对应的协议层头部,往下传递。

应用层在发送数据的时候,首先需要将对应的用户数据,在应用层打包,这样就会在应用层协议层面,加个对应的应用层首部,构成“应用层首部+用户数据”的一整个数据 = 应用数据。

应用层数据往下传递到TCP层,TCP会将这些数据再加一个报文头部,变成“TCP首部+应用层数据” = TCP数据,并传递给IP层。

IP层接到数据之后,会添加个IP首部,变成“IP首部+TCP数据” = IP数据,并传递给链路层。

假设链路层是以太网,于是链路层数据便成为“”以太网首部+IP数据+以太网尾部”=以太网数据。

图片发自简书App

对于接收端来说,与发送端正好是相反的,对应的协议层次,会把该层的数据头部剥掉,并按照规范解析出数据,传递给上一层,一直到对应的应用程序为止。

例如:IP层,会根据IP头部的数据位,来知道运输层是UDP还是TCP,并决定将IP数据是传给UDP还是TCP协议来继续处理。

图片发自简书App

3.IP层的头部数据

IP头部,有20位字节组成,其中IP数据的长度是U16,最大值是65535,U16的首部校验和,U8的生存时间,U8的协议(这个用来记录 运输层是何种协议,UDP还是TCP)。U32的源端IP地址和U32的目的端IP地址。

图片发自简书App

IPv6的数据头部如下所述, 其中源地址和目的地址,都是16个字节的大小。

图片来自网络,侵权告知,会及时删除

4.UDP头部

UDP头部+UDP数据,共同构成了UDP数据,被封装在IP 数据之中,作为IP的数据内容,其中UDP的头部只有8个字节的大小。

图片发自简书App

UDP头部内容详细如下所示:U16的源端口和目的端口,该字段的用意是用来区分同一台机器上面的使用相同IP地址的,不同的应用程序。

U16的UDP数据长度,其实IP的数据长度是U16,所以UDP这一层的数据长度应该是:IP的数据长度-8字节的UDP头部长度。

U16的UDP检验和,这个UDP是可选的。

图片发自简书App

5.TCP头部

TCP数据由:TCP首部+TCP数据 共同构成,TCP数据。会被封装到IP数据中,其中TCP首部由20个字节构成,如下图所示:

图片发自简书App

TCP的首部,详细内容如下所示:

U16的源端口和目的端口,用于区分相同IP地址下面的不同应用程序。U32的序列号和确认序号,用来实现TCP的可靠性传输,是TCP可靠性传输重要的一个环节,通过REQ+ACK的方式来完成。关于该序号,是根据时间的关系随机生成的一个序号,递增的产生方式。

标识位SYN和ACK,用于三次握手。FIN用于四次挥手。RST表示复位连接。PSH表示需要尽可能快的将数据送往接收进程。

U16的窗口大小,用于控制TCP的流量传输速率。U16的校验和,这个是必须要存在的,保证TCP的可靠性的一部分。

图片发自简书App

备注:该资料的整理主要来自于TCP/IP详解卷一,更像是一个读书笔记。


灰子做鱼二零一九年二月十六日。

【原创作品,欢迎分享,请勿转载,谢谢尊重!!】



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,053评论 0 8
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,803评论 1 6
  • 读懂了TCP/IP协议,也就基本了解的网络通信原理。本文是参照研究生教材《网络安全原理与应用》里面的内容加上自己实...
    Super超人阅读 21,922评论 1 19
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    JasonShi6306421阅读 1,238评论 0 1
  • 版本记录 前言 在互联网行业中,不管你是客户端前端还是后台,只要是与网络相关,你就必须了解一些基础知识,包括这里的...
    刀客传奇阅读 1,874评论 0 16