问大家,为什么要有 TCP/IP 网络模型?
对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。
(资料图)
这个网络协议是分层的,每一层都有各自的作用和职责,接下来就根据「 TCP/IP 网络模型」分别对每一层进行介绍。
应用层最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都是在应用层实现。那么,当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。
所以,应用层只需要专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。
应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。
而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。
传输层应用层的数据包会传给传输层,传输层(Transport Layer)是为应用层提供网络支持的。
在传输层会有两个传输协议,分别是 TCP 和 UDP。
TCP 的全称叫传输控制协议(Transmission Control Protocol),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。
UDP 相对来说就很简单,简单到只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。当然,UDP 也可以实现可靠传输,把 TCP 的特性在应用层上实现就可以,不过要实现一个商用的可靠 UDP 传输协议,也不是一件简单的事情。
应用需要传输的数据可能会非常大,如果直接传输就不好控制,因此当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。在 TCP 协议中,我们把每个分块称为一个TCP 段(TCP Segment)。
当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口。
比如 80 端口通常是 Web 服务器用的,22 端口通常是远程登录服务器用的。而对于浏览器(客户端)中的每个标签栏都是一个独立的进程,操作系统会为这些进程分配临时的端口号。
由于传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。
网络层传输层可能大家刚接触的时候,会认为它负责将数据从一个设备传输到另一个设备,事实上它并不负责。
实际场景中的网络环节是错综复杂的,中间有各种各样的线路和分叉路口,如果一个设备的数据要传输给另一个设备,就需要在各种各样的路径和节点进行选择,而传输层的设计理念是简单、高效、专注,如果传输层还负责这一块功能就有点违背设计原则了。
也就是说,我们不希望传输层协议处理太多的事情,只需要服务好应用即可,让其作为应用间数据传输的媒介,帮助实现应用到应用的通信,而实际的传输功能就交给下一层,也就是网络层(Internet Layer)。
网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。
网络层负责将数据从一个设备传输到另一个设备,世界上那么多设备,又该如何找到对方呢?因此,网络层需要有区分设备的编号。
我们一般用 IP 地址给设备进行编号,对于 IPv4 协议, IP 地址共 32 位,分成了四段(比如,192.168.100.1),每段是 8 位。只有一个单纯的 IP 地址虽然做到了区分设备,但是寻址起来就特别麻烦,全世界那么多台设备,难道一个一个去匹配?这显然不科学。
因此,需要将 IP 地址分成两种意义:
一个是网络号,负责标识该 IP 地址是属于哪个「子网」的;一个是主机号,负责标识同一「子网」下的不同主机;怎么分的呢?这需要配合子网掩码才能算出 IP 地址 的网络号和主机号。
举个例子,比如 10.100.122.0/24,后面的/24表示就是255.255.255.0子网掩码,255.255.255.0 二进制是「11111111-11111111-11111111-00000000」,大家数数一共多少个1?不用数了,是 24 个1,为了简化子网掩码的表示,用/24代替255.255.255.0。
知道了子网掩码,该怎么计算出网络地址和主机地址呢?
将 10.100.122.2 和 255.255.255.0 进行按位与运算,就可以得到网络号,如下图:
将 255.255.255.0 取反后与IP地址进行进行按位与运算,就可以得到主机号。
大家可以去搜索下子网掩码计算器,自己改变下「掩码位」的数值,就能体会到子网掩码的作用了。
那么在寻址的过程中,先匹配到相同的网络号(表示要找到同一个子网),才会去找对应的主机。
除了寻址能力, IP 协议还有另一个重要的能力就是路由。实际场景中,两台设备并不是用一条网线连接起来的,而是通过很多网关、路由器、交换机等众多网络设备连接起来的,那么就会形成很多条网络的路径,因此当数据包到达一个网络节点,就需要通过路由算法决定下一步走哪条路径。
路由器寻址工作中,就是要找到目标地址的子网,找到后进而把数据包转发给对应的网络内。
所以,IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘。
网络接口层生成了 IP 头部之后,接下来要交给网络接口层(Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。
IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。
什么是以太网呢?电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分。以太网就是一种在「局域网」内,把附近的设备连接起来,使它们之间可以进行通讯的技术。
以太网在判断网络包目的地时和 IP 的方式不同,因此必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。
MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息,我们可以通过 ARP 协议获取对方的 MAC 地址。
所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
总结综上所述,TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。
再给大家贴一下每一层的封装格式:
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
标签:
-
TCP/IP 网络模型有哪几层?_世界今日报
问大家,为什么要有TCP IP网络模型?对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、
-
约谈谈话内容怎么写(谈话和约谈有什么区别)-全球观点
想必现在有很多小伙伴对于谈话和约谈有什么区别方面的知识都比较想要了解,那么今天小好小编就为大家收集了
-
优化管理费模式大势所趋 “不赚钱不收费”产品打破公募常规 全球最新
首只“不赚钱不收管理费”的银行理财权益类公募产品(类公募基金)诞生了。5月31日招银理财发布公告称,招
-
环球视讯!政协提案建议:农批改造多些人文气息
【政协提案建议:农批改造多些人文气息】5月31日下午,深圳市政协经济界别就《关于建设国际化领先水平的地
-
【播资讯】大众探岳汽车钥匙电池如何更换(汽车钥匙电池如何更换)
来为大家解答以下的问题,众探岳汽车钥匙电池如何更换,汽车钥匙电池如何更换这个很多人还不知道,现在让我
-
俄罗斯外交部:德国关闭俄驻德4个领事馆的决定破坏两国关系
俄罗斯外交部:德国关闭俄驻德4个领事馆的决定破坏两国关系:据媒体新闻,当地时间5月31日,俄罗斯外交部就
-
“股神”再出手!巴菲特本月继续加仓西方石油 持股比例升至25% 全球通讯
油价“跌跌不休”,西方石油股价持续下挫,伯克希尔哈撒韦5月斥资6亿美元继续加仓西方石油。
-
variation 英文(variation 英文单词)
当前大家对于variation英文单词都是颇为感兴趣的,大家都想要了解一下variation英文单词,那么小美也是在网
-
软件乱码¹ú¼òäüô´怎么解决(Ê©¹¤×÷Òµ¼Æ»®)-快报
想必现在有很多小伙伴对于Ê©¹¤×÷Òµ¼Æ»®方面的知识都比较想要了解,那么今天小好小编就为大家收
-
妙可蓝多拟收购吉林科技42.88%的股权 交易价格约为6亿元
5月31日晚间,妙可蓝多发布关于现金收购控股子公司少数股权暨关联交易的公告。公告显示,妙可蓝多拟以60117
-
新股前瞻|迈富时再递表:竞争加剧、盈利艰难,行业龙头也“迷茫”?
近日,中国营销及销售SaaS解决方案龙头迈富时管理有限公司向港交所递交招股书,拟港股主板上市。
-
乡村振兴在行动——鹿泉区:科技助力 加强管理 筑牢夏粮丰收根基
鹿泉区全面落实国家粮食安全战略,以科技为助力,做好小麦田间管理,为夏粮丰收做好准备。编辑:吴楠责编:
-
全球速看:冷雨夜歌词谐音好记的_冷雨夜歌词谐音
1、在雨总慢抱兰些该等简陋桑对茫某森跟用剖著未六遭王丫存文hin爹王丫siu撒六yen与撒哦面兰分岁din。2、lui痕
-
市场监管总局发布5种儿童用品消费提示
市场监管总局发布5种儿童用品消费提示---“六一”国际儿童节即将到来,市场监管总局31日发布轮滑鞋、婴幼儿
-
安保医疗感控_资讯推荐
1、安保医疗感控隶属于深圳市安保医疗感控科技股份有限公司旗下品牌,安保医疗感控SAFESECUREMEDICAL
-
香港公摊面积取消了吗最新消息(香港公摊面积取消了吗)
一、香港公摊面积取消了吗在民生大力呼吁和立法措施跟进的情况下,香港楼市由此彻底告别“公摊面积”。为了
-
Costco第三季度总营收增长1.9%至536.48亿美元 不及市场预期 速看料
财报显示,Q3总营收为536 48亿美元,较上年同期的525 96亿美元增长1 9%,但不及市场预期。归属公司净利润为
-
英国版罗斯威尔事件(罗斯维尔事件) 天天聚看点
今天小编岚岚来为大家解答以上的问题。英国版罗斯威尔事件,罗斯维尔事件相信很多小伙伴还不知道,现在让我
-
恒生指数日内跌2.34% 迈入技术性熊市 |全球独家
南方财经5月31日电,恒生指数日内跌2 34%,较1月高位回落20%,迈入技术性熊市。…
-
连续停牌A股一览(附名单) 全球热消息
截至5月29日,两市共有29只A股处于停牌状态,最长连续停牌21天。证券时报& 183;数据宝统计显示,截至5月29
-
天天速讯:6月共有偿还债券3866只 偿还总额49895.57亿元 较上月增加2747.71亿元
据Choice数据显示,6月共有偿还债券3866只,偿还总额49895 57亿元,较上月增加2747 71亿元。
-
夜里十二点是什么时辰(晚上12点是什么时辰?) 即时焦点
本文目录一览:1、晚上12点是什么时辰?2、晚上十二点是什么时辰?3、凌晨十二点是什么时辰?晚上12
-
即时:布局“云网安”赛道:南凌科技乘风SASE
当前全球迈入数字经济时代,技术发展呈现出多技术聚合创新的趋势,云网融合、算网一体加速演进的同时,政府
-
业界人士齐聚海口 谈如何创新发展旅游休闲街区
中新网海口5月31日电(记者 符宇群)“特色化建设是形成独具个性的特色旅游休闲街区发展模式的必由之路。
-
合盛硅业:5月30日融券卖出1.65万股,融资融券余额9.7亿元
5月30日,合盛硅业(603260)融资买入453 74万元,融资偿还532 56万元,融资净卖出78 82万元,融资余额9 65亿元。
-
当前资讯!阳光城:收盘价已连续12个交易日低于1元,预计将触及退市条款
阳光城:收盘价已连续12个交易日低于1元,预计将触及退市条款,退市,股价,阳光城,收盘价,龙虎榜数据,深圳证
-
如何正确购买儿童用品?市场监管总局发布5种儿童用品消费提示
如何正确购买儿童用品?市场监管总局发布5种儿童用品消费提示
-
全球球精选!瑞德智能5月31日开盘涨幅达5%
以下是瑞德智能在北京时间5月31日09:30分盘口异动快照:5月31日,瑞德智能开盘涨幅达5%,截至9点30分,报27
-
天天热点评!新能源开发消纳有新解法 水风光一体化开发探新路
相较于 "沙戈荒 "风光大基地主要依靠煤电作为调节电源,水风光一体化是一种更为清洁的可再生能源规模化开发
-
天天快资讯:樱桃:唐朝的“网红”水果
5月,正是樱桃上市的时节。说起唐朝的水果,人们可能会首先想到杨贵妃最爱的荔枝。可实际上,要论在唐朝最
