文章目录

  • 不同分类模型对应关系
  • 不同人员关注的模型不一样
  • 每层的简述
    • 物理层
    • 数据链路层
    • 网络层
    • 传输层
    • 会话层
    • 表示层
    • 应用层
  • 数据包传输过程
    • 数据包传输调用关系
    • 数据包发送
    • 数据包接收
  • 各层协议
    • OSI:物理层
    • 数据链路层
    • 网络层
    • 传输层
    • 会话层
    • 表示层
    • 应用层
  • 协议所属分层和解释
    • TCP
    • UDP
    • Telnet
    • SSH
    • netconf
    • ICMP
    • SNMP
    • DHCP
    • HTTP
    • HTTPS
    • syslog
    • Trap
    • MPLS
    • ARP
    • RARP
    • OSPF
    • ISIS
    • LLDP
  • 参考文献

不同分类模型对应关系

TCP/IP协议分层模型有:四层模型、五层模型、七层模型

四层:物理接口层、网络层、传输层、应用层
五层:物理层、数据链路层、网络层、传输层、应用层
七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

不同人员关注的模型不一样

对于大众人员会更关注四层模型,因为物理层和数据链路层都是跟网卡和物理线路有关,会话层、表示层、应用层都属于上层制定协议规则的人员决定。

对于网络设备公司,可能更关注五层协议,因为他们生产的设备要明确区分物理层和数据链路层,物理设备更关注数据的传输,相对不太关注应用层协议定制。

对于制定应用层协议的人员,就要更关注七层协议,选择TCP还是UDP,数据的加解密方式,压缩格式等,SSH、HTTPS这些协议的,就要关注并区分会话层、表示层、应用层负责处理哪些功能。

每层的简述

物理层

涉及物理实体,电缆/光缆传输的是高低电平0/1的比特流。

数据链路层

涉及物理实体,每个网络设备都最少有一个网卡(运营商网络路由器的每个端口是一个网卡),每个网卡有网卡地址也叫硬件地址(英文缩写MAC),数据链路层的协议数据单元数据帧(PDU)的首部信息里面有自身MAC和目的MAC,这也是属于物理层范畴,因为需要涉及具体的物理设备连接。

数据链路层主要有两个功能 :帧编码和误差纠正控制。帧编码意味着定义一个包含信息频率、位同步、源地址、目标地址以及其他控制信息的数据包。数据链路层协议又被分为两个子层 :逻辑链路控制(LLC)协议和媒体访问控制(MAC)协议。

在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,从数据发送点到数据接收点所经过的传输途径。当采用复用技术时,一条物理链路上可以有多条数据链路。

网络层

逻辑链路的第一层,根据目的IP进行发送,一般都是IP路由转发协议,而它最终会转化到数据链路层。需要使用到链路层的ARP协议,ARP协议可以根据网络层PDU的IP地址获得物理地址,这样就可以使得数据链路层能知道发送到哪个MAC,MAC地址只需要局域网内部唯一就可以正确转发到目的MAC。

网络层用到了路由表,路由表里面存放了路由信息,路由有几个核心参数:目的IP、下一跳IP(要想去到目的IP,需要跳转到的中专IP,因为本机不能直接访问到目的IP,所以需要让下一跳进行转发),路由又分为静态路由和动态路由,静态路由是每条都手工添加,而动态路由表是根据路由发现协议自动采集。RARP可以根据MAC反查IP,可以用于数据链路层的数据包还原成网络层的数据包。(注意:路由是单向的,比如A和B两个机器,A有指向B的路由,而B没有指向A的路由,那么B能收到A发来的包,而B无法发送包给A)

传输层

主要负责向两个主机中进程之间的通信提供服务,目前最广泛就是socket(IP加端口,决定应用程序连接唯一性)。主要实现协议有:TCP、UDP。

注意因为路由是单向的,所以数据包的发送也是单向的,而平时我们称TCP相对UDP是有连接的,实际上TCP就是通信双方,通过三次握手(3个数据包的交互)双方内部维护了一个连接状态的字段,双方通过该状态来判断连接是否有效,一般通过定期发送心跳包的方式,然后等待对方响应心跳包来判断对方是否在线。
正常的断开连接是通过四次挥手(4个数据包交互)告知对方关闭连接,4次交互过程中通过不断修改内部维护的那个连接状态字段,直到最终在操作系统撤销Socket资源。

会话层

属于四/五层协议的应用层,是由应用程序网络服务接口控制,控制传输层的连接、断开、重连等。

表示层

属于四/五层协议的应用层,是由应用程序网络服务接口控制,表示层为应用层提供的服务有三项内容:
语法转换:语法转换涉及代码转换和字符集的转换,数据格式的修改、数据结构操作的适配、数据压缩、数据加密等。
语法选择:语法选择是提供初始选择的一种语法和随后修改这种选择的手段。
联接管理:利用会话层提供的服务建立表示联接,管理在这一联接之上的数据运输和同步控制,以及正常或非正常地终止联接。

应用层

属于四/五层协议的应用层,是由应用程序网络服务接口控制,首先确认一点,应用层定义的是应用程序用于请求网络服务的接口,而不是指应用程序本身。应用层主要定义了应用程序能够从网络上请求使用哪种类型的服务,并且规定了在从应用程序接收消息或向应用程序发送消息时,数据所必须采用的格式。

数据包传输过程

每层都有自己的协议数据单元PDU,数据包的传输过程中,每层都会有封包和拆包的过程。

数据包传输调用关系


数据包发送

应用程序调用系统调用,将数据发送给socket
socket检查数据类型,调用相应的send函数
send函数检查socket状态、协议类型,传给传输层
tcp/udp(传输层协议)为这些数据创建数据结构,加入协议头部,比如端口号、检验和,传给下层(网络层)
ip(网络层协议)添加ip头,比如ip地址、检验和
如果数据包大小超过了mtu(最大数据包大小),则分片;ip将这些数据包传给链路层
链路层写到网卡队列
网卡调用响应中断驱动程序,发送到网络

数据包接收

数据包从网络到达网卡,网卡接收帧,放入网卡buffer,在向系统发送中断请求
cpu调用相应中断函数,这些中断处理程序在网卡驱动中
中断处理函数从网卡读入内存,交给链路层
链路层将包放入自己的队列,置软中断标志位
进程调度器看到了标志位,调度相应进程
该进程将包从队列取出,与相应协议匹配,一般为ip协议,再将包传递给该协议接收函数
ip层对包进行错误检测,无错,路由
路由结果,packet被转发或者继续向上层传递
如果发往本机,进入链路层
链路层再进行错误侦测,查找相应端口关联socket,包被放入相应socket接收队列
socket唤醒拥有该socket的进程,进程从系统调用read中返回,将数据拷贝到自己的buffer,返回用户态。

各层协议

OSI:物理层

EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS

数据链路层

Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2

网络层

IP,IPX,AppleTalk DDP,【ARP,RARP】

传输层

TCP,UDP,SPX

会话层

RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP

表示层

TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML

应用层

FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP,HTTP

协议所属分层和解释

TCP

协议类型:传输层
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。
TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

UDP

协议类型:传输层
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

Telnet

协议类型:应用层,TCP,文本格式
端口23
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法

SSH

协议类型:应用层,TCP,文本格式,加密
利用SSL加密的命令行协议,端口22

netconf

协议类型:应用层,TCP,文本格式,加密
端口830
通过SSH传输XML格式命令报文

ICMP

协议类型:网络层,文本格式
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。

SNMP

协议类型:应用层,UDP,文本格式
简单网络管理协议。
161端口
SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。
基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
报文种类少,报文格式简单,方便解析,易于实现。
SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。

DHCP

协议类型:应用层,UDP,报文结构复杂,最终解析出也是文本格式
DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。

HTTP

协议类型:应用层,TCP,文本格式
HTTP–Hyper Text Transfer Protocol,超文本传输协议,是一种建立在TCP上的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。

HTTPS

协议类型:应用层,TCP,文本格式,在表示层进行了加解密。

  1. https协议需要到ca申请证书或自制证书。

  2. http的信息是明文传输,https则是具有安全性的ssl加密。

  3. http是直接与TCP进行数据传输,而https是经过一层SSL(OSI表示层),用的端口也不一样,前者是80(需要国内备案),后者是443。

  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

syslog

协议类型:应用层,UDP,文本格式
设备系统日志,使用UDP协议,服务端程序监听514端口,设备主动推送上报设备的日志信息。

Trap

协议类型:应用层,UDP,文本格式
简单网络管理协议SNMP(Simple Network Management Protocol)SNMP协定在OSI模型的应用层(第七层)运作,从第一版开始就定义trap为核心PDU报文之一。SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。此事件可以是告警、告警恢复、通知等。如接口UP/DOWN,IP地址更改等。
服务端启动监听162端口,设备主动上报trap告警。
重点:syslog是日志信息,trap是告警信息

MPLS

协议类型:网络层和数据链路层之间,2.5层协议

MPLS(多协议标签交换),即多协议标记交换,介于网络层和数据链路层之间,是一种标记(label)机制的包交换技术,通过简单的2层交换来集成IP Routing 的控制。
MPLS在传统的如以太网帧的源MAC地址前增加了32比特的头,其中1-20比特用来标识标签,21-23用来标识优先级,类似于IP头的TOS字段,24比特用来标识是否有标签嵌套。最后8比特为TTL。

1、MPLS是介于2层和3层之间的协议,主要应用在城域网中,作为集客专线、基站等承载VPN技术的关键技术。
2、MPLS利用MPLS标签进行转发,先通过IP单播路由的方式沿途分配好MPLS标签,分配完成后,沿途路由器只需要根据MPLS标签进行转发,比IP查表效率高很多,但是,IP查表虽然是软件实现,但是CPU的性能已经很高,所以,MPLS转发性能优势已经不存在,MPLS优势在于VPN,可以实现高附加值的功能,例如,MPLS VPN FRR,QOS等。
3、MPLS可以用静态分配标签的方式,也可以通过LDP进行动态分发标签。

ARP

协议类型:网络层。
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

RARP

协议类型:网络层。
反向地址解析协议,通过MAC获取IP。

OSPF

协议类型:网络层,路由协议都是网络层
OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。

ISIS

协议类型:网络层,路由协议都是网络层
ISIS是一个分级的链接状态路由协议,基于DECnet PhaseV 路由算法,实际上与OSPF非常相似,它也使用Hello协议寻找毗邻节点,使用一个传播协议发送链接信息。ISIS可以在不同的子网上操作,包括广播型的LAN、WAN和点到点链路。

LLDP

协议类型:数据链路层
链路层发现协议(Link Layer Discovery Protocol,LLDP)。
网络设备可以通过在本地网络中发送LLDPDU(Link Layer Discovery Protocol Data Unit)来通告其他设备自身的状态。是一种能够使网络中的设备互相发现并通告状态、交互信息的协议。

参考文献

  • TCP/IP 七层协议
  • TCP/IP协议(一)网络基础知识 网络七层协议
  • OSI七层模型的学习-会话层、表示层和应用层
  • HTTP请求行、请求头、请求体详解
  • 网络数据包发送接收全过程
  • TCP通信过程与三次握手和四次握手
  • 密码学经典应用之HTTPS工作过程

TCP/IP协议分层模型详解相关推荐

  1. (chap2 TCP/IP基础知识) TCP/IP协议分层模型

    1. TCP ( Transmission Control Protocol)和IP( lnternet Proto-col )通信协议群 1.1 Internet互联网 互联网中的每个网络都是由骨干 ...

  2. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  3. TCP/IP协议传输层详解

    目录 前言 一.端口号 1.概念 2.相关命令 二.UDP协议 1.UDP数据报格式 2.UDP的特点 3.UDP的缓冲区 三.TCP协议 1.TCP数据报格式 2.确认应答(ACK)机制 3.缓冲区 ...

  4. TCP/ip 协议端口范围 详解

    端口号的范围是从1-65535 端口的概念:  在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ ...

  5. (chap2 TCP/IP基础知识) TCP/IP协议分层模型-应用层

    应用层--会话层以上的分层 1. C/S模型 2. WWW (World Wide Web) WWW 中的HTTP是OSI应用层的协议,HTML属于表示层的协议. 3. 电子邮件 SMTP (Simp ...

  6. TCP/IP协议连接状态详解

    目录 引言 一.建立连接(三次握手) 二.结束连接(四次挥手) 三.最大报文长度 四.TCP状态迁移图 4.1 状态迁移图各状态解析 4.2 服务器的状态迁移图 4.3 客户端应用程序的状态迁移图 4 ...

  7. TCP/IP协议专栏——ND 详解——网络入门和工程维护必看

    文章目录 术语 协议概况 ICMPv6包 IPv6邻居发现(ND)与IPv4中ARP区别 ND协议介绍 Ipv6邻居发现(ND)机制 路由器请求(Router solicitation) 路由器通告( ...

  8. 【计算机网络】OSI参考模型与TCP/IP分层模型详解(超级详细,三张图完整说明)

    目录 1  基本介绍 2  OSI七层参考模型 3 TCP/IP协议分层模型 4 模型映射关系 5 参考文献 1  基本介绍 OSI(Open System Interconnection)参考模型将 ...

  9. TCP/IP协议四层模型知识

    OSI七层和TCP/IP四层的关系 OSI七层模型是理论上的分层方式,而四层模型是实践过程中的分层模型. OSI七层模型ISO(国际标准化组织)提出的一套理论性的网络标准化协议,可以把它看成一本教科书 ...

最新文章

  1. Android 实现一个验证码倒计时(Handler postDelayed 实现验证码倒计时)
  2. Linux时间转化方法
  3. 去掉中文语言下 wget下载提示 英国中部时间 的问题
  4. android点击事件禁用,android-禁用所有视图的触摸事件
  5. yum仓库、源以及编译安装笔记
  6. linux 命令修改网络,linux网络命令学习
  7. MySql PreparedStatement用法 及 Transaction处理
  8. java适合ubuntu吗_java – 哪个os更适合开发:Debian或Ubuntu?
  9. 阶段3 1.Mybatis_11.Mybatis的缓存_3 mybatis一对一实现延迟加载
  10. 使用晨曦记账本记账,将账目明细导出excel表格上
  11. 二维码图片处理换logo,加文字
  12. windows设置定时任务(win10任务计划程序)
  13. 实内积空间和欧式空间的定义
  14. 博客中可用的Emoji表情符号集,拿走不谢❤️❣️
  15. 湖南省第六届大学生计算机程序设计竞赛 弟弟的作业
  16. 很好的古典文学电子书下载网站
  17. Visual Studio 2013运行C/C++程序
  18. MQSim模拟器论文阅读
  19. 使用CCProxy+Proxifier实现代理
  20. 简述对css盒子模型的理解_CSS盒子模型的理解

热门文章

  1. 华东师范大学 硕士毕业论文模版 overleaf版
  2. 视图、创建视图的语法、视图的作用
  3. PPT基础(二十二)裁剪图片
  4. 计算机视觉四大基本任务介绍
  5. 李宏毅作业七其二 Network Compression (Knowledge Distillation)
  6. 视觉与智能学习近期期刊阅读与相关知识学习
  7. checkboxlist控件用法
  8. 数据库运行sql文件
  9. STM32的RTC管脚作为Tamper使用(RTC-TAMPER)
  10. Red and Black 模板题 /// BFS oj22063