TCP/IP分层模型和通信

写在前面需要了解的一些关键词可能会更好的了解TCP/IP。

帧、数据报、IP包、TCP/UDP包、段、消息

帧:数据链路层的包

IP包:网络层的包

TCP/UDP:传输层的包

段:TCP数据流中的信息(我也不是很理解)

消息:应用协议中的数据的单位

数据包:网络层以上都以叫数据报

而这些包只所有叫法不同是因为他们的包头不同,就像人的脸一样,脸不同名字不同。

协议号和端口号

协议号:它位于网络层,各种传输协议,网络控制管理协议。

端口号:它位于传输层,TCP/UDP端口号,可以理解为区分用了各种连接,细分IP地址的用途。区分哪个应用程序发的数据包。

⚠️需要注意的是:上层数据包会被下层的包头封装在里面,而下层的包头会在它的一个字段里面说明它下一层封装的是什么协议,就像人套几件衣服一样里面的肉体是不变的(原始的数据)。

下面会通过发送一封邮件来解释一下数据包在分层协议中到底经历了什么?

需要注意的是数据包发送一般情况下是双向的。

应用程序处理

当我们在邮件这个APP中编辑一份邮件的时候,直到我们点发送之前都是不涉及TCP/IP通信的。但是这是应用层发送的事情。

当我们点击“发送”之后,程序会对这些消息进行编码。编码的可以说是表示层需要做的。

表示层是:“统一的网络数据格式”与“某一台计算机或某一软件特有的数据格式“之间的转换

而我们点击“发送”之后,程序不一定会立即发送,因为发送不是应用层或者表层做的事情。

此时,会话层要做来决定:1.何时建立连接2.何时发送数据。

上面的三层可能由一个或者几个程序完成。你可以理解是TCP/IP定义的是一种规范、一种流程,执行的人可以这么干,但是它也可以变通,只要他完成了他自己的任务,并且他对应的对接的人可以认可他的方式就是可以的。

可以说规范流程是让工作可以顺利的走下去,不会卡在一个人手上,只要他顺利完成自己的任务,并且顺利交接给对应的人,这就是可以被认可的。

TCP/IP的精髓就是标准话。让数据的传输可以在不同的设备中被识别。

TCP对数据包处理

此时会话层会让传输层来帮他建立连接。会话层就是负责建立连接,发送TCP/UDP数据以及断开链接。

此时我们的包头就来了,TCP部首中包含源端口和目标端口(用来区分发送和接收主机的应用程序)、序号(此时的数据会被分段,我们的分组交换就来了,一般理解就是可以让同一个物理链路建立不同的链接,这里序号就是表示这个数据包是数据的第几段)以及校验和(用来检验数据包是否被损坏)。此时我们在传输层的数据包已经封装完毕,准备发往IP层(网络层)。

IP对数据包处理

此时TCP数据包成为了IP数据包的数据部分。IP会装上自己的部首:源目IP地址,以及说明TCP一个下层协议的字段。

IP数据包生成后他就可以被路由表转发啦。数据可以真正发送了。

但是网络层只是司机,我们的数据链路层才是那辆车。当不知道MAC地址的时候,我们的2.5层协议ARP就来了,他会帮我们找到对端的MAC地址。最搞笑的是ARP也是基于TCP/IP的。哈哈哈哈😂

以太网驱动对数据包的处理

IP包对于数据链路层来时也是他的数据部分,我们的二层包头就来了,给IP包封装源目MAC地址,还有有个字段会表示网络层是什么协议。这时候就会发送给对端(可以理解为直连)啦。所以直连通不通很重要。其实二层包尾部还有FCS,用来判断数据包在直连传输中是否被噪声破坏。

数据链路层(以太网头)网络层(IP部首)传输层(TCP/UDP部首)会话层、表示层、应用层(应用包头以及数据)数据链路层(以太网Trailer)

接收端MAC地址-发送端MAC地址-以太网类型(表示下一个协议的类型)接收端IP地址-发送端IP地址-协议类型(表示下一个协议的类型)源端口-目的端口(表示下一个协议的类型)数据循环冗余校验码


下面会通过接受一封邮件来解释一下数据包在分层协议中到底经历了什么?

以太网驱动对数据包的处理

设备接收到以太网包以后,首先它会看二层包的部首找到MAC地址看看是否是发给自己的包,如果不是就丢弃。

如果是发给自己的,就查找包头里面的下一个协议类型的字段来确定下一层数据类型,然后就丢给IP的子程序,像ICMP、IGMP、IP、IPv6、ARP都是这些子程序。如果下一个协议没法识别,那丢弃,不规范造成的,无奈。

IP对数据包处理

当数据包顺利进到网络层,也是类似二层的处理方法。

先匹配IP地址看看是不是发给自己的,在查看上层协议,TCP就发给TCP,UDP就发给UDP。

但是,如果真的跟二层一样,就没意思了呀。此时我们要把一个爸爸请出来,就是我们的路由器👏👏👏

在路由器中如果目的IP地址不是自己,就查路由表,然后转发IP数据包。转发就是回到二层,发给对端。所以我们网工干的事是很小的一部分啊,你要有梦想就求求你别学网工好吧。开玩笑😝

TCP对数据包处理

TCP就厉害了,他作为传输层,可是会检查数据包的准确性哦。它会计算校验和,判断数据是否被破坏,然后还会按照接收数据,最后检查端口号,确定上层具体的应用程序。

数据接收完毕后,接收端会发送一个“确认回执”给发送端。如果这个消息没有到发送端,那么发送端会认为接收端没有收到这个消息一直反复发送。

数据被完整地接收以后,会传给有端口号识别的应用程序。

应用程序处理

接收端程序会获得“网络数据格式”通过表示层翻译成计算机或程序可以识别的数据,然后看这个邮件是不是发给自己的,不是就丢弃。反正这部分操作由应用程序处理,类似于甲方爸爸,他想怎么干就怎么干。

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

推荐阅读更多精彩内容