了解TCP/IP网络模型
2023-02-12 14:17:58来源:留学时间作者:阿清 阅读量:15146
前言
互联网是如何构成的,它是如何工作的? 喜欢听TCP/IP网络的面试官是什么? 为什么很远的计算机可以互相通信? 计算机网络作为IT行业的基础,是工程师永远不可回避的话题。
网络分层体系结构计算机网络是一个非常庞大复杂的系统,从设计之初就严格遵循“分层”的设计理念。
将分层海量问题细分为几个局部小问题,具有以下优点:
分层隔离灵活、易于实现和维护促进了标准化工作。 其中,“标准化”是促进互联网全球化的关键,在计算机网络领域,可以听到各种协议是标准化的结果。
如果每个网卡制造商使用不同的网络接口类型,那无疑是一场灾难。
主流的网络分层体系结构有以下两种。
开放系统互连的基本参考模型( OSI )是一种常见的七层网络模型。
传输控制协议/互联网协议( TCP/IP ) )四层网络模型被分类为“五层网络模型”
顺便说一下,由国际化标准化团体制定的OSI模型,本来是应该在世界范围内最普及的网络模型,但是OSI的设计过于理想,不现实,而且当时应用了TCP/IP模型的互联网覆盖了世界大部分地区。
由于各种原因,OSI没有市场化成功,只是取得了理论研究成果。
TCP/IP模型被认为是事实上的国际标准。
注意,TCP/IP网络模型计算机网络的分层体系结构是抽象的,但实现是具体的。
上图表示http APP数据在主机之间传输的过程,首先从自上而下、宏观上观察分级网络模式下的数据流。
在APP应用层" HTTP数据"中,需要实际传输的数据" HTTP数据"被发布到传输层,且TCP报头是传输层的PDU (协议数据单元)
数据段被分发至网络层,作为附加IP报头的网络层的PDU被称为数据包。
包被分布在数据链路层上且附加有以太网报头的PDU被称作数据帧。
最后,数据帧被传输至物理层,并以电信号0至1 (比特数据比特)的形式在物理介质中传输。
TCP/IP的每一层都依赖下层的支持,越往上走越接近用户,总之都离硬件越近。
从上到下向APP数据持续添加标头的过程称为封装,从下到上持续分析标头的过程称为解除封装。
最终,在物理层上传输的数据帧如上面所示,包括多个头部,该头部具有不同的数据结构和功能,并为数据传输的可行性提供服务。
学习计算机网络实际上就是学习各种Head的功能,学习各层的核心协议及其解决的问题。
然后,自下而上地继续分析数据帧,深入挖掘每个级别的实现详细信息。
物理媒体层的物理媒体是连接网络终端设备(计算机、交换机、路由器)的物理装置,最常见的是网线(双绞线),除此之外还有光纤、电波等。
不同的物理介质决定了电信号传输的距离、带宽、速率、抗干扰能力等性能参数。
物理介质层主要解决的问题包括:
规范网络终端设备之间的电气、机械、流程和功能等方面的要求,规范频率、速度、最大传输距离和物理接口等特征物理层最直观的好处是,任何品牌的计算机都可以使用同一网线
在数据链路层,如上所述,数据实际上是作为电信号传输到物理介质的,但简单的01数字明显没有价值,需要对电信号进行分组排序。 需要通过固有的组织方法赋予特定的含义。
数据链路层为了解决这个问题提出了包括以太网v.2、IEEE 802.2、Internetwork在内的多种协议,其中以太网协议占主导地位。
以太网协议,即以太网协议规定了电信号的分组方式。
一系列电信号称为一个数据帧,数据帧由帧头、数据和帧尾三部分组成。
发送方通过物理媒体向接收方发送数据帧,接收方接收到一系列电信号时,认为接收到了一个数据帧。
数据帧首部)在14个字节中,目标主机的网卡MAC地址、源主机网卡MAC地址、以及数据帧类型识别数据。 来自上层(网络层)的传入包是在[ 46,1500 ]字节之间的数据帧末尾) 4个字节的CRC校验序列,用于确定在传输期间在数据帧中是否存在损坏的MAC地址。 数据链路层
以太网协议规定,接入网络的终端设备需要网络配置器即NIC网卡,数据帧需要由网卡发送,另一网卡接收
每个网卡都被分配了世界上唯一的MAC地址。
数据接收方的MAC地址记录在数据帧的开头。
MAC地址有6个字节,由12个十六进制数字表示,并由e.g. 00:01:6C:06:A6:29表示
前六个十六进制数字是厂商号,电气电子工程师协会( IEEE )分配给厂商后六个是该厂商的网卡流号,由厂商自己分配以太网协议数据帧的定位原理。 有MAC地址,以太网协议将采用广播形式,将数据帧输送至本地网络中的所有主机,而主机在接收到数据帧之后,进行在数据帧开头的目标主机上的网卡MAC
如果是,接收数据帧进行下一处理。
如果不是,就销毁。
另外,为了提高广播的性能和网络的灵活性,一般在本地网络中设置交换机来支持信号传输,交换机也是数据链路层的代表性设备。
数据链路层主要解决的问题是将电信号分组,形成具有特定意义的数据帧,作为广播通过物理媒体发送到接收端。
从理论上讲,网络层可以定位于世界上任何计算机,前提是使用MAC地址,广播范围也是全球性的,但这是不现实的。
MAC地址的定位有本地子网的局限性。
因此,除了以太网协议外,还需要解决以下问题:
在如何简单划分子网如何隔离广播信号隔离广播信号的前提下,如何实现子网间的计算机依然使用IP协议IP(internetprotocol,互联网协议)、 互联网协议) )是否能够通信是网络层的核心协议,规定网络层的封装规格,在从网络层(上层)、传输层)传递来的数据段中附加IP报头封装在IP数据包中IP数据包也同样由包头和数据两部分构成
标头长度为20字节,数据部分的最大长度为65515字节,一个IP数据包共计65535字节。
另一方面,底层数据帧的数据部分最长为1500字节,因此如果IP包的实际长度超过1500,则需要对IP包进行分块处理并从多个数据帧发送。
IP包报头:
版本号:标识IP地址的版本。 目前有两个版本的头长度: IPv4和IPv6。 IP标头长度标识服务类型。 前三位的识别优先级。 4-7位分别标识延迟、吞吐量、可靠性和开销。 (一个分组只有一个有效位。 ) (总长度) IP分组的唯一标识,用于标识IP分组的总长度。 如果数据包是分片发送的,接收方将根据分片中该字段的值确定哪些分片属于同一数据报,然后对分片进行重组。
每次发送普通数据包时,值都会加1。
IP标志位:标识IP分组是否已分块。
Fragment Offset偏移:当接收方重新组织分片时,标识分片的顺序,并指示分片起点相对于包起点的偏移。
因为IP协议是无连接的不可靠传输协议,所以为了应对分片传输顺序错误的情况,需要此字段。
TTL生存时间:显示生存时间,显示数据报可以通过的路由器数量,防止丢失数据包的无中断传播。
初始值由源主机设置,通常为32或64。 每当经过路由器时,此字段的值都会减少1。
当包的TTL为0时,路由器会丢弃该包,并向源主机的IP地址发送ICMP超时消息。
协议:标识数据包的数据部分来自哪个协议( ICMP/IGMP/TCP/UDP/GRE/ESP )。
头校验和标头校验和:根据IP包标头计算的校验和选项:可变长度选项信息Source Addres源地址:发送IP包的主机的IP地址目标地址
IP地址: IP协议设置逻辑网络地址( IP/子网掩码),因为MAC地址不能满足复杂网络环境的需要。
IP地址有IPv4和IPv6两个版本,用子网掩码将IP地址分为网络号、主机号两部分。 前者标识子网,后者标识子网中的主机。
如果两台主机位于同一子网中,则网络编号必须相同。
IP地址解决了“如何简单地子网化”的问题。
ARP协议引入IP地址后,接入网络的主机至少有一个IP地址和MAC地址。
重要的是,IP地址本质上是一个逻辑地址,它是为了解决上层复杂的子网体系结构问题而产生的,最终依赖于MAC地址而不是识别主机的依据。
因此,网络层需要找到完成IP to MAC映射的方法,于是ARP协议应运而生。
地址解析协议( ARP )提供从IP地址获取MAC地址的功能,来自地址解析的名称。
地址解析原理:对于主机之间的通信,ARP协议首先发出包含目的主机IP地址的请求IP数据包,该数据包经过数据链路层、物理媒体层最终广播到子网中的所有主机
如果是,则基于分组报头中包括的源主机IP地址来返回MAC地址; 如果不相同,则丢弃该数据包。
ARP协议还会在本地缓存记录为返回的MAC地址和目标主机IP地址的地址映射表。
下次需要通信时,ARP直接查询地址映射表以提高效率。
从路由协议对ARP协议地址解析的原理可以看出,ARP协议也有其子网的局限性。
为了突破这一限制实现子网间通信,网络层实现了路由协议。
路由协议提供了异构网络之间的互连,用于将一个子网的IP分组发送到另一个子网。
路由是指示数据包转发的路由信息。
路由协议是在路由器上运行的协议,在错综复杂的网络世界中,路由器充当交通枢纽,根据实际网络环境选择最佳路径进行数据包转发。 路由器是网络层的代表性设备。
IP数据包路由原理:在主机之间的通信中,首先根据IP协议判断两台主机是否在同一子网中。
如果适用,直接传递到ARP和以太网协议完成子网广播。
否则,以太网协议将IP分组发送至子网网关,一般是路由器来确定路由,经过多次网关路由后,IP分组进入具有目标主机IP地址的子网,最后
因此,路由器和路由协议解决了“如何隔离子网之间的广播信号”和“计算机是否仍然可以在子网之间通信”的问题。
由于传输层通过物理媒体层、数据链路层和网络层的基础支持,或者通过MAC地址和IP地址的支持,实现了主机之间在全球互联网上的互连,因此三者都是“基础传输层”
但是,仅支持“主机定位”还不足以满足需求,还需要完成主机上的“APP定位”。
实际上是两台设备上的微信应用之间的数据传输,因为互联网传输的数据往往是微信聊天等APP应用中的数据。
因此,主机收到数据后,必须解决应该由谁来处理这个IP数据包。 就是所谓的“APP定位”问题。
相反,传输层规定为每个APP应用指定特殊的“地址”以辅助定位。 此“地址”为——进程端口( Port )
传输层的主要作用是建立进程与进程之间的通信,即从端口到端口的数据传输,主要有UDP和TCP协议两种实现。
如果有网络APP的编程经验,应该不熟悉( IP,Port )的组合。 这就是在Unix类操作系统中定义的套接字。
可用端口号在[ 0,65535 ]之间,[ 0,1023 ]属于系统端口,由操作系统的本地服务进程使用,其馀的端口号可以在用户端口上由用户自由分配。
传输层的PUD是数据段,其开头也有TCP报头和UDP报头两种。
段标题为8字节,数据部分高位APP数据为65527字节,全长为65,535字节以下,正好成为低位IP数据包的数据部分。
TCP协议TCP (传输控制协议)是面向连接的可靠传输协议,并且是可靠的(无差错、无丢失、无重叠、按顺序的)字节流的数据传输服务器
由于在传输效率和可靠性之间选择了后者,所以存在开销大、传输速度慢的缺点。
面向连接:在使用TCP通信之前,需要“三次握手”建立收发双方的连接,并在通信结束后“四次挥手”确保断开连接。
点对点:一个TCP连接只能连接两个端点。
全双工通信:允许通信双方在任意时刻双向发送数据,在发送端设置发送缓冲器,在接收端设置接收缓冲器。
字节流传输: TCP将数据作为字节流处理,不理解所传输数据的含义,只将数据视为一系列字节串。
TCP可靠性传输具有非常复杂的实现细节,包括但不限于:
ACK决策机制:接收方收到数据段后,返回ACK确认时机重新发送。 发送方在发送数据段后,启动计时器,在超时时不接收ACK确认,而是重新发送对该数据段的数据检查。 接收方对数据段进行数据检查,如果发现数据段有错误,则丢弃该数据段并等待发送超时重发顺序。 TCP字节流按字节排序,确保数据传输顺序的准确性
接收端只允许发送端发送接收缓冲区可以接收的数据,防止缓冲区溢出段报头:
Sequence Number序列号:字节流中的每个字节按顺序编号。 该字段值是本数据段数据部分中第一个字节的序列号Acknowledgment Number确认号:确认序列号Offset偏移:数据段的起始长度,字段值的起始长度为4Reserved
窗口:用于标识发件人-收件人窗口大小的CheckSum检查值: Urgent Pointer紧急指针,用于检查数据段在传输过程中是否出现错误。 如果字段值为1,则启用此选项,以标识此数据段包含紧急数据的TCP Flags字段。 8位非常重要的功能id,分别为:
c(cwr )、e ) ECE ):ECN )查看块通知) u )用于支持u )权限。 值为1表示此数据段具有紧急数据(例如紧急关闭),应优先发送。 与紧急指针字段结合使用a(ack )。 仅当字段值为1时有效,并且在建立TCP连接后,所有数据段都必须将ACK字段的值设置为1 p (推送)。 如果TCP连接的一端希望立即响应,PSH字段会“催促”对方,并在缓冲区已满之前不发送r ) r ) R(RESET。 如果TCP连接发生严重错误,此字段的值将设置为1,表示在断开TCP连接后s(syn,set )将重新连接
f(fin ) :用于释放连接。 字段值为1表示发件人已经提交。 请求释放TCP连接。 接下来,以3次握手和4次手为例,来看看段头如何设置发送标志以保持可靠性。
三次握手:
建立连接后,客户端将( SYN=1,seq=x )段发送到服务器,进入SYN_SENT状态并等待服务器确认。 服务器收到( SYN=1,seq=x )数据段后,将返回( ACK=1,ack=x 1,SYN=1,seq=y )数据段,服务器将进入SYN_RECV状态客户端收到来自服务器的ACK确认后,也会向服务器发送ACK确认( ACK=1,ack=y 1 ),这样客户端和服务器都处于ESTABLISHED状态。
三次握手完成,TCP连接成功。
为什么要用三次握手来确保数据传输的可靠性? 握手行为实际上是为了向发送接收方告知自己的isn(initialsequencenumber,初始化号码),在上图的seq=x或seq=y、该值建立连接后进行顺序数据传输
段开头的Sequence Number和Acknowledgment Number均占用32比特,这表明seq和ack的取值范围均为[ 0,2 ^ 32-1 ],可依次重复使用
必须注意的是,seq并不是每次都从0开始,TCP协议通过以4s次的频率进行ISN=1操作,避免在TCP重新连接时同一连接上存在2个以上相同seq的数据包,最终导致顺序混乱
4挥手:
断开连接时,客户端将发送( FIN=1,seq=m )数据段。 其中m的值为客户端最后发送到服务器的数据段的最后一个字节的序列号加1,从而使客户端处于最后等待状态。
服务器收到( FIN=1,seq=m )后,返回( ) ACK=1,ack=m 1,seq=n检查数据段,服务器将进入“关闭-等待”状态。
服务器将数据段发送到客户端( FIN=1,seq=u,ACK=1,ack=m 1 ),然后服务器进入最后访问状态。
客户端返回( FIN=1,seq=u,ACK=1,ack=m 1 )确认数据段,并与服务器
4挥手完成后,TCP连接将在此断开。
UDP协议用户数据图形协议( UDP )是一种无连接的不可靠的传输层协议。
UDP段的开头非常简单,因为UDP不提供分组和组装,并且无法对段进行重新排序。
换言之,在传输了数据段之后,发送者不知道它是否完全或安全地到达接收方。
这种传输机制,其最大的优点是快,同时也决定了最大的缺点是不可靠和不稳定。
UDP数据段的开头:
源端口源APP应用程序端口:发送APP应用程序端口目标APP端口:接收APP端口长度:数据段长度检查值:数据段转发由于应用层直接面向用户,APP应用层关注数据的表示形式而不是数据传输的细节,主要工作是定义数据格式
因此,APP应用层定义了各种协议以规范数据格式,常见的有HTTP (万维网)、FTP ( SMTP )、邮件等。
以因特网上最广泛使用的http(hypertexttransferprotocol )为例,其数据头部格式如下。
如上图中标记的内容所示,HTTP规定了数据格式的定义和解读方法。
在Request Headers中使用Content-Type可指示客户端发送的数据格式的类型。 Accept表示客户端希望接受的数据格式的类型。 Response Headers使用Content-Type指示表示服务器端响应的数据格式的类型。 通常,Request Accept必须与Response Content-Type匹配。 APP应用层的作用主要是为计算机上的APP应用程序提供服务,包括提供数据格式的表示、数据加密
APP应用层不需要在意数据传输的细节,这是分层设计的优点,程序员可以在不了解基本协议的情况下使用APP应用层的许多协议进行工作。
最后回顾总结:
物理媒体层(最低层数据传输物理媒体数据链路层)用MAC地址查找本地子网中的主机网络层(用IP地址查找不同子网之间的主机传输层)用Port查找主机上的APP应用APP传输层
相关文章
GRE2021年度报告来了。看看全球考生的大数据。
前段时间,ETS官方发布了最新的GRE成绩报告(参考数据范围为2016.07—2021.06)。报告涵盖全球考生的GRE各科均分、拟申...
阅读: 10922
2023年托福和GRE考试职位将于9月28日上午开放。
澎湃新闻从美国教育考试服务中心(ETS)获悉,近日,ETS与教育部教育考试院研究决定,于9月28日上午10点开放2023年的托福iBT...
阅读: 6097
美国的研究生考试有哪些?免费进入美国著名大学
前言:这是一篇来自公众号留美申请专家有关于美国研究生考试的文章。美国研究生的入学考试最基本的分为GRE和GMAT以及TOEFL。GRE...
阅读: 19779
考场各科真题难度GRE考生经验分享| GRE具体有多难?
GRE考试到底多难 关于这个问题,GRE考生之间一直流传着各种流言说法,其中许多其实也是以讹传讹。而缺乏实际考试经验的同学常会受此类流...
阅读: 11903
教育时代的终结:从“直男癌”到“真男人”,余的体面退场。
我曾走在崩溃的边缘。——俞敏洪北大三角地1987年,俞敏洪在北大做教书匠,当时正赶上出国热,俞敏洪身边的同学朋友,一个接一个出国,让他...
阅读: 6699
2021年重要考试时间表赶快收藏,2021年重要考试时间表
告别2020,2021年已经来临。不得不感叹时间过得真快。大家已经开始关注新一年的考试时间了。这里有一份2021年重要考试时间表,5月...
阅读: 6287
雅思、托福、PTE三大语言考试如何选择?
9月开始就是英国大部分院校的入学季了,然而部分同学由于种种原因没有在这个时候入学,而是想选择春季入学。其中的一个原因,就是准备得太晚,...
阅读: 16474
更多排行榜
热门文章
1.路由OSPF:各种LSA如何防止环路和虚拟链路,以便您可以在几分钟内快速掌握它们。
-
1
- 路由OSPF:各种LSA如何防止环路和虚拟链路,以便您可以在几分钟内快速掌握它们。
- 2022-12-23
-
1
2.如果不知道词义的概括,如何准确把握GRE单词?
-
2
- 如果不知道词义的概括,如何准确把握GRE单词?
- 2023-01-03
-
2
3.GRE在线考试记录|最新考试经验分享
-
3
- GRE在线考试记录|最新考试经验分享
- 2022-11-25
-
3
4.gre是什么意思,怎么理解?
-
4
- gre是什么意思,怎么理解?
- 2022-11-26
-
4
5.小设里的小卷,GRE写作也存在于——青岛格雷GRE中。
-
5
- 小设里的小卷,GRE写作也存在于——青岛格雷GRE中。
- 2022-12-09
-
5
6.据说99%的学生会对这些必选短语的意思感到困惑。
-
6
- 据说99%的学生会对这些必选短语的意思感到困惑。
- 2023-02-02
-
6
7.gre314分是什么水平,gre295分是什么水平
-
7
- gre314分是什么水平,gre295分是什么水平
- 2023-02-03
-
7
8.离开新东方后比较有名的考研导师有哪些?
-
8
- 离开新东方后比较有名的考研导师有哪些?
- 2022-11-29
-
8
9.渣男的欺骗到此为止!全国GRE考场防疫要求更新,取消考试。
-
9
- 渣男的欺骗到此为止!全国GRE考场防疫要求更新,取消考试。
- 2023-01-03
-
9
10.昨天托福考试位置秒售罄,那些说留学坏话的人又被打脸了。
-
10
- 昨天托福考试位置秒售罄,那些说留学坏话的人又被打脸了。
- 2022-11-20
-
10
一周热榜
2022留学语言考试日历发布!来收集吧
2022-11-21
这些GRE考点又开了!全国各考点最新考试时间列表
2022-11-21
新年气氛,是时候为你的美国留学考试安排做好计划和准备了。
2022-11-21
也可以在家考!首页GRE报名攻略
2022-11-21
11月1日起,大陆考生也可以在家考GRE?
2022-11-21