首页 > 其他分享 >网络基础——网络参考模型详解

网络基础——网络参考模型详解

时间:2024-03-18 18:29:51浏览次数:27  
标签:协议 参考模型 网络层 IP 报文 端口 网络 TCP 详解

一. OSI七层模型

        OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (The International Organization for Standardization ) 收录在ISO 7489标准中并于1984年发布。

二. TCP/IP四层模型

        TCP/IP模型在结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。 TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出,后面的讲解也都将基于这种模型。

        应用层:将要发送的信息以数据载荷的形式进行呈现

        传输层:为数据载荷进行封装传输层报文头部,将数据封装为段(TCP/UDP头部信息)

        网络层:在网络层封装IP报文头部,将数据封装为包(主要包含源IP目的IP)

        数据链路层:在数据链路层封装二层报文头部和尾部,将数据封装为帧(源MAC目的MAC)

        物理层:将报文转化为比特流,在物理介质上进行传输

        解封转需要反向操作:对物理层的比特流进行解析数据链路层去掉帧的头部和尾部,网路层去点IP报文头部,传输层去掉TCP报文头部,应用层获取最终数据。

1. 应用层

    为软件提供接口是一个逻辑接口,使应用程序能够访问网络服务,应用层协议会指定使用相应的传输协议,以及传输使用的端口。

基于应用层的协议:

 Telnet :远程登陆协议       23端口(TCP)

 FTP   : 文件传输协议       20/21端口(TCP)

TFTP  :简单文件传输协议    69端口(UDP)

SSH:安全外壳协议        TCP/22

SNMP :网络管理协议       161/162端口(UDP)

HTTP  : 超文本传输协议        80端口(TCP)

HTTPS :超文本安全传输协议       443端口(TCP)

SMTP  :电子邮件传输协议      25端口(TCP)

POP3  :接受电子邮件协议     110端口

DNS  :域名解析协议          53端口(UDP)

DHCP : 动态主机分配协议      67/68端口(UDP)

2. 传输层

传输层协议接受来自应用协议的数据,封装上相应的传输层头部,帮助其建立端到端的连接。

TCP

传输控制协议,一种面向连接的,可靠的传输层通信协议,注重安全可靠性,不考虑传输速率,TCP报文头部复杂占20字节TCP使用三次握手建立连接TCP使用序列号与确认序列号机制来确保数据有序可靠传播,TCP使用窗口滑动机制来确保传输速率,TCP四次挥手断开连接。

UDP

用户数据报协议,一种简单的无连接的不可靠协议,注重传输速率,不考虑可靠性。可靠性由应用层程序负责 UDP头部简单占8字节。

TCP和UDP报文格式

端口

客户端使用的端口一般为随机匹配,目标端口则由服务器应用指定

源端口号一般为系统中未使用的,且大于1023

目的端口号为服务开启的应用所侦听的端口,如HTTP默认使用80

TCP三次握手

第一次握手:客户端给服务端发送一个SYN=1的初始连接请求包,表示请求连接

第二次握手:服务端收到请求后会发送一个SYN =1  ACK = 1的确认包,表示确认请求并同步自己的序列号

第三次握手:客户端收到确认包之后,向服务端发送一个ACK =1 的确认包,表示确认服务器的确认包

TCP四次挥手

  第一次挥手:客户端发送一个带有FIN标志给服务器,表示请求断开连接

  第二次挥手:服务端收到客户端FIN报文后,会发送一个ACK=1报文给客户端表示已经接收到

  第三次挥手:服务端给客户端发一个带有FIN包给客户端,表示也请求断开连接

  第四次挥手:客户端收到服务端的FIN报文后,会回复一个ACK =1 的报文给服务端,表示已经收 到断开连接

3. 网络层

   网络层负责数据从一台主机到另外一台主机之间的传递。

   网络层协议:

        IPV4:互联网协议4

        IPV6 :互联网协议6

        ICMP:网际报文控制协议

        IGMP:因特网组管理协议

   网络层的作用:

  1.         为网络设备提供逻辑地址
  2.         负责数据报的寻径和转发
   网络层工作流程:

        路由寻址:发送端的网络层首先需要确定目标主机的网络地址。通过查看路由表等方式确定数据包经过的路径和下一跳地址

        分组封装:发送端将上层传输的数据封装进网络层的数据包,加上源IP地址和目标IP地址等控制信息

        数据包传输:IP数据包通过路由表确定下一跳地址通过物理网络传输到目标主机

4. 数据链路层

        数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。

数据链路层协议:

  • PPP:点对点协议
  • Ethernet:以太网协议
  • HDLC :数据链路层连接协议
  • Wi-fi :无线局域网协议
  • MPLS :数据链路层和网络层相结合协议
  • 三. OSI/TCP/IP参考模型分层设计的优势

  • 各个层次之间分工、界限明确,有助于各个部件的开发、设计和故障排除。

    通过定义在模型的每一层实现什么功能,鼓励产业的标准化。

    通过提供接口的方式,使得各种类型的网络硬件和软件能够相互通信,提高兼容性。

    数据的产生与传递,需要各模块之间相互协作,同时每个模块又需要“各司其职”。

标签:协议,参考模型,网络层,IP,报文,端口,网络,TCP,详解
From: https://blog.csdn.net/wh940830165/article/details/136816071

相关文章

  • 在Linux中,如何配置负载均衡器以分配网络流量?
    1.NGINXNGINX是一款高性能的HTTP和反向代理服务器,也常用作负载均衡器。它支持多种负载均衡算法,如轮询、加权轮询、IP哈希等。配置步骤:安装NGINX:根据您的Linux发行版,使用相应的包管理器安装NGINX。配置负载均衡:编辑NGINX配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/c......
  • 【Linux】基础 IO(文件系统 & inode & 软硬链接)-- 详解
    一、理解文件系统1、前言我们一直都在说打开的文件,磁盘中包含了上百万个文件,肯定不可能都是以打开的方式存在。其实文件包含打开的文件和普通的未打开的文件,下面重点谈谈未打开的文件。我们知道打开的文件是通过操作系统被进程打开,一旦打开,操作系统就要维护多个文件,所以它......
  • 视频课程|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
    全文链接:http://tecdat.cn/?p=32462原文出处:拓端数据部落公众号分析师:ChangZhang贝叶斯网络(BN)是一种基于有向无环图的概率模型,它描述了一组变量及其相互之间的条件依赖性。贝叶斯网络在信息不完备的情况下通过可以观察随机变量推断不可观察的随机变量,对于解决复杂的不确定性和......
  • 算法详解——Dijkstra算法
      Dijkstra算法的目的是寻找单起点最短路径,其策略是贪心加非负加权队列一、单起点最短路径问题  单起点最短路径问题:给定一个加权连通图中的特定起点,目标是找出从该起点到图中所有其他顶点的最短路径集合。需要明确的是,这里关心的不仅仅局限于寻找一条从起点出发到任......
  • ThreadLocal详解
    今天学到了ThreadLocal,这是一个重要的知识点,面试也会问到ThreadLocal是一个线程局部变量。它可以在每个线程中存储特定于该线程的数据,并且这些数据对其他线程不可见。ThreadLocal提供了一种线程封闭(Threadconfinement)的机制,使得每个线程都可以拥有自己的变量副本,从而避免了......
  • Go进阶之网络编程
    目录Go语言基础之网络编程一、互联网协议介绍二、互联网分层模型1.物理层2.数据链路层3.网络层4.传输层5.应用层三、socket编程1.socket图解四、Go语言实现TCP通信1.TCP协议2.TCP服务端3.TCP客户端4.TCP黏包(1)黏包示例(2)为什么会出现粘包(3)解决办法五、Go语言实现UDP通信1.......
  • 网络实名制接口-GO语言身份核验接口代码-身份证实名认证
    互联网时代,人工识别身份证信息的方式已不适用于当下社会的发展需求,更需要高效精准的科技程序来支持,在线身份证实名认证接口必不可少。翔云身份证实名认证接口,可助力线上平台与消费者信用相关联,建立完善的客户资源与网络用户的管理。翔云身份证实名认证接口,实时联网核验用......
  • Linux网络抓包工具Tcpdump的3分钟快速入门手册
     Tcpdump概述tcpdump是一款强大的网络抓包工具,运行在Linux平台上。它可以帮助你分析、调试网络数据。要很好地掌握tcpdump,需要对网络报文(TCP/IP协议)有一定的了解。但对于简单的使用来说,只要有网络基础概念就足够了。此外,Tcpdump允许用户拦截和显示发送或收到过网络连接......
  • 详解GaussDB(DWS)中3个防过载检查项
    本文分享自华为云社区《【防过载检查项】》,作者:譡里个檔。1.GUC参数检查目的:针对不同版本建议设定不同的参数值,当前先检查出来,后续diagnosis会给出建议值SELECTsplit_part((substring(version()from'\((.*)\)')),'',2)ASversion,(EXISTS(SELECT1FROM(S......
  • 2024最新网络安全小白自学之路,别到处拜师了!!
    前言:趁着今天下班,我花了几个小时整理了下,非常不易,希望大家可以点赞收藏支持一波,谢谢。我的经历:我19年毕业,大学专业是物联网工程,我相信很多人在象牙塔里都很迷茫,到了大三大四才开始慢慢焦虑自己该从事什么工作培养一技之长,或者是跟随大部队考研继续逃避社会,我选择了后者......