本文主要是介绍学习笔记——网络参考模型——TCP/IP模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
二、TCP/IP模型
TCP/IP模型(TCP/IP协议栈):很多个互联网协议的集合,其中以TCP和IP为主,将这些协议的集合称为TCP/IP协议栈。目前使用最多的协议模型。
因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。
层 | 名称 | 说明 |
4 | 应用层 | 对应OSI的:应用层、表示层、会话层 |
3 | 传输层 | 数据段Segment(TCP报头),对应OSI的:传输层 |
2 | 网络层 | 数据包Packet(IP报头),对应OSI的:网络层 |
1 | 网络接口层 | 比特Bit->帧Frame,对应OSI的:数据链路层、物理层 |
TCP/IP模型在结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。
TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出,后面的讲解也都将基于这种模型。
注意:前四层主要为了传输和识别。“货物”放在高层。
应用数据+传输层 :数据段
应用数据+传输层+网络层:数据包
应用数据+传输层+网络层+数据链路层:数据帧
应用数据+传输层+网络层+数据链路层+物理层:数据流 比特流
1、TCP/IP常见协议
TCP/IP协议栈定义了一系列的标准协议。
应用层
应用层:应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。应用层的PDU被称为Data(数据)(下左图)
TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
HTTP和HTTPS(Hypertext Transfer Protocol,超文本传输协议)用来访问在网页服务器上的各种页面。是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(上右图)
帮助客户端访问万维网(World Wide Web)
网页浏览器通过翻译HTML文件来表现文本、图像、音乐、动画及视频等对象
HTTP没有加密验证机制,明文传输,安全性不足;
HTTPS使用SSL、CA证书等技术进行安全防护,越来越多的Web网站强制使用。
SMTP/POP3/IMAP
传输层
传输层是实现 "端到端"的服务[应用到应用]。
传输层:传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立"端到端"(Port to Port)的连接。传输层的PDU被称为Segment(段) (下左图)
网络层
网络层:传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间(点到点)的传递。网络层的PDU被称为Packet(包)。(上右图)
IP(Internet Protocol,互联网协议)∶将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
IPv4(Internet Protocol Version 4)简称IP,是目前应用最广泛的网络层协议。
IGMP(Internet Group Management Protocol,因特网组管理协议)∶负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
ICMP(Internet Control Message Protocol,网际报文控制协议)∶基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
(1)网络层协议工作过程
当采用IP作为网络层协议时,通信的双方都会被分配到一个"独一无二"的IP地址来标识自己。IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
(2)IP数据包的封装与转发
网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
中间经过的网络设备(如路由器),会维护一张指导IP报文转发的"地图"一—路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。
数据链路层
(1)数据链路层基础
数据链路层:数据链路层位于网络层和物理层之间,可以向网络层的IP、IPy6等协议提供服务。数据链路层的PDU被称为Frame(帧)。
以太网(Ethernet)是最常见的数据链路层协议。
LLC | Logical Link Control,逻辑链路控制 负责识别网络层的协议类型,接收上层数据包封装成帧后,向下层传递。 |
MAC | Media Access Control,介质访问控制负责控制与连接物理层的物理介质 处理硬件设备的物理寻址、定义网络拓扑及数据帧的传递顺序 |
(2)数据链路层协议
Ethernet(以太网协议):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网组网技术。
PPP(Point-to-Point Protocol,点对点协议)∶一种点对点模式的数据链路层协议,多用于广域网。
PPPoE (Point-to-Point Protocol over Ethernet,以太网承载PPP协议)∶PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。
物理层
物理层:数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。物理层的PDU装称为比特流(Bitstream)。
2、数据封装转发过程
案例∶主机A通过浏览器访问服务器A的Web服务器
数据包在相同网段内或不同网段之间转发所依据的原理基本一致。
传输层封装
当主机建立了到达目的地的TCP连接后,便开始对应用数据进行封装。
网络层封装
路由查找
主机A必须要拥有到达目的地的路由
ARP
通过ARP缓存表找到下一跳的MAC地址。如果表项里没有下一跳的MAC地址,主机A会发送ARP请求。
数据链路层封装
数据发送,网关接收数据帧
查找路由,重新封装
网关检查是否具有到达目的网络的路由条目。如果存在转发路径,则为数据包添加一个新的二层帧头和帧尾,并继续转发。
数据发送至服务器
RTB以服务器A的MAC地址作为目的MAC继续转发。服务器A接收到该数据帧后,发现目的MAC为自己的MAC,于是会断续处理该数据帧。
服务器解封装
服务器A检查数据包的目的IP地址,发现目的IP与自己的IP地址相同。
服务器A剥掉数据包的IP头部后会送往上层协议TCP继续进行处理。
服务器A检查TCP头部的目的端口,然后将数据段发送给应用层的HTTP协议进行处理。
阶段总结
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】
这篇关于学习笔记——网络参考模型——TCP/IP模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!